diff --git a/src/main/java/com/simibubi/create/content/logistics/factoryBoard/FactoryPanelBehaviour.java b/src/main/java/com/simibubi/create/content/logistics/factoryBoard/FactoryPanelBehaviour.java index b4be349956..5c3ff45f18 100644 --- a/src/main/java/com/simibubi/create/content/logistics/factoryBoard/FactoryPanelBehaviour.java +++ b/src/main/java/com/simibubi/create/content/logistics/factoryBoard/FactoryPanelBehaviour.java @@ -11,6 +11,8 @@ import java.util.Set; import java.util.UUID; +import com.simibubi.create.content.redstone.displayLink.DisplayLinkBlockEntity; + import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.joml.Math; @@ -215,11 +217,15 @@ public void moveTo(FactoryPanelPosition newPos, ServerPlayer player) { return; // Disconnect links + Map displayLinks = new HashMap<>(); for (BlockPos pos : targetedByLinks.keySet()) { FactoryPanelSupportBehaviour at = linkAt(level, new FactoryPanelPosition(pos, slot)); - if (at != null) + if (at != null) { at.disconnect(this); + if(at.blockEntity instanceof DisplayLinkBlockEntity) displayLinks.put(pos, targetedByLinks.get(pos)); + } } + displayLinks.keySet().forEach(key -> targetedByLinks.remove(key)); SmartBlockEntity oldBE = blockEntity; FactoryPanelPosition oldPos = getPanelPosition(); @@ -264,6 +270,7 @@ public void moveTo(FactoryPanelPosition newPos, ServerPlayer player) { } // Reconnect links + targetedByLinks.putAll(displayLinks); for (BlockPos pos : targetedByLinks.keySet()) { FactoryPanelSupportBehaviour at = linkAt(level, new FactoryPanelPosition(pos, slot)); if (at != null)