From 1c446545d446e78ac25becf001195f1b8c124abc Mon Sep 17 00:00:00 2001 From: YannickMG Date: Fri, 13 Dec 2024 19:09:00 -0500 Subject: [PATCH] Use NEI recipe position when rendering the "Open Manual" button --- .../li/cil/oc/integration/nei/ManualUsageHandler.scala | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/scala/li/cil/oc/integration/nei/ManualUsageHandler.scala b/src/main/scala/li/cil/oc/integration/nei/ManualUsageHandler.scala index ea847f4ff1..fff9d14906 100644 --- a/src/main/scala/li/cil/oc/integration/nei/ManualUsageHandler.scala +++ b/src/main/scala/li/cil/oc/integration/nei/ManualUsageHandler.scala @@ -40,9 +40,10 @@ class ManualUsageHandler(path: Option[String]) extends IUsageHandler { override def numRecipes = if (path.isDefined) 1 else 0 override def drawForeground(recipe: Int): Unit = if (path.isDefined) Minecraft.getMinecraft.currentScreen match { - case container: GuiContainer => + case container: GuiRecipe[_] => val pos = GuiDraw.getMousePosition - button.drawButton(Minecraft.getMinecraft, pos.x - container.guiLeft - 5, pos.y - container.guiTop - 16) + val offset = container.getRecipePosition(recipe) + button.drawButton(Minecraft.getMinecraft, pos.x - container.guiLeft - offset.x, pos.y - container.guiTop - offset.y) case _ => } @@ -69,10 +70,11 @@ class ManualUsageHandler(path: Option[String]) extends IUsageHandler { override def keyTyped(gui: GuiRecipe[_], char: Char, code: Int, recipe: Int): Boolean = false override def mouseClicked(container: GuiRecipe[_], btn: Int, recipe: Int): Boolean = path.isDefined && (container match { - case container: GuiContainer => + case container: GuiRecipe[_] => val pos = GuiDraw.getMousePosition + val offset = container.getRecipePosition(recipe) val mc = Minecraft.getMinecraft - if (button.mousePressed(mc, pos.x - container.guiLeft - 5, pos.y - container.guiTop - 16)) { + if (button.mousePressed(mc, pos.x - container.guiLeft - offset.x, pos.y - container.guiTop - offset.y)) { mc.thePlayer.closeScreen() api.Manual.openFor(mc.thePlayer) path.foreach(api.Manual.navigate)