diff --git a/patches/minecraft/net/minecraft/client/renderer/entity/EntityRenderer.java.patch b/patches/minecraft/net/minecraft/client/renderer/entity/EntityRenderer.java.patch index fe0121446c..a8576ef5da 100644 --- a/patches/minecraft/net/minecraft/client/renderer/entity/EntityRenderer.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/entity/EntityRenderer.java.patch @@ -6,7 +6,7 @@ public void func_225623_a_(T p_225623_1_, float p_225623_2_, float p_225623_3_, MatrixStack p_225623_4_, IRenderTypeBuffer p_225623_5_, int p_225623_6_) { - if (this.func_177070_b(p_225623_1_)) { - this.func_225629_a_(p_225623_1_, p_225623_1_.func_145748_c_().func_150254_d(), p_225623_4_, p_225623_5_, p_225623_6_); -+ net.minecraftforge.client.event.RenderNameplateEvent renderNameplateEvent = new net.minecraftforge.client.event.RenderNameplateEvent(p_225623_1_,p_225623_1_.func_145748_c_().func_150254_d(), p_225623_4_, p_225623_5_); ++ net.minecraftforge.client.event.RenderNameplateEvent renderNameplateEvent = new net.minecraftforge.client.event.RenderNameplateEvent(p_225623_1_, p_225623_1_.func_145748_c_().func_150254_d(), this, p_225623_4_, p_225623_5_, p_225623_6_); + net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(renderNameplateEvent); + if (renderNameplateEvent.getResult() != net.minecraftforge.eventbus.api.Event.Result.DENY && (renderNameplateEvent.getResult() == net.minecraftforge.eventbus.api.Event.Result.ALLOW || this.func_177070_b(p_225623_1_))) { + this.func_225629_a_(p_225623_1_, renderNameplateEvent.getContent(), p_225623_4_, p_225623_5_, p_225623_6_); diff --git a/src/main/java/net/minecraftforge/client/event/RenderNameplateEvent.java b/src/main/java/net/minecraftforge/client/event/RenderNameplateEvent.java index 87b771e5a1..ac20c02d12 100644 --- a/src/main/java/net/minecraftforge/client/event/RenderNameplateEvent.java +++ b/src/main/java/net/minecraftforge/client/event/RenderNameplateEvent.java @@ -19,8 +19,11 @@ package net.minecraftforge.client.event; +import javax.annotation.Nullable; + import com.mojang.blaze3d.matrix.MatrixStack; import net.minecraft.client.renderer.IRenderTypeBuffer; +import net.minecraft.client.renderer.entity.EntityRenderer; import net.minecraft.entity.Entity; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.EntityEvent; @@ -32,10 +35,13 @@ import net.minecraftforge.eventbus.api.Event; * {@link #nameplateContent} contains the content being rendered on the name plate/tag. This can be changed by mods.
* {@link #originalContent} contains the original content being rendered on the name plate/tag. This cannot be * changed by mods.
+ * {@link #entityRenderer} contains the entity renderer instance that renders the name plate/tag. This cannot be + * changed by mods.
* {@link #matrixStack} contains the matrix stack instance involved in rendering the name plate/tag. This cannot * be changed by mods.
* {@link #renderTypeBuffer} contains the render type buffer instance involved in rendering the name plate/tag. * This cannot be changed by mods.
+ * {@link #packedLight} contains the sky and block light values used in rendering the name plate/tag.
*
* This event has a result. {@link HasResult}.
* ALLOW will force-render name plate/tag, DEFAULT will ignore the hook and continue using the vanilla check @@ -49,16 +55,26 @@ public class RenderNameplateEvent extends EntityEvent private String nameplateContent; private final String originalContent; + private final EntityRenderer entityRenderer; private final MatrixStack matrixStack; private final IRenderTypeBuffer renderTypeBuffer; + private final int packedLight; + @Deprecated //TODO 1.16: upon removal, also remove @Nullable on getEntityRenderer(), and update its javadoc public RenderNameplateEvent(Entity entity, String content, MatrixStack matrixStack, IRenderTypeBuffer renderTypeBuffer) + { + this(entity, content, null, matrixStack, renderTypeBuffer, 0); + } + + public RenderNameplateEvent(Entity entity, String content, EntityRenderer entityRenderer, MatrixStack matrixStack, IRenderTypeBuffer renderTypeBuffer, int packedLight) { super(entity); this.originalContent = content; this.setContent(this.originalContent); + this.entityRenderer = entityRenderer; this.matrixStack = matrixStack; this.renderTypeBuffer = renderTypeBuffer; + this.packedLight = packedLight; } /** @@ -85,6 +101,15 @@ public class RenderNameplateEvent extends EntityEvent return this.originalContent; } + /** + * The entity renderer that renders the name plate/tag, if it was provided + */ + @Nullable + public EntityRenderer getEntityRenderer() + { + return this.entityRenderer; + } + /** * The matrix stack used during the rendering of the name plate/tag */ @@ -100,4 +125,12 @@ public class RenderNameplateEvent extends EntityEvent { return this.renderTypeBuffer; } -} \ No newline at end of file + + /** + * The packed values of sky and block light used during the rendering of the name plate/tag + */ + public int getPackedLight() + { + return this.packedLight; + } +}