001package com.fs.starfarer.api.impl.campaign;
002
003import com.fs.starfarer.api.campaign.CampaignEngineLayers;
004import com.fs.starfarer.api.campaign.SectorEntityToken;
005import com.fs.starfarer.api.combat.ViewportAPI;
006
007public class SupplyCacheEntityPlugin extends BaseCustomEntityPlugin {
008
009//      private CustomCampaignEntityAPI entity;
010        private transient GenericFieldItemManager manager;
011        
012        public void init(SectorEntityToken entity, Object pluginParams) {
013                super.init(entity, pluginParams);
014                //this.entity = (CustomCampaignEntityAPI) entity;
015                readResolve();
016        }
017        
018        Object readResolve() {
019                manager = new GenericFieldItemManager(entity);
020                manager.category = "misc";
021                manager.key = "cargoPods";
022                manager.cellSize = 32;
023                
024                manager.minSize = 10;
025                manager.maxSize = 10;
026                
027                //manager.initDebrisIfNeeded();
028                //manager.numPieces = 15;
029                
030                return this;
031        }
032        
033        public void advance(float amount) {
034                if (entity.isInCurrentLocation()) {
035                        float totalCapacity = entity.getRadius();
036                        int minPieces = 5;
037                        int numPieces = (int) (totalCapacity / 4);
038                        if (numPieces < minPieces) numPieces = minPieces;
039                        if (numPieces > 40) numPieces = 40;
040                        
041                        manager.numPieces = numPieces;
042                }
043                
044                manager.advance(amount);
045        }
046
047        public float getRenderRange() {
048                return entity.getRadius() + 100f;
049        }
050
051        public void render(CampaignEngineLayers layer, ViewportAPI viewport) {
052                manager.render(layer, viewport);
053        }
054
055}
056
057
058