fabric-rendering-v1-16.2.0+bee81f016f.jar

Download file
    package net.fabricmc.fabric.mixin.client.rendering;

import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.client.rendering.v1.ArmorRenderer;
import net.fabricmc.fabric.impl.client.rendering.ArmorRendererRegistryImpl;
import net.minecraft.class_10034;
import net.minecraft.class_11659;
import net.minecraft.class_1304;
import net.minecraft.class_1799;
import net.minecraft.class_3883;
import net.minecraft.class_3887;
import net.minecraft.class_4587;
import net.minecraft.class_572;
import net.minecraft.class_970;
import org.spongepowered.asm.mixin.Mixin;
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_970.class})
public abstract class ArmorFeatureRendererMixin<S extends class_10034, M extends class_572<S>, A extends class_572<S>> extends class_3887<S, M> {
   @Unique
   private class_10034 bipedRenderState;

   public ArmorFeatureRendererMixin(class_3883<S, M> featureRendererContext) {
      super(featureRendererContext);
   }

   @Inject(
      method = {"method_17157(Lnet/minecraft/class_4587;Lnet/minecraft/class_11659;ILnet/minecraft/class_10034;FF)V"},
      at = {@At("HEAD")}
   )
   private void render(class_4587 matrixStack, class_11659 orderedRenderCommandQueue, int i, S bipedEntityRenderState, float f, float g, CallbackInfo ci) {
      this.bipedRenderState = bipedEntityRenderState;
   }

   @Inject(
      method = {"method_4169(Lnet/minecraft/class_4587;Lnet/minecraft/class_11659;Lnet/minecraft/class_1799;Lnet/minecraft/class_1304;ILnet/minecraft/class_10034;)V"},
      at = {@At("HEAD")},
      cancellable = true
   )
   private void renderArmor(class_4587 matrices, class_11659 orderedRenderCommandQueue, class_1799 stack, class_1304 armorSlot, int light, S bipedEntityRenderState, CallbackInfo ci) {
      ArmorRenderer renderer = ArmorRendererRegistryImpl.get(stack.method_7909());
      if (renderer != null) {
         renderer.render(matrices, orderedRenderCommandQueue, stack, this.bipedRenderState, armorSlot, light, (class_572)this.method_17165());
         ci.cancel();
      }

   }
}
    
Download file