Merge pull request #2769 from Voz-Duh/packed-liquid-drawer

Packed Liquid Drawer
This commit is contained in:
Anuken 2020-09-30 10:46:45 -04:00 committed by GitHub
commit ba53d76d8d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 30 additions and 39 deletions

View File

@ -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);

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);

View File

@ -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);
}
}
}

View File

@ -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);
}
}

View File

@ -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);

View File

@ -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);

View File

@ -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

View File

@ -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);
}

View File

@ -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);
}