From 61a83d0f6e39258e06a1cd100912b230f78ef113 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Fri, 28 Apr 2023 07:42:31 -0700 Subject: [PATCH] warmup and totalProgress for Pumps (#8536) --- .../world/blocks/production/Pump.java | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/world/blocks/production/Pump.java b/core/src/mindustry/world/blocks/production/Pump.java index 08c483ed94..09c3fb2a5c 100644 --- a/core/src/mindustry/world/blocks/production/Pump.java +++ b/core/src/mindustry/world/blocks/production/Pump.java @@ -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; + } + } }