diff --git a/src/main/java/me/zeroeightsix/kami/mixin/client/render/MixinItemRenderer.java b/src/main/java/me/zeroeightsix/kami/mixin/client/render/MixinItemRenderer.java index 0a0750df6..e4d6fceb4 100644 --- a/src/main/java/me/zeroeightsix/kami/mixin/client/render/MixinItemRenderer.java +++ b/src/main/java/me/zeroeightsix/kami/mixin/client/render/MixinItemRenderer.java @@ -23,8 +23,10 @@ public class MixinItemRenderer { } @Inject(method = "renderItemInFirstPerson(Lnet/minecraft/client/entity/AbstractClientPlayer;FFLnet/minecraft/util/EnumHand;FLnet/minecraft/item/ItemStack;F)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GlStateManager;pushMatrix()V", shift = At.Shift.AFTER)) - private void transformSideFirstPerson$pushMatrix(AbstractClientPlayer player, float var0, float pitch, EnumHand hand, float var1, ItemStack stack, float yOffset, CallbackInfo ci) { + private void transformSideFirstPerson$pushMatrix(AbstractClientPlayer player, float partialTicks, float pitch, EnumHand hand, float swingProgress, ItemStack stack, float equippedProgress, CallbackInfo ci) { if (ItemModel.INSTANCE.isEnabled()) { + if (!ItemModel.INSTANCE.getModifyHand() && stack.isEmpty()) return; + EnumHandSide enumhandside = hand == EnumHand.MAIN_HAND ? player.getPrimaryHand() : player.getPrimaryHand().opposite(); float sideMultiplier = enumhandside == EnumHandSide.RIGHT ? 1.0f : -1.0f; @@ -33,8 +35,10 @@ public class MixinItemRenderer { } @Inject(method = "renderItemInFirstPerson(Lnet/minecraft/client/entity/AbstractClientPlayer;FFLnet/minecraft/util/EnumHand;FLnet/minecraft/item/ItemStack;F)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/ItemRenderer;renderItemSide(Lnet/minecraft/entity/EntityLivingBase;Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/renderer/block/model/ItemCameraTransforms$TransformType;Z)V")) - private void transformSideFirstPerson$renderItemSide(AbstractClientPlayer player, float var0, float pitch, EnumHand hand, float var1, ItemStack stack, float yOffset, CallbackInfo ci) { + private void transformSideFirstPerson$renderItemSide(AbstractClientPlayer player, float partialTicks, float pitch, EnumHand hand, float swingProgress, ItemStack stack, float equippedProgress, CallbackInfo ci) { if (ItemModel.INSTANCE.isEnabled()) { + if (!ItemModel.INSTANCE.getModifyHand() && stack.isEmpty()) return; + EnumHandSide enumhandside = hand == EnumHand.MAIN_HAND ? player.getPrimaryHand() : player.getPrimaryHand().opposite(); float sideMultiplier = enumhandside == EnumHandSide.RIGHT ? 1.0f : -1.0f; float scale = ItemModel.INSTANCE.getScale(); diff --git a/src/main/java/me/zeroeightsix/kami/module/modules/render/ItemModel.kt b/src/main/java/me/zeroeightsix/kami/module/modules/render/ItemModel.kt index 30d282792..5f34b0b52 100644 --- a/src/main/java/me/zeroeightsix/kami/module/modules/render/ItemModel.kt +++ b/src/main/java/me/zeroeightsix/kami/module/modules/render/ItemModel.kt @@ -16,4 +16,5 @@ object ItemModel : Module() { val rotateY by setting("RotateY", 0.0f, -180.0f..180.0f, 1.0f) val rotateZ by setting("RotateZ", 0.0f, -180.0f..180.0f, 1.0f) val scale by setting("Scale", 1.0f, 0.1f..3.0f, 0.025f) + val modifyHand by setting("ModifyHand", false) } \ No newline at end of file