From 427100c61d370b9c1019e5ea54025bd56a66e28a Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 31 Jul 2022 11:43:23 -0400 Subject: [PATCH] Fixed commanded unit UI refresh --- core/src/mindustry/game/EventType.java | 1 + core/src/mindustry/input/InputHandler.java | 3 +++ core/src/mindustry/ui/fragments/PlacementFragment.java | 9 ++++++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/game/EventType.java b/core/src/mindustry/game/EventType.java index 4ff085d3f4..6efcc19e04 100644 --- a/core/src/mindustry/game/EventType.java +++ b/core/src/mindustry/game/EventType.java @@ -32,6 +32,7 @@ public class EventType{ teamCoreDamage, socketConfigChanged, update, + unitCommandChange, draw, drawOver, preDraw, diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index 51286ea638..7cc6693cf6 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -757,6 +757,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ selectedUnits.clear(); } selectedUnits.addAll(units); + Events.fire(Trigger.unitCommandChange); commandBuild = null; } commandRect = false; @@ -770,6 +771,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ selectedUnits.clear(); camera.bounds(Tmp.r1); selectedUnits.addAll(selectedCommandUnits(Tmp.r1.x, Tmp.r1.y, Tmp.r1.width, Tmp.r1.height, u -> u.type == unit.type)); + Events.fire(Trigger.unitCommandChange); } } } @@ -796,6 +798,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ commandBuild = null; } } + Events.fire(Trigger.unitCommandChange); } } diff --git a/core/src/mindustry/ui/fragments/PlacementFragment.java b/core/src/mindustry/ui/fragments/PlacementFragment.java index b81ff4923c..edceb4b96d 100644 --- a/core/src/mindustry/ui/fragments/PlacementFragment.java +++ b/core/src/mindustry/ui/fragments/PlacementFragment.java @@ -48,6 +48,7 @@ public class PlacementFragment{ Table blockTable, toggler, topTable, blockCatTable, commandTable; Stack mainStack; ScrollPane blockPane; + Runnable rebuildCommand; boolean blockSelectEnd, wasCommandMode; int blockSelectSeq; long blockSelectSeqMillis; @@ -77,6 +78,12 @@ public class PlacementFragment{ }); }); + Events.run(Trigger.unitCommandChange, () -> { + if(rebuildCommand != null){ + rebuildCommand.run(); + } + }); + Events.on(UnlockEvent.class, event -> { if(event.content instanceof Block){ rebuild(); @@ -425,7 +432,7 @@ public class PlacementFragment{ UnitCommand[] currentCommand = {null}; var commands = new Seq(); - Runnable rebuildCommand = () -> { + rebuildCommand = () -> { u.clearChildren(); var units = control.input.selectedUnits; if(units.size > 0){