diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index d3a2fc8140..b5bacbe51e 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -98,7 +98,8 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ public BuildPlan bplan = new BuildPlan(); public Seq linePlans = new Seq<>(); public Seq selectPlans = new Seq<>(BuildPlan.class); - public @Nullable Queue lastPlans; + public Queue lastPlans = new Queue<>(); + public @Nullable Unit lastUnit; //for RTS controls public Seq selectedUnits = new Seq<>(); @@ -812,14 +813,19 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ } if(player.isBuilder()){ - if(lastPlans != null && player.unit().plans != lastPlans && player.unit().plans.size == 0){ + if(player.unit() != lastUnit && player.unit().plans.size <= 1){ for(var plan : lastPlans){ player.unit().plans.addLast(plan); } } - lastPlans = player.unit().plans; + lastPlans.clear(); + for(var plan : player.unit().plans){ + lastPlans.addLast(plan); + } } + lastUnit = player.unit(); + playerPlanTree.clear(); if(!player.dead()){ player.unit().plans.each(playerPlanTree::insert);