From dcbc3e033a519be56d8a3050955e1bcfa873299a Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sat, 19 Aug 2023 19:30:30 -0400 Subject: [PATCH] Tweak injection point of faster_item_rendering --- .../perf/faster_item_rendering/ItemRendererMixin.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/faster_item_rendering/ItemRendererMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/faster_item_rendering/ItemRendererMixin.java index 20f4fdcc..fdae3775 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/faster_item_rendering/ItemRendererMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/faster_item_rendering/ItemRendererMixin.java @@ -16,20 +16,17 @@ import org.embeddedt.modernfix.render.SimpleItemModelView; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.ModifyVariable; +import org.spongepowered.asm.mixin.injection.ModifyArg; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(value = ItemRenderer.class, priority = 600) public abstract class ItemRendererMixin { private ItemTransforms.TransformType transformType; private final SimpleItemModelView modelView = new SimpleItemModelView(); - private boolean mfix$isTopLevelSimpleModel; @Inject(method = "render", at = @At("HEAD")) private void markRenderingType(ItemStack itemStack, ItemTransforms.TransformType transformType, boolean leftHand, PoseStack matrixStack, MultiBufferSource buffer, int combinedLight, int combinedOverlay, BakedModel model, CallbackInfo ci) { this.transformType = transformType; - // used as renderModelLists may be called by custom model renderers - this.mfix$isTopLevelSimpleModel = model != null && model.getClass() == SimpleBakedModel.class; } /** @@ -40,9 +37,9 @@ public abstract class ItemRendererMixin { * we do not need to go through the process of rendering every quad. Just render the south ones (the ones facing the * camera). */ - @ModifyVariable(method = "renderModelLists", at = @At("HEAD"), index = 1, argsOnly = true) - private BakedModel useSimpleWrappedItemModel(BakedModel model, BakedModel arg, ItemStack stack, int combinedLight, int combinedOverlay, PoseStack matrixStack, VertexConsumer buffer) { - if(!RenderState.IS_RENDERING_LEVEL && !stack.isEmpty() && mfix$isTopLevelSimpleModel && model.getClass() == SimpleBakedModel.class && transformType == ItemTransforms.TransformType.GUI) { + @ModifyArg(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/entity/ItemRenderer;renderModelLists(Lnet/minecraft/client/resources/model/BakedModel;Lnet/minecraft/world/item/ItemStack;IILcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;)V"), index = 0) + private BakedModel useSimpleWrappedItemModel(BakedModel model, ItemStack stack, int combinedLight, int combinedOverlay, PoseStack matrixStack, VertexConsumer buffer) { + if(!RenderState.IS_RENDERING_LEVEL && !stack.isEmpty() && model.getClass() == SimpleBakedModel.class && transformType == ItemTransforms.TransformType.GUI) { FastItemRenderType type; ItemTransform transform = model.getTransforms().gui; if(transform == ItemTransform.NO_TRANSFORM)