Skip to content

Commit c57dbcc

Browse files
authored
Defer Indigo item rendering (#2336)
- Move ItemRenderer injection point from head to before isBuiltin check to allow model replacement to run
1 parent 0d55f58 commit c57dbcc

File tree

2 files changed

+3
-7
lines changed

2 files changed

+3
-7
lines changed

fabric-renderer-indigo/src/client/java/net/fabricmc/fabric/impl/client/indigo/renderer/render/ItemRenderContext.java

-5
Original file line numberDiff line numberDiff line change
@@ -106,16 +106,11 @@ public void renderModel(ItemStack itemStack, Mode transformMode, boolean invert,
106106
this.vanillaHandler = vanillaHandler;
107107
computeOutputInfo();
108108

109-
matrixStack.push();
110-
model.getTransformation().getTransformation(transformMode).apply(invert, matrixStack);
111-
matrixStack.translate(-0.5D, -0.5D, -0.5D);
112109
matrix = matrixStack.peek().getPositionMatrix();
113110
normalMatrix = matrixStack.peek().getNormalMatrix();
114111

115112
((FabricBakedModel) model).emitItemQuads(itemStack, randomSupplier, this);
116113

117-
matrixStack.pop();
118-
119114
this.itemStack = null;
120115
this.matrixStack = null;
121116
this.vanillaHandler = null;

fabric-renderer-indigo/src/client/java/net/fabricmc/fabric/mixin/client/indigo/renderer/MixinItemRenderer.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,11 @@ public abstract class MixinItemRenderer {
4949
@Unique
5050
private final VanillaQuadHandler fabric_vanillaHandler = new IndigoQuadHandler((ItemRenderer) (Object) this);
5151

52-
@Inject(at = @At("HEAD"), method = "renderItem(Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/render/model/json/ModelTransformation$Mode;ZLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/client/render/model/BakedModel;)V", cancellable = true)
52+
@Inject(at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/model/BakedModel;isBuiltin()Z"), method = "renderItem(Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/render/model/json/ModelTransformation$Mode;ZLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/client/render/model/BakedModel;)V", cancellable = true)
5353
public void hook_renderItem(ItemStack stack, ModelTransformation.Mode transformMode, boolean invert, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int light, int overlay, BakedModel model, CallbackInfo ci) {
54-
if (!stack.isEmpty() && !((FabricBakedModel) model).isVanillaAdapter()) {
54+
if (!((FabricBakedModel) model).isVanillaAdapter()) {
5555
fabric_contexts.get().renderModel(stack, transformMode, invert, matrixStack, vertexConsumerProvider, light, overlay, model, fabric_vanillaHandler);
56+
matrixStack.pop();
5657
ci.cancel();
5758
}
5859
}

0 commit comments

Comments
 (0)