diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index c7082e4cb1..2e636cf4cd 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -636,6 +636,11 @@ public class LExecutor{ Object target = exec.obj(from); Object sense = exec.obj(type); + if(target == null && sense == LAccess.dead){ + exec.setnum(to, 1); + return; + } + //note that remote units/buildings can be sensed as well if(target instanceof Senseable se){ if(sense instanceof Content co){ diff --git a/core/src/mindustry/world/blocks/logic/LogicBlock.java b/core/src/mindustry/world/blocks/logic/LogicBlock.java index 7cd1d031c6..ac597fa1e7 100644 --- a/core/src/mindustry/world/blocks/logic/LogicBlock.java +++ b/core/src/mindustry/world/blocks/logic/LogicBlock.java @@ -197,7 +197,7 @@ public class LogicBlock extends Block{ public LExecutor executor = new LExecutor(); public float accumulator = 0; public Seq links = new Seq<>(); - public boolean checkedDuplicates = false, unboxed = false; + public boolean checkedDuplicates = false; public void readCompressed(byte[] data, boolean relative){ DataInputStream stream = new DataInputStream(new InflaterInputStream(new ByteArrayInputStream(data))); @@ -254,13 +254,10 @@ public class LogicBlock extends Block{ super.onProximityAdded(); //unbox buildings after reading - if(!unboxed){ - for(var v : executor.vars){ - if(v.objval instanceof BuildingBox b){ - v.objval = world.build(b.pos); - } + for(var v : executor.vars){ + if(v.objval instanceof BuildingBox b){ + v.objval = world.build(b.pos); } - unboxed = true; } }