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