diff --git a/core/src/mindustry/graphics/Drawf.java b/core/src/mindustry/graphics/Drawf.java index 685110047a..384331f56b 100644 --- a/core/src/mindustry/graphics/Drawf.java +++ b/core/src/mindustry/graphics/Drawf.java @@ -96,6 +96,20 @@ public class Drawf{ Draw.color(); } + public static void liquid(TextureRegion region, float x, float y, float alpha, Color color, float rotation){ + Draw.color(color); + Draw.alpha(alpha); + Draw.rect(region, x, y, rotation); + Draw.reset(); + } + + public static void liquid(TextureRegion region, float x, float y, float alpha, Color color){ + Draw.color(color); + Draw.alpha(alpha); + Draw.rect(region, x, y); + Draw.reset(); + } + public static void dashCircle(float x, float y, float rad, Color color){ Lines.stroke(3f, Pal.gray); Lines.dashCircle(x, y, rad); diff --git a/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java b/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java index 146dfc856c..7b3736cc81 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java @@ -7,6 +7,7 @@ import mindustry.entities.*; import mindustry.entities.bullet.*; import mindustry.gen.*; import mindustry.type.*; +import mindustry.graphics.*; import mindustry.world.consumers.*; import mindustry.world.meta.*; import mindustry.world.meta.values.*; @@ -59,10 +60,7 @@ public class LiquidTurret extends Turret{ super.draw(); if(liquidRegion.found()){ - Draw.color(liquids.current().color); - Draw.alpha(liquids.total() / liquidCapacity); - Draw.rect(liquidRegion, x + tr2.x, y + tr2.y, rotation - 90); - Draw.reset(); + Drawf.liquid(liquidRegion, x + tr2.x, y + tr2.y, liquids.total() / liquidCapacity, liquids.current().color, rotation - 90); } if(topRegion.found()) Draw.rect(topRegion, x + tr2.x, y + tr2.y, rotation - 90); } diff --git a/core/src/mindustry/world/blocks/liquid/Conduit.java b/core/src/mindustry/world/blocks/liquid/Conduit.java index 0db85e80c0..acba938649 100644 --- a/core/src/mindustry/world/blocks/liquid/Conduit.java +++ b/core/src/mindustry/world/blocks/liquid/Conduit.java @@ -103,10 +103,7 @@ public class Conduit extends LiquidBlock implements Autotiler{ Draw.color(botColor); Draw.rect(sliced(botRegions[bits], slice), x, y, rotation); - Draw.color(liquids.current().color); - Draw.alpha(smoothLiquid); - Draw.rect(sliced(botRegions[bits], slice), x, y, rotation); - Draw.color(); + Drawf.liquid(sliced(botRegions[bits], slice), x, y, smoothLiquid, liquids.current().color, rotation); Draw.rect(sliced(topRegions[bits], slice), x, y, rotation); } diff --git a/core/src/mindustry/world/blocks/liquid/LiquidBlock.java b/core/src/mindustry/world/blocks/liquid/LiquidBlock.java index 99ce2bda64..eb9a3f16d3 100644 --- a/core/src/mindustry/world/blocks/liquid/LiquidBlock.java +++ b/core/src/mindustry/world/blocks/liquid/LiquidBlock.java @@ -3,6 +3,7 @@ package mindustry.world.blocks.liquid; import arc.graphics.g2d.*; import mindustry.annotations.Annotations.*; import mindustry.gen.*; +import mindustry.graphics.*; import mindustry.world.*; import mindustry.world.meta.*; @@ -32,10 +33,7 @@ public class LiquidBlock extends Block{ Draw.rect(bottomRegion, x, y, rotation); if(liquids.total() > 0.001f){ - Draw.color(liquids.current().color); - Draw.alpha(liquids.total() / liquidCapacity); - Draw.rect(liquidRegion, x, y, rotation); - Draw.color(); + Drawf.liquid(liquidRegion, x, y, liquids.total() / liquidCapacity, liquids.current().color); } Draw.rect(topRegion, x, y, rotation); diff --git a/core/src/mindustry/world/blocks/power/BurnerGenerator.java b/core/src/mindustry/world/blocks/power/BurnerGenerator.java index d1743d8481..763b92ed20 100644 --- a/core/src/mindustry/world/blocks/power/BurnerGenerator.java +++ b/core/src/mindustry/world/blocks/power/BurnerGenerator.java @@ -1,6 +1,7 @@ package mindustry.world.blocks.power; import arc.graphics.g2d.*; +import mindustry.graphics.*; import mindustry.annotations.Annotations.*; import mindustry.type.*; @@ -41,10 +42,7 @@ public class BurnerGenerator extends ItemLiquidGenerator{ Draw.rect(capRegion, x, y); if(hasLiquids){ - Draw.color(liquids.current().color); - Draw.alpha(liquids.currentAmount() / liquidCapacity); - Draw.rect(liquidRegion, x, y); - Draw.color(); + Drawf.liquid(liquidRegion, x, y, liquids.total() / liquidCapacity, liquids.current().color); } } } diff --git a/core/src/mindustry/world/blocks/power/ItemLiquidGenerator.java b/core/src/mindustry/world/blocks/power/ItemLiquidGenerator.java index 2419c9a039..2d82bfa4c7 100644 --- a/core/src/mindustry/world/blocks/power/ItemLiquidGenerator.java +++ b/core/src/mindustry/world/blocks/power/ItemLiquidGenerator.java @@ -165,10 +165,7 @@ public class ItemLiquidGenerator extends PowerGenerator{ } if(hasLiquids){ - Draw.color(liquids.current().color); - Draw.alpha(liquids.currentAmount() / liquidCapacity); - Draw.rect(liquidRegion, x, y); - Draw.color(); + Drawf.liquid(liquidRegion, x, y, liquids.total() / liquidCapacity, liquids.current().color); } } diff --git a/core/src/mindustry/world/blocks/production/Cultivator.java b/core/src/mindustry/world/blocks/production/Cultivator.java index f9341f3c35..2dc97d82f6 100644 --- a/core/src/mindustry/world/blocks/production/Cultivator.java +++ b/core/src/mindustry/world/blocks/production/Cultivator.java @@ -70,9 +70,7 @@ public class Cultivator extends GenericCrafter{ public void draw(){ Draw.rect(region, x, y); - Draw.color(plantColor); - Draw.alpha(warmup); - Draw.rect(middleRegion, x, y); + Drawf.liquid(middleRegion, x, y, warmup, plantColor); Draw.color(bottomColor, plantColorLight, warmup); diff --git a/core/src/mindustry/world/blocks/production/Fracker.java b/core/src/mindustry/world/blocks/production/Fracker.java index 0c6591c3d0..f1389f1cbe 100644 --- a/core/src/mindustry/world/blocks/production/Fracker.java +++ b/core/src/mindustry/world/blocks/production/Fracker.java @@ -1,6 +1,7 @@ package mindustry.world.blocks.production; import arc.graphics.g2d.*; +import mindustry.graphics.*; import mindustry.annotations.Annotations.*; import mindustry.world.meta.*; @@ -44,10 +45,7 @@ public class Fracker extends SolidPump{ Draw.rect(region, x, y); super.drawCracks(); - Draw.color(result.color); - Draw.alpha(liquids.get(result) / liquidCapacity); - Draw.rect(liquidRegion, x, y); - Draw.color(); + Drawf.liquid(liquidRegion, x, y, liquids.total() / liquidCapacity, result.color); Draw.rect(rotatorRegion, x, y, pumpTime); Draw.rect(topRegion, x, y); diff --git a/core/src/mindustry/world/blocks/production/Pump.java b/core/src/mindustry/world/blocks/production/Pump.java index ac138fc620..b94acd34fb 100644 --- a/core/src/mindustry/world/blocks/production/Pump.java +++ b/core/src/mindustry/world/blocks/production/Pump.java @@ -5,6 +5,7 @@ import arc.graphics.*; import arc.graphics.g2d.*; import mindustry.game.*; import mindustry.type.*; +import mindustry.graphics.*; import mindustry.ui.*; import mindustry.world.*; import mindustry.world.blocks.liquid.*; @@ -85,10 +86,7 @@ public class Pump extends LiquidBlock{ public void draw(){ Draw.rect(name, x, y); - Draw.color(liquids.current().color); - Draw.alpha(liquids.total() / liquidCapacity); - Draw.rect(liquidRegion, x, y); - Draw.color(); + Drawf.liquid(liquidRegion, x, y, liquids.total() / liquidCapacity, liquids.current().color); } @Override diff --git a/core/src/mindustry/world/blocks/production/Separator.java b/core/src/mindustry/world/blocks/production/Separator.java index 394e0bae5b..97172a9dbc 100644 --- a/core/src/mindustry/world/blocks/production/Separator.java +++ b/core/src/mindustry/world/blocks/production/Separator.java @@ -8,6 +8,7 @@ import arc.util.io.*; import mindustry.annotations.Annotations.*; import mindustry.gen.*; import mindustry.type.*; +import mindustry.graphics.*; import mindustry.world.*; import mindustry.world.consumers.*; import mindustry.world.meta.*; @@ -78,11 +79,8 @@ public class Separator extends Block{ public void draw(){ super.draw(); - Draw.color(liquids.current().color); - Draw.alpha(liquids.total() / liquidCapacity); - Draw.rect(liquidRegion, x, y); + Drawf.liquid(liquidRegion, x, y, liquids.total() / liquidCapacity, liquids.current().color); - Draw.reset(); if(Core.atlas.isFound(spinnerRegion)){ Draw.rect(spinnerRegion, x, y, totalProgress * spinnerSpeed); } diff --git a/core/src/mindustry/world/blocks/production/SolidPump.java b/core/src/mindustry/world/blocks/production/SolidPump.java index ebd0f2d20e..e5cc0861e0 100644 --- a/core/src/mindustry/world/blocks/production/SolidPump.java +++ b/core/src/mindustry/world/blocks/production/SolidPump.java @@ -87,10 +87,7 @@ public class SolidPump extends Pump{ @Override public void draw(){ Draw.rect(region, x, y); - Draw.color(liquids.current().color); - Draw.alpha(liquids.total() / liquidCapacity); - Draw.rect(liquidRegion, x, y); - Draw.color(); + Drawf.liquid(liquidRegion, x, y, liquids.total() / liquidCapacity, liquids.current().color); Draw.rect(rotatorRegion, x, y, pumpTime * rotateSpeed); Draw.rect(topRegion, x, y); }