diff --git a/core/src/io/anuke/mindustry/graphics/MinimapRenderer.java b/core/src/io/anuke/mindustry/graphics/MinimapRenderer.java index c997caae80..568884d609 100644 --- a/core/src/io/anuke/mindustry/graphics/MinimapRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/MinimapRenderer.java @@ -10,13 +10,11 @@ import io.anuke.arc.math.geom.*; import io.anuke.arc.scene.ui.layout.*; import io.anuke.arc.util.*; import io.anuke.arc.util.pooling.*; -import io.anuke.mindustry.content.TypeIDs; import io.anuke.mindustry.entities.*; import io.anuke.mindustry.entities.type.*; import io.anuke.mindustry.game.EventType.*; import io.anuke.mindustry.io.*; import io.anuke.mindustry.ui.*; -import io.anuke.mindustry.ui.dialogs.*; import io.anuke.mindustry.world.*; import static io.anuke.mindustry.Vars.*; @@ -151,6 +149,10 @@ public class MinimapRenderer implements Disposable{ private int colorFor(Tile tile){ if(tile == null) return 0; tile = tile.link(); + int bc = tile.block().minimapColor(tile); + if(bc != 0){ + return bc; + } return Tmp.c1.set(MapIO.colorFor(tile.floor(), tile.block(), tile.overlay(), tile.getTeam())).mul(tile.block().cacheLayer == CacheLayer.walls ? 1f - tile.rotation() / 4f : 1f).rgba(); } diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index 9710e1b8de..828c3e17d6 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -235,7 +235,7 @@ public class Block extends BlockStorage{ /** @return whether this block should play its idle sound.*/ public boolean shouldIdleSound(Tile tile){ - return canProduce(tile); + return shouldConsume(tile); } public void drawLayer(Tile tile){ @@ -716,6 +716,11 @@ public class Block extends BlockStorage{ Draw.color(); } + /** @return a custom minimap color for this tile, or 0 to use default colors. */ + public int minimapColor(Tile tile){ + return 0; + } + public void drawRequestConfigTop(BuildRequest req, Eachable list){ } diff --git a/core/src/io/anuke/mindustry/world/BlockStorage.java b/core/src/io/anuke/mindustry/world/BlockStorage.java index fc2ab42d1a..9591dcd087 100644 --- a/core/src/io/anuke/mindustry/world/BlockStorage.java +++ b/core/src/io/anuke/mindustry/world/BlockStorage.java @@ -266,9 +266,4 @@ public abstract class BlockStorage extends UnlockableContent{ } return false; } - - /** Returns whether this block's inventory has space and is ready for production. */ - public boolean canProduce(Tile tile){ - return true; - } } diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Sorter.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Sorter.java index 03b76000bf..46486bc074 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Sorter.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Sorter.java @@ -64,6 +64,11 @@ public class Sorter extends Block{ Draw.color(); } + @Override + public int minimapColor(Tile tile){ + return tile.entity().sortItem == null ? 0 : tile.entity().sortItem.color.rgba(); + } + @Override public boolean acceptItem(Item item, Tile tile, Tile source){ Tile to = getTileTarget(item, tile, source, false); diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Drill.java b/core/src/io/anuke/mindustry/world/blocks/production/Drill.java index 5e528a1416..ab9af6ea9e 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Drill.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Drill.java @@ -129,7 +129,7 @@ public class Drill extends Block{ } @Override - public boolean canProduce(Tile tile){ + public boolean shouldConsume(Tile tile){ return tile.entity.items.total() < itemCapacity; } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java b/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java index 2cd220d7b2..632fe30b7d 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java @@ -43,7 +43,7 @@ public class Fracker extends SolidPump{ public void drawCracks(Tile tile){} @Override - public boolean canProduce(Tile tile){ + public boolean shouldConsume(Tile tile){ return tile.entity.liquids.get(result) < liquidCapacity - 0.01f; } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java b/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java index 3d3d59686c..5ee91e3f01 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java @@ -135,7 +135,7 @@ public class GenericCrafter extends Block{ @Override - public boolean canProduce(Tile tile){ + public boolean shouldConsume(Tile tile){ if(outputItem != null && tile.entity.items.get(outputItem.item) >= itemCapacity){ return false; } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Separator.java b/core/src/io/anuke/mindustry/world/blocks/production/Separator.java index 90039e140e..b7813c5b4f 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Separator.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Separator.java @@ -61,7 +61,7 @@ public class Separator extends Block{ } @Override - public boolean canProduce(Tile tile){ + public boolean shouldConsume(Tile tile){ return tile.entity.items.total() < itemCapacity; } diff --git a/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java b/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java index 69e15f8309..1090f84015 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java @@ -186,16 +186,11 @@ public class UnitFactory extends Block{ } @Override - public boolean canProduce(Tile tile){ + public boolean shouldConsume(Tile tile){ UnitFactoryEntity entity = tile.entity(); return entity.spawned < maxSpawn; } - @Override - public boolean shouldConsume(Tile tile){ - return canProduce(tile); - } - public static class UnitFactoryEntity extends TileEntity{ float buildTime; float time; diff --git a/core/src/io/anuke/mindustry/world/modules/ConsumeModule.java b/core/src/io/anuke/mindustry/world/modules/ConsumeModule.java index e4a08ec413..6658496e5b 100644 --- a/core/src/io/anuke/mindustry/world/modules/ConsumeModule.java +++ b/core/src/io/anuke/mindustry/world/modules/ConsumeModule.java @@ -51,7 +51,7 @@ public class ConsumeModule extends BlockModule{ } public boolean valid(){ - return valid && entity.block.canProduce(entity.tile); + return valid && entity.block.shouldConsume(entity.tile); } public boolean optionalValid(){