aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/anthonyhilyard/iceberg/mixin
diff options
context:
space:
mode:
authorAnthony Hilyard <anthony.hilyard@gmail.com>2023-04-20 14:06:02 -0700
committerAnthony Hilyard <anthony.hilyard@gmail.com>2023-04-20 14:06:02 -0700
commitb35061a82bed88966b6efdab39fc3c5b11cb0267 (patch)
treea5e9d6cd5e86a69aa1a03c58897909dda862176c /src/main/java/com/anthonyhilyard/iceberg/mixin
parentde97dac7b449909e46db843aa4e65ccdcc9eb9ff (diff)
downloadIceberg-b35061a82bed88966b6efdab39fc3c5b11cb0267.tar.gz
Iceberg-b35061a82bed88966b6efdab39fc3c5b11cb0267.tar.bz2
Iceberg-b35061a82bed88966b6efdab39fc3c5b11cb0267.zip
Ported changes through 1.1.8.
Fixed crash when previewing fishing rods.
Diffstat (limited to 'src/main/java/com/anthonyhilyard/iceberg/mixin')
-rw-r--r--src/main/java/com/anthonyhilyard/iceberg/mixin/ScreenMixin.java12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/main/java/com/anthonyhilyard/iceberg/mixin/ScreenMixin.java b/src/main/java/com/anthonyhilyard/iceberg/mixin/ScreenMixin.java
index bc3674f..1b1d67d 100644
--- a/src/main/java/com/anthonyhilyard/iceberg/mixin/ScreenMixin.java
+++ b/src/main/java/com/anthonyhilyard/iceberg/mixin/ScreenMixin.java
@@ -11,6 +11,7 @@ import com.anthonyhilyard.iceberg.util.Tooltips;
import com.google.common.collect.Lists;
import com.mojang.blaze3d.vertex.PoseStack;
+import org.joml.Vector2ic;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
@@ -165,8 +166,8 @@ public class ScreenMixin extends AbstractContainerEventHandler
}
@SuppressWarnings("deprecation")
- @Inject(method = "renderTooltipInternal", at = @At(value = "TAIL"), locals = LocalCapture.CAPTURE_FAILEXCEPTION)
- private void renderTooltipInternal(PoseStack poseStack, List<ClientTooltipComponent> components, int x, int y, ClientTooltipPositioner positioner, CallbackInfo info, int tooltipWidth, int tooltipHeight, int postX, int postY)
+ @Inject(method = "renderTooltipInternal", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/vertex/PoseStack;popPose()V", shift = Shift.BEFORE), locals = LocalCapture.CAPTURE_FAILEXCEPTION, cancellable = true)
+ private void renderTooltipInternal(PoseStack poseStack, List<ClientTooltipComponent> components, int x, int y, ClientTooltipPositioner positioner, CallbackInfo info, int tooltipWidth, int tooltipHeight, int tooltipWidth2, int tooltipHeight2, Vector2ic postPos)
{
Screen self = (Screen)(Object)this;
ItemStack containerStack = ItemStack.EMPTY;
@@ -184,13 +185,16 @@ public class ScreenMixin extends AbstractContainerEventHandler
containerStack = tooltipStack;
}
+ poseStack.popPose();
+
if (!containerStack.isEmpty() && !components.isEmpty())
{
- RenderTooltipEvents.POSTEXT.invoker().onPost(containerStack, components, poseStack, postX, postY, font, tooltipWidth, tooltipHeight, false, 0);
- RenderTooltipEvents.POST.invoker().onPost(containerStack, components, poseStack, postX, postY, font, tooltipWidth, tooltipHeight, false);
+ RenderTooltipEvents.POSTEXT.invoker().onPost(containerStack, components, poseStack, postPos.x(), postPos.y(), font, tooltipWidth, tooltipHeight, false, 0);
+ RenderTooltipEvents.POST.invoker().onPost(containerStack, components, poseStack, postPos.x(), postPos.y(), font, tooltipWidth, tooltipHeight, false);
}
tooltipStack = ItemStack.EMPTY;
+ info.cancel();
}
@Override