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

Download file
    package net.fabricmc.fabric.mixin.renderer.client.block.particle;

import com.llamalad7.mixinextras.sugar.Local;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.class_1058;
import net.minecraft.class_1657;
import net.minecraft.class_2338;
import net.minecraft.class_2680;
import net.minecraft.class_4603;
import net.minecraft.class_773;
import org.jetbrains.annotations.Nullable;
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.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Environment(EnvType.CLIENT)
@Mixin({class_4603.class})
abstract class InGameOverlayRendererMixin {
   @Unique
   private static @Nullable class_2338 pos;

   @Redirect(
      method = {"method_23067(ZFLnet/minecraft/class_11659;)V"},
      at = @At(
   value = "INVOKE",
   target = "Lnet/minecraft/class_773;method_3339(Lnet/minecraft/class_2680;)Lnet/minecraft/class_1058;"
)
   )
   private static class_1058 getModelParticleSpriteProxy(class_773 models, class_2680 state, @Local class_1657 playerEntity) {
      if (pos != null) {
         class_1058 sprite = models.getModelParticleSprite(state, playerEntity.method_73183(), pos);
         pos = null;
         return sprite;
      } else {
         return models.method_3339(state);
      }
   }

   @Inject(
      method = {"method_24225(Lnet/minecraft/class_1657;)Lnet/minecraft/class_2680;"},
      at = {@At("RETURN")}
   )
   private static void onReturnGetInWallBlockState(CallbackInfoReturnable<@Nullable class_2680> cir, @Local class_2338.class_2339 mutable) {
      if (cir.getReturnValue() != null) {
         pos = mutable.method_10062();
      } else {
         pos = null;
      }

   }
}
    
Download file