From 06ff3fb5aef879580a1febd2cd514548a229ed5b Mon Sep 17 00:00:00 2001 From: Stephen Seo Date: Thu, 24 Oct 2024 20:15:30 +0900 Subject: [PATCH] Show entities next to attack buttons in BattleGUI --- .../TurnBasedMinecraft/client/BattleGui.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/main/java/com/burnedkirby/TurnBasedMinecraft/client/BattleGui.java b/src/main/java/com/burnedkirby/TurnBasedMinecraft/client/BattleGui.java index 25365f2..a34ec6d 100644 --- a/src/main/java/com/burnedkirby/TurnBasedMinecraft/client/BattleGui.java +++ b/src/main/java/com/burnedkirby/TurnBasedMinecraft/client/BattleGui.java @@ -10,7 +10,9 @@ import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.AbstractButton; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.gui.screens.inventory.InventoryScreen; import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.LivingEntity; import net.minecraftforge.network.PacketDistributor; import java.util.ConcurrentModificationException; @@ -29,6 +31,7 @@ public class BattleGui extends Screen { private boolean stateChanged; private String info; private Long waitMissingBattleTicks; + private boolean showingEntities; private enum MenuState { MAIN_MENU(0), ATTACK_TARGET(1), ITEM_ACTION(2), WAITING(3), SWITCH_ITEM(4), USE_ITEM(5); @@ -93,6 +96,7 @@ public class BattleGui extends Screen { state = MenuState.MAIN_MENU; stateChanged = true; waitMissingBattleTicks = null; + showingEntities = false; } private void setState(MenuState state) { @@ -127,6 +131,7 @@ public class BattleGui extends Screen { } stateChanged = false; + showingEntities = false; clearWidgets(); switch (state) { case MAIN_MENU: @@ -147,6 +152,7 @@ public class BattleGui extends Screen { case ATTACK_TARGET: info = "Who will you attack?"; int y = 30; + showingEntities = true; try { for (Map.Entry e : TurnBasedMinecraftMod.proxy.getLocalBattle() .getSideAEntrySet()) { @@ -262,6 +268,26 @@ public class BattleGui extends Screen { } updateState(); + if (showingEntities) { + int y = 30; + try { + for (Map.Entry e : TurnBasedMinecraftMod.proxy.getLocalBattle().getSideAEntrySet()) { + if (e.getValue().entity instanceof LivingEntity lEntity) { + InventoryScreen.renderEntityInInventoryFollowsMouse(guiGraphics, width / 4 - 60 - 20, y, width / 4 - 60, y + 20, 7, 0.0F, mouseX, mouseY, lEntity); + } + y += 20; + } + } catch(ConcurrentModificationException e) {} + y = 30; + try { + for (Map.Entry e : TurnBasedMinecraftMod.proxy.getLocalBattle().getSideBEntrySet()) { + if (e.getValue().entity instanceof LivingEntity lEntity) { + InventoryScreen.renderEntityInInventoryFollowsMouse(guiGraphics, width * 3 / 4 - 60 + 120, y, width * 3 / 4 - 60 + 140, y + 20, 7, 0.0F, mouseX, mouseY, lEntity); + } + y += 20; + } + } catch(ConcurrentModificationException e) {} + } super.render(guiGraphics, mouseX, mouseY, partialTicks);