From afc1ff58c5ba68cb242f561d4416bb914cdc1144 Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Thu, 5 Sep 2024 09:27:22 +0800 Subject: [PATCH] Option for conveyors to not push units around (#10166) * Option to not push units around * Apply to playload conveyors as well --- core/src/mindustry/world/blocks/distribution/Conveyor.java | 3 ++- core/src/mindustry/world/blocks/payloads/PayloadConveyor.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/world/blocks/distribution/Conveyor.java b/core/src/mindustry/world/blocks/distribution/Conveyor.java index b41c2b733b..cf1ab20889 100644 --- a/core/src/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/mindustry/world/blocks/distribution/Conveyor.java @@ -30,6 +30,7 @@ public class Conveyor extends Block implements Autotiler{ public float speed = 0f; public float displayedSpeed = 0f; + public boolean pushUnits = true; public @Nullable Block junctionReplacement, bridgeReplacement; @@ -223,7 +224,7 @@ public class Conveyor extends Block implements Autotiler{ @Override public void unitOn(Unit unit){ - if(clogHeat > 0.5f || !enabled) return; + if(!pushUnits || clogHeat > 0.5f || !enabled) return; noSleep(); diff --git a/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java b/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java index e6c368d97e..ec5523dd1c 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadConveyor.java @@ -21,6 +21,7 @@ public class PayloadConveyor extends Block{ public @Load("@-edge") TextureRegion edgeRegion; public Interp interp = Interp.pow5; public float payloadLimit = 3f; + public boolean pushUnits = true; public PayloadConveyor(String name){ super(name); @@ -257,7 +258,7 @@ public class PayloadConveyor extends Block{ @Override public void unitOn(Unit unit){ - if(!enabled) return; + if(!pushUnits || !enabled) return; //calculate derivative of units moved last frame float delta = (curInterp - lastInterp) * size * tilesize;