From 20e56ed3d31288a6c347156e39037b0d2955ae41 Mon Sep 17 00:00:00 2001 From: Voz-Duh Date: Wed, 30 Sep 2020 15:58:11 +0300 Subject: [PATCH 1/3] Packed Liquid Drawer --- core/src/mindustry/graphics/Drawf.java | 14 ++++++++++++++ .../world/blocks/defense/turrets/LiquidTurret.java | 5 +---- .../src/mindustry/world/blocks/liquid/Conduit.java | 5 +---- .../mindustry/world/blocks/liquid/LiquidBlock.java | 5 +---- .../world/blocks/power/BurnerGenerator.java | 5 +---- .../world/blocks/power/ItemLiquidGenerator.java | 5 +---- .../world/blocks/production/Cultivator.java | 4 +--- .../mindustry/world/blocks/production/Fracker.java | 5 +---- .../mindustry/world/blocks/production/Pump.java | 5 +---- .../world/blocks/production/Separator.java | 4 +--- .../world/blocks/production/SolidPump.java | 5 +---- 11 files changed, 24 insertions(+), 38 deletions(-) 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..434fcb0628 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java @@ -59,10 +59,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..b792a50cc4 100644 --- a/core/src/mindustry/world/blocks/liquid/LiquidBlock.java +++ b/core/src/mindustry/world/blocks/liquid/LiquidBlock.java @@ -32,10 +32,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..489ccd52cc 100644 --- a/core/src/mindustry/world/blocks/power/BurnerGenerator.java +++ b/core/src/mindustry/world/blocks/power/BurnerGenerator.java @@ -41,10 +41,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..e9f375950f 100644 --- a/core/src/mindustry/world/blocks/production/Fracker.java +++ b/core/src/mindustry/world/blocks/production/Fracker.java @@ -44,10 +44,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..52d649c74c 100644 --- a/core/src/mindustry/world/blocks/production/Pump.java +++ b/core/src/mindustry/world/blocks/production/Pump.java @@ -85,10 +85,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..4ef7793344 100644 --- a/core/src/mindustry/world/blocks/production/Separator.java +++ b/core/src/mindustry/world/blocks/production/Separator.java @@ -78,9 +78,7 @@ 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)){ 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); } From adf0f60abba5d9a0604b359f99fe6faf50ab87bf Mon Sep 17 00:00:00 2001 From: Voz-Duh Date: Wed, 30 Sep 2020 16:08:32 +0300 Subject: [PATCH 2/3] Fix --- core/src/mindustry/world/blocks/production/Separator.java | 1 - 1 file changed, 1 deletion(-) diff --git a/core/src/mindustry/world/blocks/production/Separator.java b/core/src/mindustry/world/blocks/production/Separator.java index 4ef7793344..c5c17c0303 100644 --- a/core/src/mindustry/world/blocks/production/Separator.java +++ b/core/src/mindustry/world/blocks/production/Separator.java @@ -80,7 +80,6 @@ public class Separator extends Block{ 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); } From 91274ae104e45684bb7303f38727b80d529887df Mon Sep 17 00:00:00 2001 From: Voz-Duh Date: Wed, 30 Sep 2020 16:19:32 +0300 Subject: [PATCH 3/3] Fix --- .../src/mindustry/world/blocks/defense/turrets/LiquidTurret.java | 1 + core/src/mindustry/world/blocks/liquid/LiquidBlock.java | 1 + core/src/mindustry/world/blocks/power/BurnerGenerator.java | 1 + core/src/mindustry/world/blocks/production/Fracker.java | 1 + core/src/mindustry/world/blocks/production/Pump.java | 1 + core/src/mindustry/world/blocks/production/Separator.java | 1 + 6 files changed, 6 insertions(+) diff --git a/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java b/core/src/mindustry/world/blocks/defense/turrets/LiquidTurret.java index 434fcb0628..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.*; diff --git a/core/src/mindustry/world/blocks/liquid/LiquidBlock.java b/core/src/mindustry/world/blocks/liquid/LiquidBlock.java index b792a50cc4..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.*; diff --git a/core/src/mindustry/world/blocks/power/BurnerGenerator.java b/core/src/mindustry/world/blocks/power/BurnerGenerator.java index 489ccd52cc..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.*; diff --git a/core/src/mindustry/world/blocks/production/Fracker.java b/core/src/mindustry/world/blocks/production/Fracker.java index e9f375950f..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.*; diff --git a/core/src/mindustry/world/blocks/production/Pump.java b/core/src/mindustry/world/blocks/production/Pump.java index 52d649c74c..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.*; diff --git a/core/src/mindustry/world/blocks/production/Separator.java b/core/src/mindustry/world/blocks/production/Separator.java index c5c17c0303..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.*;