2525
2626import btw.mixces.animatium.AnimatiumCommon;
2727import btw.mixces.animatium.config.AnimatiumConfig;
28- import btw.mixces.animatium.mixins.accessor.ItemRendererAccessor;
29- import btw.mixces.animatium.util.FishingRodVersion;
3028import btw.mixces.animatium.util.ItemUtils;
31- import btw.mixces.animatium.util.MathUtils;
3229import btw.mixces.animatium.util.PlayerUtils;
3330import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
3431import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4340import net.minecraft.client.player.LocalPlayer;
4441import net.minecraft.client.renderer.ItemInHandRenderer;
4542import net.minecraft.client.renderer.MultiBufferSource;
46- import net.minecraft.client.renderer.entity.ItemRenderer;
4743import net.minecraft.world.InteractionHand;
4844import net.minecraft.world.entity.HumanoidArm;
4945import net.minecraft.world.item.Item;
@@ -76,10 +72,6 @@ public abstract class MixinItemInHandRenderer {
7672 @Final
7773 private Minecraft minecraft;
7874
79- @Shadow
80- @Final
81- private ItemRenderer itemRenderer;
82-
8375 @Unique
8476 private int animatium$currentSlot = -1;
8577
@@ -95,21 +87,20 @@ public abstract class MixinItemInHandRenderer {
9587 }
9688 }
9789
98- // TODO: Fix NeoForge
99- // @WrapOperation(method = "renderArmWithItem", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/vertex/PoseStack;scale(FFF)V", ordinal = 1))
100- // private void animatium$postBowTransform(PoseStack poseStack, float x, float y, float z, Operation<Void> original, @Local(argsOnly = true) AbstractClientPlayer player, @Local(argsOnly = true) InteractionHand hand) {
101- // int direction = PlayerUtils.getHandMultiplier(player, hand);
102- // if (AnimatiumCommon.isEnabled() && AnimatiumConfig.instance().itemPositions) {
103- // poseStack.mulPose(Axis.ZP.rotationDegrees(direction * -335));
104- // poseStack.mulPose(Axis.YP.rotationDegrees(direction * -50.0F));
105- // }
106- //
107- // original.call(poseStack, x, y, z);
108- // if (AnimatiumCommon.isEnabled() && AnimatiumConfig.instance().itemPositions) {
109- // poseStack.mulPose(Axis.YP.rotationDegrees(direction * 50.0F));
110- // poseStack.mulPose(Axis.ZP.rotationDegrees(direction * 335));
111- // }
112- // }
90+ @WrapOperation(method = "renderArmWithItem", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/vertex/PoseStack;scale(FFF)V", ordinal = 1))
91+ private void animatium$postBowTransform(PoseStack poseStack, float x, float y, float z, Operation<Void> original, @Local(argsOnly = true) AbstractClientPlayer player, @Local(argsOnly = true) InteractionHand hand) {
92+ int direction = PlayerUtils.getHandMultiplier(player, hand);
93+ if (AnimatiumCommon.isEnabled() && AnimatiumConfig.instance().itemPositions) {
94+ poseStack.mulPose(Axis.ZP.rotationDegrees(direction * -335));
95+ poseStack.mulPose(Axis.YP.rotationDegrees(direction * -50.0F));
96+ }
97+
98+ original.call(poseStack, x, y, z);
99+ if (AnimatiumCommon.isEnabled() && AnimatiumConfig.instance().itemPositions) {
100+ poseStack.mulPose(Axis.YP.rotationDegrees(direction * 50.0F));
101+ poseStack.mulPose(Axis.ZP.rotationDegrees(direction * 335));
102+ }
103+ }
113104
114105 @WrapOperation(method = "renderArmWithItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/ItemStack;getItem()Lnet/minecraft/world/item/Item;"))
115106 private Item animatium$oldFirstPersonSwordBlock(ItemStack instance, Operation<Item> original, @Local(argsOnly = true) AbstractClientPlayer player, @Local(argsOnly = true) InteractionHand hand, @Local(argsOnly = true) PoseStack poseStack) {
@@ -131,7 +122,7 @@ public abstract class MixinItemInHandRenderer {
131122 @Inject(method = "renderArmWithItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/ItemInHandRenderer;renderItem(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/item/ItemDisplayContext;ZLcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;I)V", ordinal = 1))
132123 private void animatium$itemPositions(AbstractClientPlayer player, float tickDelta, float pitch, InteractionHand hand, float swingProgress, ItemStack stack, float equipProgress, PoseStack poseStack, MultiBufferSource multiBufferSource, int light, CallbackInfo ci) {
133124 if (AnimatiumCommon.isEnabled()) {
134- final int direction = PlayerUtils.getHandMultiplier(player, hand);
125+ // final int direction = PlayerUtils.getHandMultiplier(player, hand);
135126 // TODO: Fix NeoForge
136127// if (AnimatiumConfig.instance().fishingRodVersion == FishingRodVersion.V1_7 && ItemUtils.isFishingRodItem(stack)) {
137128// poseStack.mulPose(Axis.YP.rotationDegrees(direction * 180.0F));
0 commit comments