31 lines
1.3 KiB
Java
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();
|
|
}
|
|
}
|
|
}
|
|
}
|