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