fabric-renderer-api-v1-7.2.3+9be2a36e6f.jar

Download file
    package net.fabricmc.fabric.mixin.renderer.client.item;

import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import com.llamalad7.mixinextras.sugar.Share;
import com.llamalad7.mixinextras.sugar.ref.LocalRef;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.renderer.v1.mesh.Mesh;
import net.fabricmc.fabric.api.renderer.v1.model.MeshBakedGeometry;
import net.fabricmc.fabric.impl.renderer.BasicItemModelExtension;
import net.minecraft.class_10430;
import net.minecraft.class_10439;
import net.minecraft.class_10817;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;

@Environment(EnvType.CLIENT)
@Mixin({class_10430.class_10431.class})
abstract class BasicItemModelUnbakedMixin {
   @ModifyExpressionValue(
      method = {"method_65587(Lnet/minecraft/class_10439$class_10440;)Lnet/minecraft/class_10439;"},
      at = {@At(
   value = "INVOKE",
   target = "Lnet/minecraft/class_10819;method_68034(Lnet/minecraft/class_10419;Lnet/minecraft/class_7775;Lnet/minecraft/class_3665;)Lnet/minecraft/class_10817;"
)}
   )
   private class_10817 captureMesh(class_10817 geometry, @Share("mesh") LocalRef<Mesh> meshRef) {
      if (geometry instanceof MeshBakedGeometry meshBakedGeometry) {
         meshRef.set(meshBakedGeometry.getMesh());
      }

      return geometry;
   }

   @ModifyExpressionValue(
      method = {"method_65587(Lnet/minecraft/class_10439$class_10440;)Lnet/minecraft/class_10439;"},
      at = {@At(
   value = "NEW",
   target = "Lnet/minecraft/class_10430;"
)}
   )
   private class_10430 injectMesh(class_10430 model, class_10439.class_10440 context, @Share("mesh") LocalRef<Mesh> meshRef) {
      Mesh mesh = (Mesh)meshRef.get();
      if (mesh != null) {
         ((BasicItemModelExtension)model).fabric_setMesh(mesh, context.comp_3390().method_65732());
      }

      return model;
   }
}
    
Download file