From 3ebc8868c7781353e4b4ffbcb8df8d7e36beb262 Mon Sep 17 00:00:00 2001 From: Eclipse-Sol Date: Mon, 30 Mar 2026 22:32:47 -0400 Subject: [PATCH] Fix item reset hopefully for the last time (#1621) --- .../angelica/rendering/DeferredEntityOverlay.java | 2 -- .../iris/uniforms/CapturedRenderingState.java | 9 ++++----- .../mixins/early/shaders/MixinRenderItem.java | 11 ----------- .../mixins/early/shaders/MixinRenderManager.java | 2 -- .../mixins/early/shaders/MixinRenderManagerDAPI.java | 2 -- .../early/shaders/MixinRendererLivingEntity.java | 7 +++---- 6 files changed, 7 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/gtnewhorizons/angelica/rendering/DeferredEntityOverlay.java b/src/main/java/com/gtnewhorizons/angelica/rendering/DeferredEntityOverlay.java index ce3bf16c5..197505b5e 100644 --- a/src/main/java/com/gtnewhorizons/angelica/rendering/DeferredEntityOverlay.java +++ b/src/main/java/com/gtnewhorizons/angelica/rendering/DeferredEntityOverlay.java @@ -5,7 +5,6 @@ import lombok.Getter; import net.coderbot.iris.layer.GbufferPrograms; import net.coderbot.iris.uniforms.CapturedRenderingState; import net.coderbot.iris.uniforms.EntityIdHelper; -import net.coderbot.iris.uniforms.ItemIdManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.entity.RendererLivingEntity; import net.minecraft.entity.EntityLivingBase; @@ -125,7 +124,6 @@ public class DeferredEntityOverlay { try { for (DeferredEntry entry : deferred) { CapturedRenderingState.INSTANCE.setCurrentEntity(EntityIdHelper.getEntityId(entry.entity)); - ItemIdManager.resetItemId(); renderOverlay(entry); } } finally { diff --git a/src/main/java/net/coderbot/iris/uniforms/CapturedRenderingState.java b/src/main/java/net/coderbot/iris/uniforms/CapturedRenderingState.java index 547ea4ef5..817b9269b 100644 --- a/src/main/java/net/coderbot/iris/uniforms/CapturedRenderingState.java +++ b/src/main/java/net/coderbot/iris/uniforms/CapturedRenderingState.java @@ -1,6 +1,7 @@ package net.coderbot.iris.uniforms; import lombok.Getter; +import lombok.Setter; import net.coderbot.iris.gl.state.ValueUpdateNotifier; import org.joml.Vector4f; @@ -8,7 +9,8 @@ import org.joml.Vector4f; public class CapturedRenderingState { public static final CapturedRenderingState INSTANCE = new CapturedRenderingState(); - @Getter + @Setter + @Getter private float tickDelta; @Getter private int currentRenderedBlockEntity; @@ -29,10 +31,6 @@ public class CapturedRenderingState { private CapturedRenderingState() { } - public void setTickDelta(float tickDelta) { - this.tickDelta = tickDelta; - } - public void setCurrentBlockEntity(int entity) { this.currentRenderedBlockEntity = entity; @@ -47,6 +45,7 @@ public class CapturedRenderingState { if (this.entityIdListener != null) { this.entityIdListener.run(); } + setCurrentRenderedItem(0); } public void setCurrentEntityColor(float r, float g, float b, float a) { diff --git a/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRenderItem.java b/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRenderItem.java index 23499d969..9d19a9981 100644 --- a/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRenderItem.java +++ b/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRenderItem.java @@ -30,17 +30,6 @@ public class MixinRenderItem { ItemIdManager.setItemId(itemStack); } - /** - * Reset the item ID after rendering dropped items. - */ - @Inject( - method = "doRender(Lnet/minecraft/entity/item/EntityItem;DDDFF)V", - at = @At("RETURN") - ) - private void iris$resetItemIdAfterRender(EntityItem entity, double x, double y, double z, float entityYaw, float partialTicks, CallbackInfo ci) { - ItemIdManager.resetItemId(); - } - /** * Activate GLINT shader before rendering enchantment glint on dropped items. */ diff --git a/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRenderManager.java b/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRenderManager.java index dbfc02dc9..b4f47adf8 100644 --- a/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRenderManager.java +++ b/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRenderManager.java @@ -4,7 +4,6 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import net.coderbot.iris.uniforms.CapturedRenderingState; import net.coderbot.iris.uniforms.EntityIdHelper; -import net.coderbot.iris.uniforms.ItemIdManager; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.Entity; @@ -26,7 +25,6 @@ public class MixinRenderManager { private void iris$wrapDoRender(Render render, Entity entity, double x, double y, double z, float entityYaw, float partialTicks, Operation original) { int entityId = EntityIdHelper.getEntityId(entity); CapturedRenderingState.INSTANCE.setCurrentEntity(entityId); - ItemIdManager.resetItemId(); original.call(render, entity, x, y, z, entityYaw, partialTicks); CapturedRenderingState.INSTANCE.setCurrentEntity(-1); } diff --git a/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRenderManagerDAPI.java b/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRenderManagerDAPI.java index 4e8ec8513..1fdc4768a 100644 --- a/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRenderManagerDAPI.java +++ b/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRenderManagerDAPI.java @@ -4,7 +4,6 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import net.coderbot.iris.uniforms.CapturedRenderingState; import net.coderbot.iris.uniforms.EntityIdHelper; -import net.coderbot.iris.uniforms.ItemIdManager; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.Entity; @@ -24,7 +23,6 @@ public class MixinRenderManagerDAPI { private void iris$wrapDoRenderDragonAPI(Render render, Entity entity, double x, double y, double z, float entityYaw, float partialTicks, Operation original) { int entityId = EntityIdHelper.getEntityId(entity); CapturedRenderingState.INSTANCE.setCurrentEntity(entityId); - ItemIdManager.resetItemId(); original.call(render, entity, x, y, z, entityYaw, partialTicks); CapturedRenderingState.INSTANCE.setCurrentEntity(-1); } diff --git a/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRendererLivingEntity.java b/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRendererLivingEntity.java index b93c340d5..bc3d64e65 100644 --- a/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRendererLivingEntity.java +++ b/src/mixin/java/com/gtnewhorizons/angelica/mixins/early/shaders/MixinRendererLivingEntity.java @@ -22,13 +22,13 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(RendererLivingEntity.class) public class MixinRendererLivingEntity { /** - * Reset currentRenderedItemId at the start of rendering each living entity. + * Reset ID before damage overlay renders, otherwise you get random shiny zombies */ @Inject( method = "doRender(Lnet/minecraft/entity/EntityLivingBase;DDDFF)V", - at = @At("HEAD") + at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/entity/RendererLivingEntity;renderEquippedItems(Lnet/minecraft/entity/EntityLivingBase;F)V", shift = At.Shift.AFTER) ) - private void iris$resetItemIdAtStart(EntityLivingBase entity, double x, double y, double z, float entityYaw, float partialTicks, CallbackInfo ci) { + private void iris$resetItemIdAfterEquipped(EntityLivingBase entity, double x, double y, double z, float entityYaw, float partialTicks, CallbackInfo ci) { ItemIdManager.resetItemId(); } @@ -79,7 +79,6 @@ public class MixinRendererLivingEntity { remap = false ) private void iris$glintStart(CallbackInfo ci) { - ItemIdManager.resetItemId(); GbufferPrograms.setupSpecialRenderCondition(SpecialCondition.GLINT); }