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