From f59520aca86e1a1fc1861e94222b315c878aba4a Mon Sep 17 00:00:00 2001 From: Sollace Date: Tue, 28 May 2019 14:46:58 +0200 Subject: [PATCH] Fixed some mixins crash --- .../client/ducks/IRenderItem.java | 5 ++++ .../client/mixin/MixinItemRenderer.java | 25 +++++++++++-------- .../tileentities/skull/PonySkullRenderer.java | 1 + 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/minelittlepony/client/ducks/IRenderItem.java b/src/main/java/com/minelittlepony/client/ducks/IRenderItem.java index 6430bd47..32a0bd4b 100644 --- a/src/main/java/com/minelittlepony/client/ducks/IRenderItem.java +++ b/src/main/java/com/minelittlepony/client/ducks/IRenderItem.java @@ -6,4 +6,9 @@ public interface IRenderItem { * Sets whether items should be rendered with transparency support. */ void useTransparency(boolean use); + + /** + * Returns true if this renderer is set to render models as a transparent overlay. + */ + boolean usesTransparency(); } diff --git a/src/main/java/com/minelittlepony/client/mixin/MixinItemRenderer.java b/src/main/java/com/minelittlepony/client/mixin/MixinItemRenderer.java index a2c62749..30a46bd6 100644 --- a/src/main/java/com/minelittlepony/client/mixin/MixinItemRenderer.java +++ b/src/main/java/com/minelittlepony/client/mixin/MixinItemRenderer.java @@ -34,6 +34,21 @@ public abstract class MixinItemRenderer implements SynchronousResourceReloadList } } + @Inject(method = "renderItemAndGlow(" + + "Lnet/minecraft/item/ItemStack;" + + "Lnet/minecraft/client/render/model/BakedModel;)V", + at = @At(value = "INVOKE", + target = "Lnet/minecraft/client/render/item/ItemRenderer;renderGlint(" + + "Lnet/minecraft/client/texture/TextureManager;" + + "Ljava/lang/Runnable;I)V"), + cancellable = true) + private void beforeRenderEffect(ItemStack stack, BakedModel model, CallbackInfo info) { + if (transparency) { + info.cancel(); + } + } + + @ModifyArg(method = "renderQuads(" + "Lnet/minecraft/client/render/BufferBuilder;" + "Ljava/util/List;I" @@ -46,14 +61,4 @@ public abstract class MixinItemRenderer implements SynchronousResourceReloadList private int modifyItemRenderTint(int color) { return transparency ? -1 : color; } - - @Inject(method = "renderEffect(" - + "Lnet/minecraft/client/render/model/BakedModel;)V", - at = @At("HEAD"), - cancellable = true) - private void renderEffect(BakedModel model, CallbackInfo info) { - if (transparency) { - info.cancel(); - } - } } diff --git a/src/main/java/com/minelittlepony/client/render/tileentities/skull/PonySkullRenderer.java b/src/main/java/com/minelittlepony/client/render/tileentities/skull/PonySkullRenderer.java index b4174b5d..9d62f471 100644 --- a/src/main/java/com/minelittlepony/client/render/tileentities/skull/PonySkullRenderer.java +++ b/src/main/java/com/minelittlepony/client/render/tileentities/skull/PonySkullRenderer.java @@ -148,6 +148,7 @@ public class PonySkullRenderer extends SkullBlockEntityRenderer implements IRend transparency = use; } + @Override public boolean usesTransparency() { return transparency; }