From 159fa7fde201b377b706d965d42a6accc94087d8 Mon Sep 17 00:00:00 2001 From: IThundxr Date: Thu, 23 Jan 2025 15:27:19 -0500 Subject: [PATCH] Fix IClientItemExtensions#renderHelmetOverlay never being called (#1836) --- .../net/minecraft/client/gui/Gui.java.patch | 9 ++++++++ .../common/IClientItemExtensions.java | 21 +++++++++++++------ 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/patches/net/minecraft/client/gui/Gui.java.patch b/patches/net/minecraft/client/gui/Gui.java.patch index dc1055a582..c417173c2f 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_, p_348538_); + } + } + } @@ -262,8 +_,12 @@ } 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 16ac6d3853..ceb95637c3 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,10 @@ 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 +145,25 @@ 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) { + renderHelmetOverlay(stack, player, guiGraphics.guiWidth(), guiGraphics.guiHeight(), deltaTracker.getGameTimeDeltaPartialTick(true)); + } /** * Queries this item's renderer.