diff --git a/core/src/mindustry/world/blocks/units/UnitAssembler.java b/core/src/mindustry/world/blocks/units/UnitAssembler.java index 52d1de976b..676fcd0b9f 100644 --- a/core/src/mindustry/world/blocks/units/UnitAssembler.java +++ b/core/src/mindustry/world/blocks/units/UnitAssembler.java @@ -228,6 +228,7 @@ public class UnitAssembler extends PayloadBlock{ public float progress, warmup, droneWarmup, powerWarmup, sameTypeWarmup; public float invalidWarmup = 0f; public int currentTier = 0; + public int lastTier = -2; public boolean wasOccupied = false; public float droneProgress, totalDroneProgress; @@ -275,10 +276,8 @@ public class UnitAssembler extends PayloadBlock{ break; } } - if(currentTier != max){ - progress=0; - currentTier = max; - } + + currentTier = max; } public UnitType unit(){ @@ -340,6 +339,15 @@ public class UnitAssembler extends PayloadBlock{ readUnits.clear(); } + if(lastTier != currentTier){ + if(lastTier >= 0f){ + progress = 0f; + } + + lastTier = + lastTier == -2 ? -1 : currentTier; + } + //read newly synced drones on client end if(units.size < dronesCreated && whenSyncedUnits.size > 0){ whenSyncedUnits.each(id -> {