fabric-renderer-api-v1-7.2.3+9be2a36e6f.jar
Download file
package net.fabricmc.fabric.mixin.renderer.client.item;
import com.llamalad7.mixinextras.sugar.Local;
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.SpriteFinder;
import net.fabricmc.fabric.impl.renderer.BasicItemModelExtension;
import net.minecraft.class_10430;
import net.minecraft.class_10439;
import net.minecraft.class_10444;
import net.minecraft.class_10725;
import net.minecraft.class_9826;
import net.minecraft.class_10444.class_10445;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Mutable;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Environment(EnvType.CLIENT)
@Mixin({class_10430.class})
abstract class BasicItemModelMixin implements class_10439, BasicItemModelExtension {
@Shadow
@Final
@Mutable
private boolean field_59980;
@Unique
private @Nullable Mesh mesh;
@Inject(
method = {"method_65584(Lnet/minecraft/class_10444;Lnet/minecraft/class_1799;Lnet/minecraft/class_10442;Lnet/minecraft/class_811;Lnet/minecraft/class_638;Lnet/minecraft/class_11566;I)V"},
at = {@At("RETURN")}
)
private void onReturnUpdate(CallbackInfo ci, @Local class_10444.class_10446 layer) {
if (this.mesh != null) {
this.mesh.outputTo(layer.emitter());
}
}
public void fabric_setMesh(Mesh mesh, class_9826 spriteGetter) {
this.mesh = mesh;
if (!this.field_59980) {
SpriteFinder spriteFinder = spriteGetter.spriteFinder(class_10725.field_56382);
mesh.forEach((quad) -> {
if (!this.field_59980) {
class_10444.class_10445 glint = quad.glint();
if (glint != null && glint != class_10445.field_55341 || spriteFinder.find(quad).method_45851().method_73020()) {
this.field_59980 = true;
}
}
});
}
}
}
Download file