diff --git a/core/src/mindustry/ai/types/CommandAI.java b/core/src/mindustry/ai/types/CommandAI.java index b7054442a6..120360534f 100644 --- a/core/src/mindustry/ai/types/CommandAI.java +++ b/core/src/mindustry/ai/types/CommandAI.java @@ -398,6 +398,8 @@ public class CommandAI extends AIController{ @Override public void commandPosition(Vec2 pos){ + if(pos == null) return; + commandPosition(pos, false); if(commandController != null){ commandController.commandPosition(pos); @@ -405,6 +407,8 @@ public class CommandAI extends AIController{ } public void commandPosition(Vec2 pos, boolean stopWhenInRange){ + if(pos == null) return; + //this is an allocation, but it's relatively rarely called anyway, and outside mutations must be prevented targetPos = lastTargetPos = pos.cpy(); attackTarget = null; diff --git a/core/src/mindustry/world/blocks/units/UnitAssembler.java b/core/src/mindustry/world/blocks/units/UnitAssembler.java index 44165f636f..bff1cdf800 100644 --- a/core/src/mindustry/world/blocks/units/UnitAssembler.java +++ b/core/src/mindustry/world/blocks/units/UnitAssembler.java @@ -444,7 +444,7 @@ public class UnitAssembler extends PayloadBlock{ if(!net.client()){ var unit = plan.unit.create(team); - if(unit != null && unit.isCommandable()){ + if(unit != null && unit.isCommandable() && commandPos != null){ unit.command().commandPosition(commandPos); } unit.set(spawn.x + Mathf.range(0.001f), spawn.y + Mathf.range(0.001f));