Merge remote-tracking branch 'origin/master'

This commit is contained in:
Anuken
2023-04-28 10:48:21 -04:00
4 changed files with 536 additions and 494 deletions

View File

@@ -3,6 +3,7 @@ package mindustry.world.blocks.production;
import arc.*;
import arc.graphics.*;
import arc.graphics.g2d.*;
import arc.math.*;
import arc.util.*;
import mindustry.game.*;
import mindustry.logic.*;
@@ -19,6 +20,7 @@ public class Pump extends LiquidBlock{
public float pumpAmount = 0.2f;
/** Interval in-between item consumptions, if applicable. */
public float consumeTime = 60f * 5f;
public float warmupSpeed = 0.019f;
public DrawBlock drawer = new DrawMulti(new DrawDefault(), new DrawPumpLiquid());
public Pump(String name){
@@ -105,6 +107,7 @@ public class Pump extends LiquidBlock{
}
public class PumpBuild extends LiquidBuild{
public float warmup, totalProgress;
public float consTimer;
public float amount = 0f;
public @Nullable Liquid liquidDrop = null;
@@ -161,14 +164,34 @@ public class Pump extends LiquidBlock{
//does nothing for most pumps, as those do not require items.
if((consTimer += delta()) >= consumeTime){
consume();
consTimer = 0f;
consTimer %= 1f;
}
warmup = Mathf.approachDelta(warmup, maxPump > 0.001f ? 1f : 0f, warmupSpeed);
}else{
warmup = Mathf.approachDelta(warmup, 0f, warmupSpeed);
}
totalProgress += warmup * Time.delta;
if(liquidDrop != null){
dumpLiquid(liquidDrop);
}
}
}
@Override
public float warmup(){
return warmup;
}
@Override
public float progress(){
return Mathf.clamp(consTimer / consumeTime);
}
@Override
public float totalProgress(){
return totalProgress;
}
}
}