Files
OpenPrestige/src/main/java/dev/zprestige/prestige/mixin/HeldItemRendererMixin.java
T

31 lines
1.3 KiB
Java

package dev.zprestige.prestige.mixin;
import dev.zprestige.prestige.client.Prestige;
import dev.zprestige.prestige.event.SwingArmEvent;
import dev.zprestige.prestige.util.HookBridge;
import net.lenni0451.classtransform.InjectionCallback;
import net.lenni0451.classtransform.annotations.CTarget;
import net.lenni0451.classtransform.annotations.CTransformer;
import net.lenni0451.classtransform.annotations.injection.CInject;
import net.minecraft.client.render.item.HeldItemRenderer;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.Arm;
@CTransformer({HeldItemRenderer.class})
public abstract class HeldItemRendererMixin {
@CInject(
method = {"swingArm"},
target = {@CTarget("HEAD")},
cancellable = true
)
private void postSwingArmEventAtHead(float swingProgress, MatrixStack matrixStack, int i, Arm arm, InjectionCallback ci) {
if (Prestige.eventBus != null && HookBridge.hasSwingArmListeners(Prestige.eventBus, SwingArmEvent.class)) {
SwingArmEvent event = HookBridge.createSwingArmEvent(matrixStack, arm, swingProgress, 1.0F);
if (HookBridge.postSwingArmEvent(event)) {
matrixStack.scale(2.0F, 2.0F, 2.0F);
ci.cancel();
}
}
}
}