From 15769b9ee97c413a9444cf8754cfac3e5745ee1e Mon Sep 17 00:00:00 2001 From: ghostflyby Date: Thu, 25 Jan 2024 04:44:37 +0800 Subject: [PATCH] fix no tooltip in some Gui (#42) --- .../binnie/core/craftgui/minecraft/GuiCraftGUI.java | 12 ++++++++---- .../craftgui/minecraft/control/ControlSlotBase.java | 2 ++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/main/java/binnie/core/craftgui/minecraft/GuiCraftGUI.java b/src/main/java/binnie/core/craftgui/minecraft/GuiCraftGUI.java index e28c2c15..aaac7be8 100644 --- a/src/main/java/binnie/core/craftgui/minecraft/GuiCraftGUI.java +++ b/src/main/java/binnie/core/craftgui/minecraft/GuiCraftGUI.java @@ -11,7 +11,6 @@ import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.nbt.JsonToNBT; import net.minecraft.nbt.NBTException; @@ -31,7 +30,7 @@ import binnie.core.craftgui.events.EventMouse; import binnie.core.craftgui.geometry.IArea; import binnie.core.craftgui.geometry.IBorder; import binnie.core.craftgui.geometry.IPoint; -import binnie.core.craftgui.minecraft.control.ControlSlot; +import binnie.core.craftgui.minecraft.control.ControlSlotBase; import binnie.core.nei.NEIHook; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -117,6 +116,7 @@ public class GuiCraftGUI extends GuiContainer { } else { tooltip.setType(Tooltip.Type.STANDARD); window.getTooltip(tooltip); + NEIHook.renderToolTips(mouseX, mouseY); } if (tooltip.exists()) { @@ -525,7 +525,11 @@ public class GuiCraftGUI extends GuiContainer { } public ItemStack getStackUnderMouse(int x, int y) { - return window.calculateMousedOverWidgets().stream().filter(widget -> widget instanceof ControlSlot).findFirst() - .map(w -> ((ControlSlot) w).slot).map(Slot::getStack).orElse(null); + for (IWidget widget : window.calculateMousedOverWidgets()) { + if (widget instanceof ControlSlotBase && widget.isVisible()) { + return ((ControlSlotBase) widget).getItemStack(); + } + } + return null; } } diff --git a/src/main/java/binnie/core/craftgui/minecraft/control/ControlSlotBase.java b/src/main/java/binnie/core/craftgui/minecraft/control/ControlSlotBase.java index a429ee88..f9e09628 100644 --- a/src/main/java/binnie/core/craftgui/minecraft/control/ControlSlotBase.java +++ b/src/main/java/binnie/core/craftgui/minecraft/control/ControlSlotBase.java @@ -13,6 +13,7 @@ import binnie.core.craftgui.geometry.IArea; import binnie.core.craftgui.geometry.IPoint; import binnie.core.craftgui.minecraft.Window; import binnie.core.craftgui.resource.minecraft.CraftGUITexture; +import binnie.core.nei.NEIHook; public abstract class ControlSlotBase extends Control implements ITooltip { @@ -60,6 +61,7 @@ public abstract class ControlSlotBase extends Control implements ITooltip { @Override public void getTooltip(Tooltip tooltip) { + if (NEIHook.enabled) return; ItemStack item = getItemStack(); if (item == null) { return;