From 2844bead6e693df6b30d045ba2869677b606ef8b Mon Sep 17 00:00:00 2001 From: Martijn van den Brand Date: Thu, 18 Jul 2024 04:17:33 +0100 Subject: [PATCH] Fix matrix stack translations for `RenderHighlightEvent` (#10050) --- .../net/minecraft/client/renderer/LevelRenderer.java.patch | 4 ++-- src/main/java/net/minecraftforge/client/ForgeHooksClient.java | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/patches/minecraft/net/minecraft/client/renderer/LevelRenderer.java.patch b/patches/minecraft/net/minecraft/client/renderer/LevelRenderer.java.patch index 0f977dbe1c..f8f297461d 100644 --- a/patches/minecraft/net/minecraft/client/renderer/LevelRenderer.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/LevelRenderer.java.patch @@ -123,13 +123,13 @@ profilerfiller.popPush("outline"); BlockPos blockpos1 = ((BlockHitResult)hitresult).getBlockPos(); BlockState blockstate = this.level.getBlockState(blockpos1); -+ if (!net.minecraftforge.client.ForgeHooksClient.onDrawHighlight(this, p_109604_, hitresult, f, p_254120_, multibuffersource$buffersource)) ++ if (!net.minecraftforge.client.ForgeHooksClient.onDrawHighlight(this, p_109604_, hitresult, f, posestack, multibuffersource$buffersource)) if (!blockstate.isAir() && this.level.getWorldBorder().isWithinBounds(blockpos1)) { VertexConsumer vertexconsumer2 = multibuffersource$buffersource.getBuffer(RenderType.lines()); this.renderHitOutline(posestack, vertexconsumer2, p_109604_.getEntity(), d0, d1, d2, blockpos1, blockstate); } + } else if (hitresult != null && hitresult.getType() == HitResult.Type.ENTITY) { -+ net.minecraftforge.client.ForgeHooksClient.onDrawHighlight(this, p_109604_, hitresult, f, p_254120_, multibuffersource$buffersource); ++ net.minecraftforge.client.ForgeHooksClient.onDrawHighlight(this, p_109604_, hitresult, f, posestack, multibuffersource$buffersource); } this.minecraft.debugRenderer.render(posestack, multibuffersource$buffersource, d0, d1, d2); diff --git a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java index dc9428be38..115aeb9391 100644 --- a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java +++ b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java @@ -251,9 +251,7 @@ public class ForgeHooksClient { return result != null ? result : layer.texture(inner); } - public static boolean onDrawHighlight(LevelRenderer context, Camera camera, HitResult target, float partialTick, Matrix4f ctxPos, MultiBufferSource bufferSource) { - var poseStack = new PoseStack(); - poseStack.mulPose(ctxPos); + public static boolean onDrawHighlight(LevelRenderer context, Camera camera, HitResult target, float partialTick, PoseStack poseStack, MultiBufferSource bufferSource) { switch (target.getType()) { case BLOCK: if (!(target instanceof BlockHitResult blockTarget)) return false;