diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index b59c82b302..f260f639fe 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -566,6 +566,7 @@ sectors.unexplored = [lightgray]Unexplored sectors.resources = Resources: sectors.production = Production: sectors.export = Export: +sectors.import = Import: sectors.time = Time: sectors.threat = Threat: sectors.wave = Wave: diff --git a/core/src/mindustry/game/SectorInfo.java b/core/src/mindustry/game/SectorInfo.java index 06dd82a59c..a471ecf40f 100644 --- a/core/src/mindustry/game/SectorInfo.java +++ b/core/src/mindustry/game/SectorInfo.java @@ -117,11 +117,6 @@ public class SectorInfo{ export.get(item, ExportStat::new).counter += amount; } - /** Subtracts from export statistics. */ - public void handleItemImport(Item item, int amount){ - export.get(item, ExportStat::new).counter -= amount; - } - public float getExport(Item item){ return export.get(item, ExportStat::new).mean; } @@ -270,6 +265,26 @@ public class SectorInfo{ return map; } + + /** @return a newly allocated map with import statistics. Use sparingly. */ + public ObjectMap importStats(){ + //build empty import stats + ObjectMap imports = new ObjectMap<>(); + //for all sectors on all planets that have bases and export to this sector + for(Planet planet : content.planets()){ + for(Sector sector : planet.sectors){ + Sector dest = sector.info.getRealDestination(); + if(sector.hasBase() && sector.info != this && dest != null && dest.info == this){ + //add their exports to our imports + sector.info.export.each((item, stat) -> { + imports.get(item, ExportStat::new).mean += stat.mean; + }); + } + } + } + return imports; + } + public static class ExportStat{ public transient float counter; public transient WindowedMean means = new WindowedMean(valueWindow); diff --git a/core/src/mindustry/ui/dialogs/PlanetDialog.java b/core/src/mindustry/ui/dialogs/PlanetDialog.java index 7dbf935165..1e5b83fb84 100644 --- a/core/src/mindustry/ui/dialogs/PlanetDialog.java +++ b/core/src/mindustry/ui/dialogs/PlanetDialog.java @@ -614,7 +614,9 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ int[] i = {0}; - stats.each((item, stat) -> { + for(var item : content.items()){ + var stat = stats.get(item); + if(stat == null) continue; int total = (int)(stat.mean * 60 * scl); if(total > 1){ t.image(item.uiIcon).padRight(3); @@ -623,7 +625,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ t.row(); } } - }); + } if(t.getChildren().any()){ c.add(name).left().row(); @@ -658,6 +660,11 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ //export display.get(sector.info.export, "@sectors.export"); + //import + if(sector.hasBase()){ + display.get(sector.info.importStats(), "@sectors.import"); + } + ItemSeq items = sector.items(); //stored resources diff --git a/core/src/mindustry/world/blocks/campaign/LaunchPad.java b/core/src/mindustry/world/blocks/campaign/LaunchPad.java index 0fa14dcce1..c36b5a7a91 100644 --- a/core/src/mindustry/world/blocks/campaign/LaunchPad.java +++ b/core/src/mindustry/world/blocks/campaign/LaunchPad.java @@ -115,10 +115,6 @@ public class LaunchPad extends Block{ Draw.reset(); } - float cooldown = Mathf.clamp(launchCounter / (90f)); - - Draw.mixcol(lightColor, 1f - cooldown); - Draw.rect(podRegion, x, y); Draw.reset();