diff --git a/core/src/mindustry/world/blocks/distribution/DirectionBridge.java b/core/src/mindustry/world/blocks/distribution/DirectionBridge.java index 581cd672f7..97e38584f7 100644 --- a/core/src/mindustry/world/blocks/distribution/DirectionBridge.java +++ b/core/src/mindustry/world/blocks/distribution/DirectionBridge.java @@ -166,7 +166,8 @@ public class DirectionBridge extends Block{ } public class DirectionBridgeBuild extends Building{ - public Building[] occupied = new Building[4]; + public DirectionBridgeBuild[] occupied = new DirectionBridgeBuild[4]; + public @Nullable DirectionBridgeBuild lastLink; @Override public void draw(){ diff --git a/core/src/mindustry/world/blocks/distribution/DirectionLiquidBridge.java b/core/src/mindustry/world/blocks/distribution/DirectionLiquidBridge.java index d5c53f4d6d..05d4f038e1 100644 --- a/core/src/mindustry/world/blocks/distribution/DirectionLiquidBridge.java +++ b/core/src/mindustry/world/blocks/distribution/DirectionLiquidBridge.java @@ -55,7 +55,7 @@ public class DirectionLiquidBridge extends DirectionBridge{ @Override public void updateTile(){ - var link = findLink(); + var link = lastLink = findLink(); if(link != null){ moveLiquid(link, liquids.current()); link.occupied[rotation % 4] = this; @@ -68,7 +68,7 @@ public class DirectionLiquidBridge extends DirectionBridge{ } for(int i = 0; i < 4; i++){ - if(occupied[i] == null || occupied[i].rotation != i || !occupied[i].isValid()){ + if(occupied[i] == null || occupied[i].rotation != i || !occupied[i].isValid() || occupied[i].lastLink != this){ occupied[i] = null; } } diff --git a/core/src/mindustry/world/blocks/distribution/DuctBridge.java b/core/src/mindustry/world/blocks/distribution/DuctBridge.java index 3e4c5a3b91..68bc9de946 100644 --- a/core/src/mindustry/world/blocks/distribution/DuctBridge.java +++ b/core/src/mindustry/world/blocks/distribution/DuctBridge.java @@ -20,7 +20,7 @@ public class DuctBridge extends DirectionBridge{ @Override public void updateTile(){ - var link = findLink(); + var link = lastLink = findLink(); if(link != null){ link.occupied[rotation % 4] = this; if(items.any() && link.items.total() < link.block.itemCapacity){ @@ -43,7 +43,7 @@ public class DuctBridge extends DirectionBridge{ } for(int i = 0; i < 4; i++){ - if(occupied[i] == null || occupied[i].rotation != i || !occupied[i].isValid()){ + if(occupied[i] == null || occupied[i].rotation != i || !occupied[i].isValid() || occupied[i].lastLink != this){ occupied[i] = null; } }