Skip to content

Commit 1c3bba7

Browse files
committed
fix viewmodel mixins
1 parent 8b426d9 commit 1c3bba7

File tree

1 file changed

+57
-61
lines changed

1 file changed

+57
-61
lines changed

src/main/java/com/lambda/mixin/render/HeldItemRendererMixin.java

Lines changed: 57 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@
2020
import com.google.common.base.MoreObjects;
2121
import com.lambda.Lambda;
2222
import com.lambda.module.modules.render.ViewModel;
23+
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
2324
import net.minecraft.client.MinecraftClient;
2425
import net.minecraft.client.network.AbstractClientPlayerEntity;
25-
import net.minecraft.client.render.VertexConsumerProvider;
26+
import net.minecraft.client.render.command.OrderedRenderCommandQueue;
2627
import net.minecraft.client.render.item.HeldItemRenderer;
2728
import net.minecraft.client.util.math.MatrixStack;
2829
import net.minecraft.item.ItemStack;
@@ -33,7 +34,6 @@
3334
import org.spongepowered.asm.mixin.injection.At;
3435
import org.spongepowered.asm.mixin.injection.Inject;
3536
import org.spongepowered.asm.mixin.injection.ModifyArg;
36-
import org.spongepowered.asm.mixin.injection.ModifyVariable;
3737
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
3838

3939
@Mixin(HeldItemRenderer.class)
@@ -43,63 +43,59 @@ public class HeldItemRendererMixin {
4343
@Shadow private ItemStack offHand;
4444
@Shadow private float equipProgressMainHand;
4545
@Shadow private float equipProgressOffHand;
46-
//
47-
// @Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderArmHoldingItem(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IFFLnet/minecraft/util/Arm;)V"))
48-
// private void onRenderArmHoldingItem(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack itemStack, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
49-
// if (!ViewModel.INSTANCE.isEnabled()) return;
50-
//
51-
// ViewModel.INSTANCE.transform(itemStack, hand, matrices);
52-
// }
53-
//
54-
// @Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderItem(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemDisplayContext;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", ordinal = 1))
55-
// private void onRenderFirstPersonItem(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack itemStack, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
56-
// if (!ViewModel.INSTANCE.isEnabled()) return;
57-
//
58-
// ViewModel.INSTANCE.transform(itemStack, hand, matrices);
59-
// }
60-
//
61-
// @ModifyArg(method = "updateHeldItems", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;clamp(FFF)F", ordinal = 2), index = 0)
62-
// private float modifyEquipProgressMainHand(float value) {
63-
// if (client.player == null || ViewModel.INSTANCE.isDisabled()) return value;
64-
//
65-
// ViewModel config = ViewModel.INSTANCE;
66-
// ItemStack currentStack = client.player.getMainHandStack();
67-
// if (config.getOldAnimations() && !config.getSwapAnimation()) {
68-
// mainHand = currentStack;
69-
// }
70-
//
71-
// float progress = config.getOldAnimations() ? 1 : (float) Math.pow(client.player.getAttackCooldownProgress(1), 3);
72-
//
73-
// return (ItemStack.areEqual(mainHand, currentStack) ? progress : 0) - equipProgressMainHand;
74-
// }
75-
//
76-
// @ModifyArg(method = "updateHeldItems", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;clamp(FFF)F", ordinal = 3), index = 0)
77-
// private float modifyEquipProgressOffHand(float value) {
78-
// if (client.player == null || ViewModel.INSTANCE.isDisabled()) return value;
79-
//
80-
// ViewModel config = ViewModel.INSTANCE;
81-
//
82-
// ItemStack currentStack = client.player.getOffHandStack();
83-
// if (config.getOldAnimations() && !config.getSwapAnimation()) {
84-
// offHand = currentStack;
85-
// }
86-
//
87-
// return (ItemStack.areEqual(offHand, currentStack) ? 1 : 0) - equipProgressOffHand;
88-
// }
89-
//
90-
// @ModifyVariable(method = "renderItem(FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider$Immediate;Lnet/minecraft/client/network/ClientPlayerEntity;I)V", at = @At(value = "STORE", ordinal = 0), index = 6)
91-
// private float modifySwing(float swingProgress) {
92-
// ViewModel config = ViewModel.INSTANCE;
93-
// MinecraftClient mc = Lambda.getMc();
94-
// if (config.isDisabled() || mc.player == null) return swingProgress;
95-
// Hand hand = MoreObjects.firstNonNull(mc.player.preferredHand, Hand.MAIN_HAND);
96-
//
97-
// if (hand == Hand.MAIN_HAND) {
98-
// return swingProgress + config.getMainSwingProgress();
99-
// } else if (hand == Hand.OFF_HAND) {
100-
// return swingProgress + config.getOffhandSwingProgress();
101-
// }
102-
//
103-
// return swingProgress;
104-
// }
46+
47+
@Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderItem(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemDisplayContext;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;I)V"))
48+
private void injectRenderFirstPersonItem(AbstractClientPlayerEntity player, float tickProgress, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, OrderedRenderCommandQueue orderedRenderCommandQueue, int light, CallbackInfo ci) {
49+
if (ViewModel.INSTANCE.isEnabled()) ViewModel.INSTANCE.transform(item, hand, matrices);
50+
}
51+
52+
@Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;renderArmHoldingItem(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;IFFLnet/minecraft/util/Arm;)V"))
53+
private void injectRenderArmHoldingItem(AbstractClientPlayerEntity player, float tickProgress, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, OrderedRenderCommandQueue orderedRenderCommandQueue, int light, CallbackInfo ci) {
54+
if (ViewModel.INSTANCE.isEnabled()) ViewModel.INSTANCE.transform(item, hand, matrices);
55+
}
56+
57+
@ModifyArg(method = "updateHeldItems", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;clamp(FFF)F", ordinal = 2), index = 0)
58+
private float modifyEquipProgressMainHand(float value) {
59+
if (client.player == null || ViewModel.INSTANCE.isDisabled()) return value;
60+
61+
ViewModel config = ViewModel.INSTANCE;
62+
ItemStack currentStack = client.player.getMainHandStack();
63+
if (config.getOldAnimations() && !config.getSwapAnimation()) {
64+
mainHand = currentStack;
65+
}
66+
67+
float progress = config.getOldAnimations() ? 1 : (float) Math.pow(client.player.getAttackCooldownProgress(1), 3);
68+
69+
return (ItemStack.areEqual(mainHand, currentStack) ? progress : 0) - equipProgressMainHand;
70+
}
71+
72+
@ModifyArg(method = "updateHeldItems", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/MathHelper;clamp(FFF)F", ordinal = 3), index = 0)
73+
private float modifyEquipProgressOffHand(float value) {
74+
if (client.player == null || ViewModel.INSTANCE.isDisabled()) return value;
75+
76+
ViewModel config = ViewModel.INSTANCE;
77+
78+
ItemStack currentStack = client.player.getOffHandStack();
79+
if (config.getOldAnimations() && !config.getSwapAnimation()) {
80+
offHand = currentStack;
81+
}
82+
83+
return (ItemStack.areEqual(offHand, currentStack) ? 1 : 0) - equipProgressOffHand;
84+
}
85+
86+
@ModifyExpressionValue(method = "renderItem(FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;Lnet/minecraft/client/network/ClientPlayerEntity;I)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerEntity;getHandSwingProgress(F)F"))
87+
private float modifySwing(float swingProgress) {
88+
ViewModel config = ViewModel.INSTANCE;
89+
MinecraftClient mc = Lambda.getMc();
90+
if (config.isDisabled() || mc.player == null) return swingProgress;
91+
Hand hand = MoreObjects.firstNonNull(mc.player.preferredHand, Hand.MAIN_HAND);
92+
93+
if (hand == Hand.MAIN_HAND) {
94+
return swingProgress + config.getMainSwingProgress();
95+
} else if (hand == Hand.OFF_HAND) {
96+
return swingProgress + config.getOffhandSwingProgress();
97+
}
98+
99+
return swingProgress;
100+
}
105101
}

0 commit comments

Comments
 (0)