From 753262d436bf5817df780efcb27bbe38b920d7c7 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 10 Apr 2025 20:47:02 -0400 Subject: [PATCH] Fixed #10615 --- core/src/mindustry/input/InputHandler.java | 38 +++++++++++++--------- core/src/mindustry/input/MobileInput.java | 3 +- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index fc5fde33a7..06b0741342 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -1408,8 +1408,10 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ return r2.overlaps(r1); }; - for(var plan : player.unit().plans()){ - if(test.get(plan)) return plan; + if(!player.dead()){ + for(var plan : player.unit().plans()){ + if(test.get(plan)) return plan; + } } return selectPlans.find(test); @@ -1437,9 +1439,11 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ Draw.color(Pal.remove); Lines.stroke(1f); - for(var plan : player.unit().plans()){ - if(!plan.breaking && plan.bounds(Tmp.r2).overlaps(Tmp.r1)){ - drawBreaking(plan); + if(!player.dead()){ + for(var plan : player.unit().plans()){ + if(!plan.breaking && plan.bounds(Tmp.r2).overlaps(Tmp.r1)){ + drawBreaking(plan); + } } } @@ -1615,23 +1619,25 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ //remove build plans Tmp.r1.set(result.x * tilesize, result.y * tilesize, (result.x2 - result.x) * tilesize, (result.y2 - result.y) * tilesize); - Iterator it = player.unit().plans().iterator(); - while(it.hasNext()){ - var plan = it.next(); - if(!plan.breaking && plan.bounds(Tmp.r2).overlaps(Tmp.r1)){ - it.remove(); - } - } - - //don't remove plans on desktop, where flushing is false - if(flush){ - it = selectPlans.iterator(); + if(!player.dead()){ + Iterator it = player.unit().plans().iterator(); while(it.hasNext()){ var plan = it.next(); if(!plan.breaking && plan.bounds(Tmp.r2).overlaps(Tmp.r1)){ it.remove(); } } + + //don't remove plans on desktop, where flushing is false + if(flush){ + it = selectPlans.iterator(); + while(it.hasNext()){ + var plan = it.next(); + if(!plan.breaking && plan.bounds(Tmp.r2).overlaps(Tmp.r1)){ + it.remove(); + } + } + } } removed.clear(); diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java index ae4be3bb80..b82d3899bb 100644 --- a/core/src/mindustry/input/MobileInput.java +++ b/core/src/mindustry/input/MobileInput.java @@ -227,7 +227,7 @@ public class MobileInput extends InputHandler implements GestureListener{ table.button(Icon.ok, Styles.clearNoneTogglei, () -> { if(schematicMode){ rebuildMode = !rebuildMode; - }else{ + }else if(!player.dead()){ for(BuildPlan plan : selectPlans){ Tile tile = plan.tile(); @@ -261,6 +261,7 @@ public class MobileInput extends InputHandler implements GestureListener{ }).visible(() -> !selectPlans.isEmpty() || schematicMode || rebuildMode).update(i -> { i.getStyle().imageUp = schematicMode || rebuildMode ? Icon.wrench : Icon.ok; i.setChecked(rebuildMode); + i.setDisabled(() -> player.dead()); }).name("confirmplace"); }