From 21cd8e9e01f63b5594efafc94e8eaa4d5582c62a Mon Sep 17 00:00:00 2001 From: Kam Date: Mon, 23 Feb 2026 13:40:24 -0500 Subject: [PATCH] Fix Hover Labels on Scroll Components --- .../noppes/npcs/client/gui/SubGuiSpawningOptions.java | 4 ++-- .../java/noppes/npcs/client/gui/util/GuiNPCInterface.java | 6 ++++++ .../java/noppes/npcs/client/gui/util/GuiScrollWindow.java | 8 +------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/noppes/npcs/client/gui/SubGuiSpawningOptions.java b/src/main/java/noppes/npcs/client/gui/SubGuiSpawningOptions.java index 34b3e7a6e..ddce230c3 100644 --- a/src/main/java/noppes/npcs/client/gui/SubGuiSpawningOptions.java +++ b/src/main/java/noppes/npcs/client/gui/SubGuiSpawningOptions.java @@ -16,7 +16,7 @@ public class SubGuiSpawningOptions extends SubGuiInterface implements ITextfield public SubGuiSpawningOptions(SpawnData data) { this.data = data; setBackground("menubg.png"); - xSize = 236; + xSize = 256; ySize = 216; closeOnEsc = true; } @@ -98,7 +98,7 @@ public class SubGuiSpawningOptions extends SubGuiInterface implements ITextfield sw.getTextField(19).setHoverText("tooltip.naturalspawns.options.playerMinDistance"); y += 22; - sw.addButton(new GuiNpcButton(20, controlX, y, 74, 20, + sw.addButton(new GuiNpcButton(20, controlX, y, 100, 20, new String[]{"spawning.despawn.forceNatural", "spawning.despawn.preserve", "spawning.despawn.forcePersistent"}, data.despawnMode)); sw.addLabel(new GuiNpcLabel(20, "spawning.despawnMode", labelX, y + 5)); sw.getButton(20).setHoverText("tooltip.naturalspawns.options.despawnMode"); diff --git a/src/main/java/noppes/npcs/client/gui/util/GuiNPCInterface.java b/src/main/java/noppes/npcs/client/gui/util/GuiNPCInterface.java index f8cddbf72..ccdbe845c 100644 --- a/src/main/java/noppes/npcs/client/gui/util/GuiNPCInterface.java +++ b/src/main/java/noppes/npcs/client/gui/util/GuiNPCInterface.java @@ -417,6 +417,12 @@ public abstract class GuiNPCInterface extends GuiScreen { } } + for(GuiScrollWindow guiScrollableComponent : scrollWindows.values()) { + if (guiScrollableComponent.isMouseOver(mouseX, mouseY)) { + guiScrollableComponent.drawHoverTexts(mouseX, mouseY); + } + } + for (GuiScreen gui : extra.values()) gui.drawScreen(i, j, f); diff --git a/src/main/java/noppes/npcs/client/gui/util/GuiScrollWindow.java b/src/main/java/noppes/npcs/client/gui/util/GuiScrollWindow.java index 0df1c8547..8a20a635c 100644 --- a/src/main/java/noppes/npcs/client/gui/util/GuiScrollWindow.java +++ b/src/main/java/noppes/npcs/client/gui/util/GuiScrollWindow.java @@ -251,12 +251,6 @@ public class GuiScrollWindow extends GuiScreen implements ITextfieldListener, IC } GL11.glPopMatrix(); - - // Draw hover texts in screen space (after scissor/translation are undone) - // so tooltips are not clipped and are positioned correctly - if (isMouseOver(mouseX, mouseY)) { - drawHoverTexts(mouseX, mouseY); - } } public void drawScreen(int mouseX, int mouseY, float partialTicks, int mouseScroll) { @@ -293,7 +287,7 @@ public class GuiScrollWindow extends GuiScreen implements ITextfieldListener, IC * Draws hover texts for buttons in screen space (called after GL scissor/translate are undone). * Hover state was already computed during drawComponents with scroll-local coords. */ - private void drawHoverTexts(int mouseX, int mouseY) { + public void drawHoverTexts(int mouseX, int mouseY) { boolean subGui = parent.hasSubGui(); for (GuiNpcButton button : buttons.values()) { if (!button.hoverableText.isEmpty()) {