Fixed some mixins crash

This commit is contained in:
Sollace 2019-05-28 14:46:58 +02:00
parent fcf90bc62c
commit f59520aca8
3 changed files with 21 additions and 10 deletions

View file

@ -6,4 +6,9 @@ public interface IRenderItem {
* Sets whether items should be rendered with transparency support. * Sets whether items should be rendered with transparency support.
*/ */
void useTransparency(boolean use); void useTransparency(boolean use);
/**
* Returns true if this renderer is set to render models as a transparent overlay.
*/
boolean usesTransparency();
} }

View file

@ -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(" @ModifyArg(method = "renderQuads("
+ "Lnet/minecraft/client/render/BufferBuilder;" + "Lnet/minecraft/client/render/BufferBuilder;"
+ "Ljava/util/List;I" + "Ljava/util/List;I"
@ -46,14 +61,4 @@ public abstract class MixinItemRenderer implements SynchronousResourceReloadList
private int modifyItemRenderTint(int color) { private int modifyItemRenderTint(int color) {
return transparency ? -1 : 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();
}
}
} }

View file

@ -148,6 +148,7 @@ public class PonySkullRenderer extends SkullBlockEntityRenderer implements IRend
transparency = use; transparency = use;
} }
@Override
public boolean usesTransparency() { public boolean usesTransparency() {
return transparency; return transparency;
} }