From d6e9e930908a998996682479fe9f71cc80635ccf Mon Sep 17 00:00:00 2001 From: IThundxr Date: Fri, 10 Jan 2025 18:24:53 -0500 Subject: [PATCH 1/4] Fix IClientItemExtensions#renderHelmetOverlay never being called --- patches/net/minecraft/client/gui/Gui.java.patch | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/patches/net/minecraft/client/gui/Gui.java.patch b/patches/net/minecraft/client/gui/Gui.java.patch index dc1055a5824..9f54c87df67 100644 --- a/patches/net/minecraft/client/gui/Gui.java.patch +++ b/patches/net/minecraft/client/gui/Gui.java.patch @@ -101,6 +101,15 @@ RenderSystem.disableDepthTest(); } +@@ -220,6 +_,8 @@ + ItemStack itemstack = this.minecraft.player.getInventory().getArmor(3); + if (itemstack.is(Blocks.CARVED_PUMPKIN.asItem())) { + this.renderTextureOverlay(p_316735_, PUMPKIN_BLUR_LOCATION, 1.0F); ++ } else { ++ net.neoforged.neoforge.client.extensions.common.IClientItemExtensions.of(itemstack).renderHelmetOverlay(itemstack, this.minecraft.player, p_316735_.guiWidth(), p_316735_.guiHeight(), p_348538_.getGameTimeDeltaPartialTick(true)); + } + } + } @@ -262,8 +_,12 @@ } From 050840fc97f3a456eb012afed1b87a053fb3594f Mon Sep 17 00:00:00 2001 From: IThundxr Date: Fri, 10 Jan 2025 19:27:17 -0500 Subject: [PATCH 2/4] add more context to the method, deprecate the old one --- .../net/minecraft/client/gui/Gui.java.patch | 2 +- .../common/IClientItemExtensions.java | 20 +++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/patches/net/minecraft/client/gui/Gui.java.patch b/patches/net/minecraft/client/gui/Gui.java.patch index 9f54c87df67..c417173c2fd 100644 --- a/patches/net/minecraft/client/gui/Gui.java.patch +++ b/patches/net/minecraft/client/gui/Gui.java.patch @@ -106,7 +106,7 @@ if (itemstack.is(Blocks.CARVED_PUMPKIN.asItem())) { this.renderTextureOverlay(p_316735_, PUMPKIN_BLUR_LOCATION, 1.0F); + } else { -+ net.neoforged.neoforge.client.extensions.common.IClientItemExtensions.of(itemstack).renderHelmetOverlay(itemstack, this.minecraft.player, p_316735_.guiWidth(), p_316735_.guiHeight(), p_348538_.getGameTimeDeltaPartialTick(true)); ++ net.neoforged.neoforge.client.extensions.common.IClientItemExtensions.of(itemstack).renderHelmetOverlay(itemstack, this.minecraft.player, p_316735_, p_348538_); } } } diff --git a/src/main/java/net/neoforged/neoforge/client/extensions/common/IClientItemExtensions.java b/src/main/java/net/neoforged/neoforge/client/extensions/common/IClientItemExtensions.java index 16ac6d38535..69d9713c801 100644 --- a/src/main/java/net/neoforged/neoforge/client/extensions/common/IClientItemExtensions.java +++ b/src/main/java/net/neoforged/neoforge/client/extensions/common/IClientItemExtensions.java @@ -7,8 +7,11 @@ import com.mojang.blaze3d.vertex.PoseStack; import java.util.function.Consumer; + +import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.model.Model; import net.minecraft.client.player.LocalPlayer; @@ -143,18 +146,23 @@ default Model getGenericArmorModel(LivingEntity livingEntity, ItemStack itemStac */ default void setupModelAnimations(LivingEntity livingEntity, ItemStack itemStack, EquipmentSlot equipmentSlot, Model model, float limbSwing, float limbSwingAmount, float partialTick, float ageInTicks, float netHeadYaw, float headPitch) {} + /** + * @deprecated Switch to {@link IClientItemExtensions#renderHelmetOverlay(ItemStack, Player, GuiGraphics, DeltaTracker)} + */ + @Deprecated(forRemoval = true) + default void renderHelmetOverlay(ItemStack stack, Player player, int width, int height, float partialTick) {} + /** * Called when the client starts rendering the HUD, and is wearing this item in the helmet slot. *

* This is where pumpkins would render their overlay. * - * @param stack The item stack - * @param player The player entity - * @param width The viewport width - * @param height Viewport height - * @param partialTick Partial tick time, useful for interpolation + * @param stack The item stack + * @param player The player entity + * @param guiGraphics The gui graphics + * @param deltaTracker The delta tracker */ - default void renderHelmetOverlay(ItemStack stack, Player player, int width, int height, float partialTick) {} + default void renderHelmetOverlay(ItemStack stack, Player player, GuiGraphics guiGraphics, DeltaTracker deltaTracker) {} /** * Queries this item's renderer. From e1ed887ffa551a649cdd05afa4a2f44dbf2fcfc7 Mon Sep 17 00:00:00 2001 From: IThundxr Date: Fri, 10 Jan 2025 19:35:08 -0500 Subject: [PATCH 3/4] call old method and format --- patches/net/minecraft/client/gui/Gui.java.patch | 7 +++++-- .../client/extensions/common/IClientItemExtensions.java | 1 - 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/patches/net/minecraft/client/gui/Gui.java.patch b/patches/net/minecraft/client/gui/Gui.java.patch index c417173c2fd..a879dd713c9 100644 --- a/patches/net/minecraft/client/gui/Gui.java.patch +++ b/patches/net/minecraft/client/gui/Gui.java.patch @@ -101,12 +101,15 @@ RenderSystem.disableDepthTest(); } -@@ -220,6 +_,8 @@ +@@ -220,6 +_,11 @@ ItemStack itemstack = this.minecraft.player.getInventory().getArmor(3); if (itemstack.is(Blocks.CARVED_PUMPKIN.asItem())) { this.renderTextureOverlay(p_316735_, PUMPKIN_BLUR_LOCATION, 1.0F); + } else { -+ net.neoforged.neoforge.client.extensions.common.IClientItemExtensions.of(itemstack).renderHelmetOverlay(itemstack, this.minecraft.player, p_316735_, p_348538_); ++ //noinspection removal ++ var extensions = net.neoforged.neoforge.client.extensions.common.IClientItemExtensions.of(itemstack); ++ extensions.renderHelmetOverlay(itemstack, this.minecraft.player, p_316735_.guiWidth(), p_316735_.guiHeight(), p_348538_.getGameTimeDeltaPartialTick(true)); ++ extensions.renderHelmetOverlay(itemstack, this.minecraft.player, p_316735_, p_348538_); } } } diff --git a/src/main/java/net/neoforged/neoforge/client/extensions/common/IClientItemExtensions.java b/src/main/java/net/neoforged/neoforge/client/extensions/common/IClientItemExtensions.java index 69d9713c801..912232f1cf8 100644 --- a/src/main/java/net/neoforged/neoforge/client/extensions/common/IClientItemExtensions.java +++ b/src/main/java/net/neoforged/neoforge/client/extensions/common/IClientItemExtensions.java @@ -7,7 +7,6 @@ import com.mojang.blaze3d.vertex.PoseStack; import java.util.function.Consumer; - import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; From 499791d2d41b8ad667935f9f5a9047c90e97b30d Mon Sep 17 00:00:00 2001 From: IThundxr Date: Sun, 19 Jan 2025 10:46:10 -0500 Subject: [PATCH 4/4] address review --- patches/net/minecraft/client/gui/Gui.java.patch | 7 ++----- .../client/extensions/common/IClientItemExtensions.java | 4 +++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/patches/net/minecraft/client/gui/Gui.java.patch b/patches/net/minecraft/client/gui/Gui.java.patch index a879dd713c9..c417173c2fd 100644 --- a/patches/net/minecraft/client/gui/Gui.java.patch +++ b/patches/net/minecraft/client/gui/Gui.java.patch @@ -101,15 +101,12 @@ RenderSystem.disableDepthTest(); } -@@ -220,6 +_,11 @@ +@@ -220,6 +_,8 @@ ItemStack itemstack = this.minecraft.player.getInventory().getArmor(3); if (itemstack.is(Blocks.CARVED_PUMPKIN.asItem())) { this.renderTextureOverlay(p_316735_, PUMPKIN_BLUR_LOCATION, 1.0F); + } else { -+ //noinspection removal -+ var extensions = net.neoforged.neoforge.client.extensions.common.IClientItemExtensions.of(itemstack); -+ extensions.renderHelmetOverlay(itemstack, this.minecraft.player, p_316735_.guiWidth(), p_316735_.guiHeight(), p_348538_.getGameTimeDeltaPartialTick(true)); -+ extensions.renderHelmetOverlay(itemstack, this.minecraft.player, p_316735_, p_348538_); ++ net.neoforged.neoforge.client.extensions.common.IClientItemExtensions.of(itemstack).renderHelmetOverlay(itemstack, this.minecraft.player, p_316735_, p_348538_); } } } diff --git a/src/main/java/net/neoforged/neoforge/client/extensions/common/IClientItemExtensions.java b/src/main/java/net/neoforged/neoforge/client/extensions/common/IClientItemExtensions.java index 912232f1cf8..ceb95637c3b 100644 --- a/src/main/java/net/neoforged/neoforge/client/extensions/common/IClientItemExtensions.java +++ b/src/main/java/net/neoforged/neoforge/client/extensions/common/IClientItemExtensions.java @@ -161,7 +161,9 @@ default void renderHelmetOverlay(ItemStack stack, Player player, int width, int * @param guiGraphics The gui graphics * @param deltaTracker The delta tracker */ - default void renderHelmetOverlay(ItemStack stack, Player player, GuiGraphics guiGraphics, DeltaTracker deltaTracker) {} + default void renderHelmetOverlay(ItemStack stack, Player player, GuiGraphics guiGraphics, DeltaTracker deltaTracker) { + renderHelmetOverlay(stack, player, guiGraphics.guiWidth(), guiGraphics.guiHeight(), deltaTracker.getGameTimeDeltaPartialTick(true)); + } /** * Queries this item's renderer.