diff --git a/patches/minecraft/net/minecraft/client/gui/GuiGraphics.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiGraphics.java.patch index c533610119..3a68444ef1 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiGraphics.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiGraphics.java.patch @@ -70,7 +70,7 @@ this.renderTooltipInternal(p_283128_, list, p_283678_, p_281696_, DefaultTooltipPositioner.INSTANCE); } -@@ -922,7 +_,15 @@ +@@ -922,7 +_,22 @@ } public void renderComponentTooltip(Font p_282739_, List p_281832_, int p_282191_, int p_282446_) { @@ -83,6 +83,13 @@ + this.tooltipStack = stack; + List components = net.minecraftforge.client.ForgeHooksClient.gatherTooltipComponents(stack, tooltips, mouseX, guiWidth(), guiHeight(), font); + this.renderTooltipInternal(font, components, mouseX, mouseY, DefaultTooltipPositioner.INSTANCE); ++ this.tooltipStack = ItemStack.EMPTY; ++ } ++ ++ public void renderComponentTooltipFromElements(Font font, List> elements, int mouseX, int mouseY, ItemStack stack) { ++ this.tooltipStack = stack; ++ List components = net.minecraftforge.client.ForgeHooksClient.gatherTooltipComponentsFromElements(stack, elements, mouseX, guiWidth(), guiHeight(), font); ++ this.renderTooltipInternal(font, components, mouseX, mouseY, DefaultTooltipPositioner.INSTANCE); + this.tooltipStack = ItemStack.EMPTY; } diff --git a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java index 115aeb9391..4fcd4c776b 100644 --- a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java +++ b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java @@ -814,11 +814,15 @@ public class ForgeHooksClient { } public static List gatherTooltipComponents(ItemStack stack, List textElements, Optional itemComponent, int mouseX, int screenWidth, int screenHeight, Font fallbackFont) { - Font font = getTooltipFont(stack, fallbackFont); List> elements = textElements.stream() .map((Function>) Either::left) .collect(Collectors.toCollection(ArrayList::new)); itemComponent.ifPresent(c -> elements.add(1, Either.right(c))); + return gatherTooltipComponentsFromElements(stack, elements, mouseX, screenWidth, screenHeight, fallbackFont); + } + + public static List gatherTooltipComponentsFromElements(ItemStack stack, List> elements, int mouseX, int screenWidth, int screenHeight, Font fallbackFont) { + Font font = getTooltipFont(stack, fallbackFont); var event = new RenderTooltipEvent.GatherComponents(stack, screenWidth, screenHeight, elements, -1); MinecraftForge.EVENT_BUS.post(event);