From c05020e28ed9cfcf05e3b45b64c8978e7fddb391 Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 1 Aug 2018 22:14:43 -0400 Subject: [PATCH] Fixed no-wave FPS display / Fixed unit pad inventories --- .../mindustry/content/blocks/UnitBlocks.java | 8 ++++---- .../mindustry/entities/units/BaseUnit.java | 2 +- .../mindustry/ui/fragments/HudFragment.java | 6 ++++-- .../units/{UnitFactory.java => UnitPad.java} | 19 +++++++++++++++---- 4 files changed, 24 insertions(+), 11 deletions(-) rename core/src/io/anuke/mindustry/world/blocks/units/{UnitFactory.java => UnitPad.java} (94%) diff --git a/core/src/io/anuke/mindustry/content/blocks/UnitBlocks.java b/core/src/io/anuke/mindustry/content/blocks/UnitBlocks.java index 6566ce0849..ca5a83e2cf 100644 --- a/core/src/io/anuke/mindustry/content/blocks/UnitBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/UnitBlocks.java @@ -14,7 +14,7 @@ public class UnitBlocks extends BlockList implements ContentList{ @Override public void load(){ - dronePad = new UnitFactory("drone-pad"){{ + dronePad = new UnitPad("drone-pad"){{ type = UnitTypes.drone; produceTime = 800; size = 2; @@ -22,7 +22,7 @@ public class UnitBlocks extends BlockList implements ContentList{ consumes.items(new ItemStack[]{new ItemStack(Items.silicon, 30), new ItemStack(Items.lead, 30)}); }}; - fabricatorPad = new UnitFactory("fabricator-pad"){{ + fabricatorPad = new UnitPad("fabricator-pad"){{ type = UnitTypes.fabricator; produceTime = 1600; size = 2; @@ -30,7 +30,7 @@ public class UnitBlocks extends BlockList implements ContentList{ consumes.items(new ItemStack[]{new ItemStack(Items.silicon, 70), new ItemStack(Items.lead, 80), new ItemStack(Items.titanium, 80)}); }}; - interceptorPad = new UnitFactory("interceptor-pad"){{ + interceptorPad = new UnitPad("interceptor-pad"){{ type = UnitTypes.interceptor; produceTime = 1300; size = 2; @@ -38,7 +38,7 @@ public class UnitBlocks extends BlockList implements ContentList{ consumes.items(new ItemStack[]{new ItemStack(Items.silicon, 30), new ItemStack(Items.titanium, 40)}); }}; - monsoonPad = new UnitFactory("monsoon-pad"){{ + monsoonPad = new UnitPad("monsoon-pad"){{ type = UnitTypes.monsoon; produceTime = 1400; size = 3; diff --git a/core/src/io/anuke/mindustry/entities/units/BaseUnit.java b/core/src/io/anuke/mindustry/entities/units/BaseUnit.java index 6ccbb69118..0182dd19af 100644 --- a/core/src/io/anuke/mindustry/entities/units/BaseUnit.java +++ b/core/src/io/anuke/mindustry/entities/units/BaseUnit.java @@ -24,7 +24,7 @@ import io.anuke.mindustry.type.ItemStack; import io.anuke.mindustry.type.Weapon; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.units.CommandCenter.CommandCenterEntity; -import io.anuke.mindustry.world.blocks.units.UnitFactory.UnitFactoryEntity; +import io.anuke.mindustry.world.blocks.units.UnitPad.UnitFactoryEntity; import io.anuke.mindustry.world.meta.BlockFlag; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Timers; diff --git a/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java b/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java index 5cddbd9d0b..0c3f83f77a 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java @@ -97,7 +97,7 @@ public class HudFragment extends Fragment{ cont.row(); - cont.table(this::addWaveTable).touchable(Touchable.enabled).fillX().height(66f); + Table waves = cont.table(this::addWaveTable).touchable(Touchable.enabled).fillX().height(66f).get(); cont.row(); @@ -112,7 +112,9 @@ public class HudFragment extends Fragment{ if(Net.hasClient()){ t.label(() -> ping.get(Net.getPing())).visible(() -> Net.client() && !gwt).colspan(2); } - }).size(-1).visible(() -> Settings.getBool("fps")).get(); + }).size(-1).visible(() -> Settings.getBool("fps")).update(t -> { + t.setTranslation(0, state.mode.disableWaves ? waves.getHeight() : 0); + }).get(); //make wave box appear below rest of menu cont.swapActor(wavetable, menu.getParent()); diff --git a/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java b/core/src/io/anuke/mindustry/world/blocks/units/UnitPad.java similarity index 94% rename from core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java rename to core/src/io/anuke/mindustry/world/blocks/units/UnitPad.java index e6eca20d80..e0b1899391 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/UnitPad.java @@ -34,19 +34,20 @@ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -public class UnitFactory extends Block{ +public class UnitPad extends Block{ protected UnitType type; protected float produceTime = 1000f; protected float openDuration = 50f; protected float launchVelocity = 0f; protected String unitRegion; - public UnitFactory(String name){ + public UnitPad(String name){ super(name); update = true; hasPower = true; hasItems = true; solidifes = true; + itemCapacity = 10; consumes.require(ConsumeItems.class); } @@ -54,7 +55,7 @@ public class UnitFactory extends Block{ @Remote(called = Loc.server) public static void onUnitFactorySpawn(Tile tile){ UnitFactoryEntity entity = tile.entity(); - UnitFactory factory = (UnitFactory) tile.block(); + UnitPad factory = (UnitPad) tile.block(); entity.buildTime = 0f; entity.hasSpawned = true; @@ -188,13 +189,23 @@ public class UnitFactory extends Block{ @Override public boolean acceptItem(Item item, Tile tile, Tile source){ for(ItemStack stack : consumes.items()){ - if(item == stack.item && tile.entity.items.get(item) <= stack.amount * 2){ + if(item == stack.item && tile.entity.items.get(item) < stack.amount * 2){ return true; } } return false; } + @Override + public int getMaximumAccepted(Tile tile, Item item){ + for(ItemStack stack : consumes.items()){ + if(item == stack.item){ + return stack.amount * 2; + } + } + return 0; + } + @Override public TileEntity getEntity(){ return new UnitFactoryEntity();