From d7dc46b5c08a0757f8a9aa25c58a8b3ca8052617 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 2 Feb 2018 20:54:07 -0500 Subject: [PATCH] Block display bar cleanup --- .../io/anuke/mindustry/ai/OptimizedGraph.java | 9 ++++-- core/src/io/anuke/mindustry/ai/TileGraph.java | 12 -------- core/src/io/anuke/mindustry/core/Control.java | 4 +-- .../src/io/anuke/mindustry/core/Renderer.java | 28 +++++++++++++++++-- .../anuke/mindustry/entities/BulletType.java | 2 +- .../io/anuke/mindustry/io/BlockLoader.java | 4 +++ .../mindustry/ui/fragments/ChatFragment.java | 1 - core/src/io/anuke/mindustry/world/Block.java | 4 +++ .../io/anuke/mindustry/world/BlockBar.java | 19 +++++++++++++ .../mindustry/world/blocks/WeaponBlocks.java | 3 +- .../world/blocks/types/PowerBlock.java | 19 ++----------- .../blocks/types/defense/PowerTurret.java | 17 ++--------- .../blocks/types/defense/RepairTurret.java | 2 -- .../world/blocks/types/defense/Turret.java | 11 ++------ .../blocks/types/distribution/Router.java | 12 ++------ .../types/production/ItemPowerGenerator.java | 18 +++--------- .../types/production/LiquidCrafter.java | 13 ++------- .../types/production/NuclearReactor.java | 24 ++++------------ .../blocks/types/production/Smelter.java | 23 +++++++-------- 19 files changed, 96 insertions(+), 129 deletions(-) create mode 100644 core/src/io/anuke/mindustry/world/BlockBar.java diff --git a/core/src/io/anuke/mindustry/ai/OptimizedGraph.java b/core/src/io/anuke/mindustry/ai/OptimizedGraph.java index 40df66bc89..02bd9e5ebd 100644 --- a/core/src/io/anuke/mindustry/ai/OptimizedGraph.java +++ b/core/src/io/anuke/mindustry/ai/OptimizedGraph.java @@ -1,9 +1,12 @@ package io.anuke.mindustry.ai; -import com.badlogic.gdx.ai.pfa.indexed.IndexedGraph; - /**An interface for an indexed graph that doesn't use allocations for connections.*/ -public interface OptimizedGraph extends IndexedGraph { +public interface OptimizedGraph{ /**This is used in the same way as getConnections(), but does not use Connection objects.*/ N[] connectionsOf(N node); + + /** Returns the unique index of the given node. + * @param node the node whose index will be returned + * @return the unique index of the given node. */ + int getIndex (N node); } diff --git a/core/src/io/anuke/mindustry/ai/TileGraph.java b/core/src/io/anuke/mindustry/ai/TileGraph.java index 710cdadafc..919992078a 100644 --- a/core/src/io/anuke/mindustry/ai/TileGraph.java +++ b/core/src/io/anuke/mindustry/ai/TileGraph.java @@ -1,17 +1,10 @@ package io.anuke.mindustry.ai; -import com.badlogic.gdx.ai.pfa.Connection; -import com.badlogic.gdx.utils.Array; -import static io.anuke.mindustry.Vars.*; import io.anuke.mindustry.world.Tile; /**Tilegraph that ignores player-made tiles.*/ public class TileGraph implements OptimizedGraph { - /**return nothing, as this isn't used*/ - @Override - public Array> getConnections(Tile fromNode){ return null; } - /**Used for the OptimizedPathFinder implementation.*/ @Override public Tile[] connectionsOf(Tile node){ @@ -28,9 +21,4 @@ public class TileGraph implements OptimizedGraph { public int getIndex(Tile node){ return node.packedPosition(); } - - @Override - public int getNodeCount(){ - return world.width() * world.height(); - } } diff --git a/core/src/io/anuke/mindustry/core/Control.java b/core/src/io/anuke/mindustry/core/Control.java index 763b29a9c1..d7847da623 100644 --- a/core/src/io/anuke/mindustry/core/Control.java +++ b/core/src/io/anuke/mindustry/core/Control.java @@ -186,9 +186,7 @@ public class Control extends Module{ ui.restart.show(); - Timers.runTask(30f, () -> { - state.set(State.menu); - }); + Timers.runTask(30f, () -> state.set(State.menu)); }); } diff --git a/core/src/io/anuke/mindustry/core/Renderer.java b/core/src/io/anuke/mindustry/core/Renderer.java index d8dba863d3..fd6b8cacaf 100644 --- a/core/src/io/anuke/mindustry/core/Renderer.java +++ b/core/src/io/anuke/mindustry/core/Renderer.java @@ -19,6 +19,7 @@ import io.anuke.mindustry.graphics.Shaders; import io.anuke.mindustry.input.InputHandler; import io.anuke.mindustry.input.PlaceMode; import io.anuke.mindustry.ui.fragments.ToolFragment; +import io.anuke.mindustry.world.BlockBar; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.Blocks; import io.anuke.mindustry.world.blocks.ProductionBlocks; @@ -399,8 +400,27 @@ public class Renderer extends RendererModule{ if(tile.isLinked()) target = tile.getLinked(); - if(target.entity != null) - drawHealth(target.drawx(), target.drawy() - 3f - target.block().height / 2f * tilesize, target.entity.health, target.entity.tile.block().health); + //if(target.entity != null) + // drawHealth(target.drawx(), target.drawy() - 3f - target.block().height / 2f * tilesize, target.entity.health, target.entity.tile.block().health); + + if(target.entity != null) { + int bot = 0, top = 0; + for (BlockBar bar : tile.block().bars) { + float offset = Mathf.sign(bar.top) * (target.block().height / 2f * tilesize + 3f + 4f * ((bar.top ? top : bot))) + + (bar.top ? -1f : 0f); + + float value = bar.value.get(target); + + if(value <= -1f) continue; + + drawBar(bar.color, target.drawx(), target.drawy() + offset, value); + + if (bar.top) + top++; + else + bot++; + } + } target.block().drawSelect(target); } @@ -434,6 +454,10 @@ public class Renderer extends RendererModule{ //TODO optimize! public void drawBar(Color color, float x, float y, float fraction){ fraction = Mathf.clamp(fraction); + + if(fraction > 0) + fraction = Mathf.clamp(fraction + 0.2f, 0.24f, 1f); + float len = 3; float w = (int) (len * 2 * fraction) + 0.5f; diff --git a/core/src/io/anuke/mindustry/entities/BulletType.java b/core/src/io/anuke/mindustry/entities/BulletType.java index 9ad30d67b6..fb1b0fda90 100644 --- a/core/src/io/anuke/mindustry/entities/BulletType.java +++ b/core/src/io/anuke/mindustry/entities/BulletType.java @@ -291,7 +291,7 @@ public abstract class BulletType extends BaseBulletType{ Draw.reset(); } }, - flame = new BulletType(0.6f, 5){ //for turrets + flame = new BulletType(0.7f, 5){ //for turrets public void draw(Bullet b){ Draw.color(Color.YELLOW, Color.SCARLET, b.time/lifetime); float size = 6f-b.time/lifetime*5f; diff --git a/core/src/io/anuke/mindustry/io/BlockLoader.java b/core/src/io/anuke/mindustry/io/BlockLoader.java index a423a866e8..fead464606 100644 --- a/core/src/io/anuke/mindustry/io/BlockLoader.java +++ b/core/src/io/anuke/mindustry/io/BlockLoader.java @@ -123,6 +123,10 @@ public class BlockLoader { blockmap.put(defaultMap.get(string, -1), block); } + for(Block block : Block.getAllBlocks()){ + block.init(); + } + Log.info("Total blocks loaded: {0}", Block.getAllBlocks().size); } diff --git a/core/src/io/anuke/mindustry/ui/fragments/ChatFragment.java b/core/src/io/anuke/mindustry/ui/fragments/ChatFragment.java index 5c39be6784..6ef83b3c89 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/ChatFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/ChatFragment.java @@ -152,7 +152,6 @@ public class ChatFragment extends Table implements Fragment{ } public void toggle(){ - Log.info("open"); if(!chatOpen){ scene.setKeyboardFocus(chatfield); diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index e1c66283ef..bbe92ae649 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -1,5 +1,6 @@ package io.anuke.mindustry.world; +import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Array; @@ -84,6 +85,8 @@ public class Block{ public Layer layer = null; /**Extra layer to draw extra extra stuff on.*/ public Layer layer2 = null; + /**list of displayed block status bars. Defaults to health bar.*/ + public Array bars = Array.with(new BlockBar(Color.RED, false, tile -> tile.entity.health / (float)tile.block().health)); public Block(String name) { this.name = name; @@ -108,6 +111,7 @@ public class Block{ public void drawSelect(Tile tile){} public void drawPlace(int x, int y, int rotation, boolean valid){} public void placed(Tile tile){} + public void init(){} public void tapped(Tile tile){} public void buildTable(Tile tile, Table table) {} diff --git a/core/src/io/anuke/mindustry/world/BlockBar.java b/core/src/io/anuke/mindustry/world/BlockBar.java new file mode 100644 index 0000000000..3483880d43 --- /dev/null +++ b/core/src/io/anuke/mindustry/world/BlockBar.java @@ -0,0 +1,19 @@ +package io.anuke.mindustry.world; + +import com.badlogic.gdx.graphics.Color; + +public class BlockBar { + public final ValueSupplier value; + public final Color color; + public final boolean top; + + public BlockBar(Color color, boolean top, ValueSupplier value) { + this.value = value; + this.color = color; + this.top = top; + } + + public interface ValueSupplier{ + float get(Tile tile); + } +} diff --git a/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java b/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java index 81b4c70523..681d8b45b2 100644 --- a/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/WeaponBlocks.java @@ -74,11 +74,12 @@ public class WeaponBlocks{ flameturret = new Turret("flameturret"){ { - range = 35f; + range = 45f; reload = 5f; bullet = BulletType.flame; ammo = Item.coal; health = 90; + inaccuracy = 4f; } }, diff --git a/core/src/io/anuke/mindustry/world/blocks/types/PowerBlock.java b/core/src/io/anuke/mindustry/world/blocks/types/PowerBlock.java index e5d77a10c4..3a2c3ddeff 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/PowerBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/PowerBlock.java @@ -4,16 +4,13 @@ import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.world.Block; +import io.anuke.mindustry.world.BlockBar; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.util.Mathf; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import static io.anuke.mindustry.Vars.renderer; -import static io.anuke.mindustry.Vars.tilesize; - public abstract class PowerBlock extends Block implements PowerAcceptor{ public float powerCapacity = 10f; public float voltage = 0.001f; @@ -22,6 +19,8 @@ public abstract class PowerBlock extends Block implements PowerAcceptor{ super(name); update = true; solid = true; + + bars.add(new BlockBar(Color.YELLOW, true, tile -> tile.entity().power / powerCapacity)); } @Override @@ -30,18 +29,6 @@ public abstract class PowerBlock extends Block implements PowerAcceptor{ list.add("[powerinfo]Power Capacity: " + powerCapacity); } - @Override - public void drawSelect(Tile tile){ - PowerEntity entity = tile.entity(); - - float fract = entity.power / powerCapacity; - if(fract > 0) - fract = Mathf.clamp(fract + 0.2f, 0.24f, 1f); - - renderer.drawBar(Color.YELLOW, tile.drawx(), - tile.drawy() + tilesize * height/2f + 2, fract); - } - /**Tries adding all the power with no remainder, returns success.*/ public boolean tryAddPower(Tile tile, float amount){ PowerEntity entity = tile.entity(); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/PowerTurret.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/PowerTurret.java index 6b6bd1a6af..74f0c3d219 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/PowerTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/PowerTurret.java @@ -2,14 +2,13 @@ package io.anuke.mindustry.world.blocks.types.defense; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Array; -import static io.anuke.mindustry.Vars.*; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.resource.Item; +import io.anuke.mindustry.world.BlockBar; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.PowerAcceptor; import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Lines; -import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Strings; import java.io.DataInputStream; @@ -23,6 +22,8 @@ public class PowerTurret extends Turret implements PowerAcceptor{ public PowerTurret(String name) { super(name); ammo = null; + + bars.set(1, new BlockBar(Color.YELLOW, true, tile -> tile.entity().power / powerCapacity)); } @Override @@ -37,18 +38,6 @@ public class PowerTurret extends Turret implements PowerAcceptor{ Draw.color(Color.GREEN); Lines.dashCircle(tile.drawx(), tile.drawy(), range); Draw.reset(); - - drawPowerBar(tile); - } - - public void drawPowerBar(Tile tile){ - PowerTurretEntity entity = tile.entity(); - - float fract = (float)entity.power / powerCapacity; - if(fract > 0) - fract = Mathf.clamp(fract, 0.24f, 1f); - - renderer.drawBar(Color.YELLOW, tile.drawx(), tile.drawy() + 6, fract); } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java index b13f53d322..84334b3006 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java @@ -75,8 +75,6 @@ public class RepairTurret extends PowerTurret{ Draw.color(Color.GREEN); Lines.dashCircle(tile.worldx(), tile.worldy(), range); Draw.reset(); - - drawPowerBar(tile); } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java index b073f9e32c..5a0abec79b 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java @@ -9,6 +9,7 @@ import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Block; +import io.anuke.mindustry.world.BlockBar; import io.anuke.mindustry.world.Layer; import io.anuke.mindustry.world.Tile; import io.anuke.ucore.core.Effects; @@ -56,6 +57,8 @@ public class Turret extends Block{ update = true; solid = true; layer = Layer.turret; + + bars.add(new BlockBar(Color.GREEN, true, tile -> (float)tile.entity().ammo / maxammo)); } @Override @@ -101,14 +104,6 @@ public class Turret extends Block{ Draw.color(Color.GREEN); Lines.dashCircle(tile.drawx(), tile.drawy(), range); Draw.reset(); - - TurretEntity entity = tile.entity(); - - float fract = (float)entity.ammo/maxammo; - if(fract > 0) - fract = Mathf.clamp(fract, 0.24f, 1f); - - renderer.drawBar(Color.GREEN, tile.drawx(), 2 + tile.drawy() + height/2f * tilesize, fract); } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Router.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Router.java index 919d1e7b0c..376367f56d 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Router.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Router.java @@ -2,10 +2,9 @@ package io.anuke.mindustry.world.blocks.types.distribution; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Array; - -import static io.anuke.mindustry.Vars.*; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Block; +import io.anuke.mindustry.world.BlockBar; import io.anuke.mindustry.world.Tile; import io.anuke.ucore.util.Mathf; @@ -18,6 +17,7 @@ public class Router extends Block{ super(name); update = true; solid = true; + bars.add(new BlockBar(Color.GREEN, true, tile -> (float)tile.entity.totalItems()/capacity)); } @Override @@ -56,13 +56,5 @@ public class Router extends Block{ int items = tile.entity.totalItems(); return items < capacity; } - - @Override - public void drawSelect(Tile tile){ - - float fract = (float)tile.entity.totalItems()/capacity; - - renderer.drawBar(Color.GREEN, tile.worldx(), tile.worldy() + 6, fract); - } } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/ItemPowerGenerator.java b/core/src/io/anuke/mindustry/world/blocks/types/production/ItemPowerGenerator.java index a73b7555f2..88ecc43b6c 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/ItemPowerGenerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/ItemPowerGenerator.java @@ -2,16 +2,14 @@ package io.anuke.mindustry.world.blocks.types.production; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Array; - -import static io.anuke.mindustry.Vars.*; -import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; +import io.anuke.mindustry.world.BlockBar; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.core.Timers; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Strings; @@ -26,6 +24,8 @@ public class ItemPowerGenerator extends Generator{ public ItemPowerGenerator(String name) { super(name); outputOnly = true; + + bars.add(new BlockBar(Color.GREEN, true, tile -> (float)tile.entity.getItem(generateItem) / itemCapacity)); } @Override @@ -53,16 +53,6 @@ public class ItemPowerGenerator extends Generator{ } } - @Override - public void drawSelect(Tile tile){ - super.drawSelect(tile); - - TileEntity entity = tile.entity; - - //TODO maybe don't draw it due to clutter - renderer.drawBar(Color.GREEN, tile.worldx(), tile.worldy() + 10, (float)entity.getItem(generateItem) / itemCapacity); - } - @Override public boolean acceptItem(Item item, Tile tile, Tile source){ return item == generateItem && tile.entity.getItem(generateItem) < itemCapacity; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidCrafter.java b/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidCrafter.java index c1c6320ac1..7b4e650954 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidCrafter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidCrafter.java @@ -2,11 +2,11 @@ package io.anuke.mindustry.world.blocks.types.production; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Array; -import static io.anuke.mindustry.Vars.*; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Liquid; +import io.anuke.mindustry.world.BlockBar; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.LiquidBlock; import io.anuke.ucore.core.Effects; @@ -35,6 +35,8 @@ public class LiquidCrafter extends LiquidBlock{ solid = true; health = 60; liquidCapacity = 21f; + + bars.add(new BlockBar(Color.GREEN, true, tile -> input == null ? -1f : (float)tile.entity.getItem(input) / itemCapacity)); } @Override @@ -79,15 +81,6 @@ public class LiquidCrafter extends LiquidBlock{ } } - @Override - public void drawSelect(Tile tile){ - if(input == null) return; - - float fract = (float)tile.entity.getItem(input) / itemCapacity; - - renderer.drawBar(Color.GREEN, tile.worldx(), tile.worldy() + 6, fract); - } - @Override public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){ return super.acceptLiquid(tile, source, liquid, amount) && liquid == inputLiquid; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/NuclearReactor.java b/core/src/io/anuke/mindustry/world/blocks/types/production/NuclearReactor.java index e9d549f2ef..be72ccfb45 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/NuclearReactor.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/NuclearReactor.java @@ -7,6 +7,7 @@ import io.anuke.mindustry.entities.effect.DamageArea; import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Liquid; +import io.anuke.mindustry.world.BlockBar; import io.anuke.mindustry.world.Tile; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Timers; @@ -19,7 +20,7 @@ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import static io.anuke.mindustry.Vars.*; +import static io.anuke.mindustry.Vars.tilesize; public class NuclearReactor extends LiquidPowerGenerator{ protected final int timerFuel = timers++; @@ -47,6 +48,9 @@ public class NuclearReactor extends LiquidPowerGenerator{ explosive = true; powerCapacity = 80f; powerSpeed = 0.5f; + + bars.add(new BlockBar(Color.GREEN, true, tile -> (float)tile.entity.getItem(generateItem) / itemCapacity)); + bars.add(new BlockBar(Color.ORANGE, true, tile -> tile.entity().heat)); } @Override @@ -145,24 +149,6 @@ public class NuclearReactor extends LiquidPowerGenerator{ }); } } - - @Override - public void drawSelect(Tile tile){ - super.drawSelect(tile); - - NuclearReactorEntity entity = tile.entity(); - - renderer.drawBar(Color.GREEN, tile.drawx(), tile.drawy() + 6 + - height*tilesize/2f, (float)entity.getItem(generateItem) / itemCapacity); - Draw.reset(); - - float fract = entity.heat; - if(fract > 0) - fract = Mathf.clamp(fract + 0.2f, 0.24f, 1f); - - renderer.drawBar(Color.ORANGE, tile.drawx(), - tile.drawy() + tilesize * height/2f + 10, fract); - } @Override public boolean acceptItem(Item item, Tile tile, Tile source){ diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/Smelter.java b/core/src/io/anuke/mindustry/world/blocks/types/production/Smelter.java index f86410843f..b00b4465e6 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/Smelter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/Smelter.java @@ -2,16 +2,16 @@ package io.anuke.mindustry.world.blocks.types.production; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Array; -import static io.anuke.mindustry.Vars.*; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Block; +import io.anuke.mindustry.world.BlockBar; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.core.Timers; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Strings; @@ -36,6 +36,14 @@ public class Smelter extends Block{ update = true; solid = true; } + + @Override + public void init(){ + for(int i = 0; i < inputs.length; i ++){ + final Item item = inputs[i]; + bars.add(new BlockBar(Color.GREEN, true, tile -> (float)tile.entity.getItem(item)/capacity)); + } + } @Override public void getStats(Array list){ @@ -118,17 +126,6 @@ public class Smelter extends Block{ } } - - @Override - public void drawSelect(Tile tile){ - //draw a separate bar for each requirement - for(int i = 0; i < inputs.length; i ++){ - float fract = ((float)tile.entity.getItem(inputs[i]))/capacity; - - renderer.drawBar(Color.GREEN, tile.worldx(), tile.worldy() + 6 + i*4, fract); - } - } - @Override public TileEntity getEntity() { return new CrafterEntity();