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