diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index b80ecd7f0c..ed21ab6239 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -980,7 +980,7 @@ public class LExecutor{ if(p1.obj() instanceof UnlockableContent u){ packed = (u.id << 5) | (u.getContentType().ordinal() & 31); }else if(p1.obj() instanceof LogicDisplayBuild d){ - packed = (d.index << 5) | LogicDisplay.displayDrawType; + packed = (d.rootDisplay.index << 5) | LogicDisplay.displayDrawType; } num1 = packed & 0x3FF; num4 = packed >> 10; diff --git a/core/src/mindustry/world/blocks/logic/LogicDisplay.java b/core/src/mindustry/world/blocks/logic/LogicDisplay.java index 20e70d071e..2f4c404f13 100644 --- a/core/src/mindustry/world/blocks/logic/LogicDisplay.java +++ b/core/src/mindustry/world/blocks/logic/LogicDisplay.java @@ -268,8 +268,10 @@ public class LogicDisplay extends Block{ super.remove(); if(index != -1){ - displays.get(displays.size - 1).index = index; - displays.remove(index); + LogicDisplayBuild last = displays.get(displays.size - 1); + last.index = index; + displays.set(index, last); + displays.remove(displays.size - 1); index = -1; }