From 2a67decb220a2dc42251186b4788df92b0c5d0d0 Mon Sep 17 00:00:00 2001 From: remmintan Date: Mon, 15 Apr 2024 23:51:10 +0200 Subject: [PATCH] When selecting only warriors, automatically switch to combat mode. when selecting only worker pawns, Automatically switch to build mode --- .../minefortress/fight/ClientPawnsSelectionManager.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/org/minefortress/fight/ClientPawnsSelectionManager.java b/src/main/java/org/minefortress/fight/ClientPawnsSelectionManager.java index 20c56dc2..5c331046 100644 --- a/src/main/java/org/minefortress/fight/ClientPawnsSelectionManager.java +++ b/src/main/java/org/minefortress/fight/ClientPawnsSelectionManager.java @@ -13,6 +13,7 @@ import net.remmintan.mods.minefortress.core.interfaces.combat.ITargetedSelectionManager; import net.remmintan.mods.minefortress.core.interfaces.entities.pawns.IFortressAwareEntity; import net.remmintan.mods.minefortress.core.interfaces.entities.pawns.ITargetedPawn; +import net.remmintan.mods.minefortress.core.interfaces.entities.pawns.IWarrior; import net.remmintan.mods.minefortress.core.utils.GlobalProjectionCache; import org.minefortress.renderer.CameraTools; import org.minefortress.utils.ModUtils; @@ -47,6 +48,12 @@ public void endSelection(double x, double y) { if(!this.selectedPawns.isEmpty()) { final var fortressManager = ModUtils.getFortressClientManager(); + if (this.selectedPawns.stream().allMatch(it -> it instanceof IWarrior)) { + fortressManager.setState(FortressState.COMBAT); + } else if (this.selectedPawns.stream().noneMatch(it -> it instanceof IWarrior)) { + fortressManager.setState(FortressState.BUILD_EDITING); + } + if (fortressManager.getState() != FortressState.COMBAT) { fortressManager.setState(FortressState.BUILD_EDITING); }