diff options
author | Anthony Hilyard <anthony.hilyard@gmail.com> | 2023-04-20 14:06:02 -0700 |
---|---|---|
committer | Anthony Hilyard <anthony.hilyard@gmail.com> | 2023-04-20 14:06:02 -0700 |
commit | b35061a82bed88966b6efdab39fc3c5b11cb0267 (patch) | |
tree | a5e9d6cd5e86a69aa1a03c58897909dda862176c /src/main/java/com/anthonyhilyard/iceberg/mixin | |
parent | de97dac7b449909e46db843aa4e65ccdcc9eb9ff (diff) | |
download | Iceberg-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.java | 12 |
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 |