diff --git a/core/assets-raw/sprites/blocks/production/melter-liquid.png b/core/assets-raw/sprites/blocks/production/melter-liquid.png new file mode 100644 index 0000000000..19d66fa18a Binary files /dev/null and b/core/assets-raw/sprites/blocks/production/melter-liquid.png differ diff --git a/core/assets-raw/sprites/blocks/production/pulverizer-rotator.png b/core/assets-raw/sprites/blocks/production/pulverizer-rotator.png index 72cd249d26..f5522cfd11 100644 Binary files a/core/assets-raw/sprites/blocks/production/pulverizer-rotator.png and b/core/assets-raw/sprites/blocks/production/pulverizer-rotator.png differ diff --git a/core/assets-raw/sprites/blocks/production/pulverizer-top.png b/core/assets-raw/sprites/blocks/production/pulverizer-top.png new file mode 100644 index 0000000000..621e52e4cb Binary files /dev/null and b/core/assets-raw/sprites/blocks/production/pulverizer-top.png differ diff --git a/core/assets-raw/sprites/blocks/production/pulverizer.png b/core/assets-raw/sprites/blocks/production/pulverizer.png index d10680f33c..1132418067 100644 Binary files a/core/assets-raw/sprites/blocks/production/pulverizer.png and b/core/assets-raw/sprites/blocks/production/pulverizer.png differ diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index b1fac7921a..469eba9ce4 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -637,6 +637,7 @@ public class Blocks implements ContentList{ outputLiquid = new LiquidStack(Liquids.slag, 2f); craftTime = 10f; hasLiquids = hasPower = true; + drawer = new DrawLiquid(); consumes.power(1f); consumes.item(Items.scrap, 1); diff --git a/core/src/mindustry/world/draw/DrawLiquid.java b/core/src/mindustry/world/draw/DrawLiquid.java new file mode 100644 index 0000000000..2ea18ae1b1 --- /dev/null +++ b/core/src/mindustry/world/draw/DrawLiquid.java @@ -0,0 +1,34 @@ +package mindustry.world.draw; + +import arc.*; +import arc.graphics.g2d.*; +import mindustry.graphics.*; +import mindustry.world.*; +import mindustry.world.blocks.production.*; +import mindustry.world.blocks.production.GenericCrafter.*; + +public class DrawLiquid extends DrawBlock{ + public TextureRegion liquid, top; + + public void draw(GenericCrafterBuild entity){ + Draw.rect(entity.block.region, entity.x, entity.y); + + if(entity.liquids.total() > 0.001f){ + Drawf.liquid(liquid, entity.x, entity.y, + entity.liquids.get(((GenericCrafter)entity.block).outputLiquid.liquid) / entity.block.liquidCapacity, + ((GenericCrafter)entity.block).outputLiquid.liquid.color); + } + + if(top.found()) Draw.rect(top, entity.x, entity.y); + } + + @Override + public void load(Block block){ + top = Core.atlas.find(block.name + "-top"); + liquid = Core.atlas.find(block.name + "-liquid"); + } + + public TextureRegion[] icons(Block block){ + return top.found() ? new TextureRegion[]{block.region, top} : new TextureRegion[]{block.region}; + } +} diff --git a/core/src/mindustry/world/draw/DrawRotator.java b/core/src/mindustry/world/draw/DrawRotator.java index 166245fa6c..0b2fbe7151 100644 --- a/core/src/mindustry/world/draw/DrawRotator.java +++ b/core/src/mindustry/world/draw/DrawRotator.java @@ -6,21 +6,23 @@ import mindustry.world.*; import mindustry.world.blocks.production.GenericCrafter.*; public class DrawRotator extends DrawBlock{ - public TextureRegion rotator; + public TextureRegion rotator, top; @Override - public void draw(GenericCrafterBuild build){ - Draw.rect(build.block.region, build.x, build.y); - Draw.rect(rotator, build.x, build.y, build.totalProgress * 2f); + public void draw(GenericCrafterBuild entity){ + Draw.rect(entity.block.region, entity.x, entity.y); + Draw.rect(rotator, entity.x, entity.y, entity.totalProgress * 2f); + if(top.found()) Draw.rect(top, entity.x, entity.y); } @Override public void load(Block block){ rotator = Core.atlas.find(block.name + "-rotator"); + top = Core.atlas.find(block.name + "-top"); } @Override public TextureRegion[] icons(Block block){ - return new TextureRegion[]{block.region, rotator}; + return top.found() ? new TextureRegion[]{block.region, rotator, top} : new TextureRegion[]{block.region, rotator}; } }