diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 295db825a2..0dc46e60d8 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -497,6 +497,7 @@ text.mech.ability = [LIGHT_GRAY]Ability\: {0} text.liquid.heatcapacity = [LIGHT_GRAY]Heat Capacity\: {0} text.liquid.viscosity = [LIGHT_GRAY]Viscosity\: {0} text.liquid.temperature = [LIGHT_GRAY]Temperature\: {0} +block.constructing = {0}\n[LIGHT_GRAY](Constructing) block.spawn.name = Enemy Spawn block.core.name = Core block.metalfloor.name = Metal Floor diff --git a/core/src/io/anuke/mindustry/core/Logic.java b/core/src/io/anuke/mindustry/core/Logic.java index 1883f52af5..5063a29b0b 100644 --- a/core/src/io/anuke/mindustry/core/Logic.java +++ b/core/src/io/anuke/mindustry/core/Logic.java @@ -34,7 +34,6 @@ import static io.anuke.mindustry.Vars.*; * This class should not call any outside methods to change state of modules, but instead fire events. */ public class Logic extends Module{ - public boolean doUpdate = true; public Logic(){ Events.on(TileChangeEvent.class, event -> { diff --git a/core/src/io/anuke/mindustry/ui/SelectionTable.java b/core/src/io/anuke/mindustry/ui/SelectionTable.java index 476605cdbc..b18b27a7b0 100644 --- a/core/src/io/anuke/mindustry/ui/SelectionTable.java +++ b/core/src/io/anuke/mindustry/ui/SelectionTable.java @@ -1,7 +1,6 @@ package io.anuke.mindustry.ui; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import io.anuke.mindustry.content.blocks.Blocks; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.OreBlock; @@ -15,12 +14,12 @@ import io.anuke.ucore.util.Mathf; import static io.anuke.mindustry.Vars.world; public class SelectionTable extends Table{ - Block selected = Blocks.air; + Tile lastTile; public SelectionTable(){ super("clear"); - margin(4f); + margin(5f); update(() -> { Block result; @@ -32,16 +31,20 @@ public class SelectionTable extends Table{ result = null; } - if(result != null) selected = result; + if(result != null){ + lastTile = tile; + } getTranslation().y = Mathf.lerp(getTranslation().y, result == null ? -getHeight() : 0f, 0.2f); }); Image image = new Image(new TextureRegionDrawable(new TextureRegion(Draw.region("clear")))); - image.update(() -> ((TextureRegionDrawable)image.getDrawable()).setRegion(selected.getEditorIcon())); + image.update(() -> + ((TextureRegionDrawable)image.getDrawable()).setRegion(lastTile == null ? Draw.getBlankRegion() : + lastTile.block().getDisplayIcon(lastTile))); - add(image).size(16*2); - label(() -> selected instanceof OreBlock ? selected.drops.item.localizedName() : selected.formalName).pad(4); + add(image).size(16*2).padRight(4); + label(() -> lastTile == null ? "" : lastTile.block().getDisplayName(lastTile)); pack(); getTranslation().y = - getHeight(); diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index e12050bbb5..093d9b77de 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -452,6 +452,14 @@ public class Block extends BaseBlock { } } + public String getDisplayName(Tile tile){ + return formalName; + } + + public TextureRegion getDisplayIcon(Tile tile){ + return getEditorIcon(); + } + public TextureRegion getEditorIcon(){ if(editorIcon == null){ editorIcon = Draw.region("block-icon-" + name, Draw.region("clear")); diff --git a/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java b/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java index e2fe0f5865..f5a1ba14e9 100644 --- a/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java @@ -16,6 +16,7 @@ import io.anuke.mindustry.graphics.Layer; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Shaders; import io.anuke.mindustry.input.CursorType; +import io.anuke.mindustry.type.ContentType; import io.anuke.mindustry.type.ItemStack; import io.anuke.mindustry.type.Recipe; import io.anuke.mindustry.world.BarType; @@ -26,6 +27,7 @@ import io.anuke.mindustry.world.modules.ItemModule; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Graphics; import io.anuke.ucore.graphics.Draw; +import io.anuke.ucore.util.Bundles; import io.anuke.ucore.util.Mathf; import java.io.DataInput; @@ -68,6 +70,18 @@ public class BuildBlock extends Block{ } } + @Override + public String getDisplayName(Tile tile){ + BuildEntity entity = tile.entity(); + return Bundles.format("block.constructing", entity.recipe == null ? entity.previous.formalName : entity.recipe.result.formalName); + } + + @Override + public TextureRegion getDisplayIcon(Tile tile){ + BuildEntity entity = tile.entity(); + return (entity.recipe == null ? entity.previous : entity.recipe.result).getEditorIcon(); + } + @Override public boolean isSolidFor(Tile tile){ BuildEntity entity = tile.entity(); diff --git a/core/src/io/anuke/mindustry/world/blocks/OreBlock.java b/core/src/io/anuke/mindustry/world/blocks/OreBlock.java index 7333c7dcd2..6abb723921 100644 --- a/core/src/io/anuke/mindustry/world/blocks/OreBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/OreBlock.java @@ -24,6 +24,11 @@ public class OreBlock extends Floor{ this.edge = base.name; } + @Override + public String getDisplayName(Tile tile){ + return drops.item.localizedName(); + } + @Override public TextureRegion getEditorIcon(){ if(editorIcon == null){