From bcb387e9f11d5295c36a6ab75b53331c34dcef03 Mon Sep 17 00:00:00 2001 From: Mixces Date: Thu, 29 Feb 2024 02:31:22 -0600 Subject: [PATCH] hope this doesnt explode --- build.gradle | 2 + gradle.properties | 4 +- .../legacyanimations/LegacyAnimations.java | 13 ++ .../config/LegacyAnimationsSettings.java} | 32 ++- .../config/ModMenuIntegration.java | 4 +- .../mixin/AccessorCamera.java | 14 ++ .../mixin/BipedEntityModelMixin.java | 188 ++++++++++++++++++ .../mixin/BuiltinModelItemRendererMixin.java | 26 +++ .../legacyanimations/mixin/CameraMixin.java | 27 +++ .../ClientPlayerInteractionManagerMixin.java | 35 ++++ .../mixin/DebugHudMixin.java | 8 +- .../legacyanimations/mixin/EntityMixin.java | 34 ++++ .../FishingBobberEntityRendererMixin.java | 31 +++ .../mixin/HeldItemRendererMixin.java | 79 ++++++++ .../mixin/InGameHudMixin.java | 44 ++++ .../mixin/LivingEntityInvoker.java | 2 +- .../mixin/LivingEntityMixin.java | 27 +++ .../mixin/LivingEntityRendererMixin.java | 52 +++++ .../mixin/MinecraftClientMixin.java | 18 +- .../mixin/PlayerEntityMixin.java | 27 +++ .../mixin/PlayerEntityRendererMixin.java | 16 ++ .../mixin/SwordItemMixin.java | 44 ++++ .../mixces/oldanimations/OldAnimations.java | 13 -- .../mixin/BipedEntityModelMixin.java | 35 ---- .../mixin/BuiltinModelItemRendererMixin.java | 30 --- .../oldanimations/mixin/CameraMixin.java | 26 --- .../ClientPlayerInteractionManagerMixin.java | 53 ----- .../mixin/HeldItemRendererMixin.java | 71 ------- .../oldanimations/mixin/InGameHudMixin.java | 24 --- .../mixin/LivingEntityMixin.java | 27 --- .../mixin/LivingEntityRendererMixin.java | 18 -- .../mixin/PlayerEntityMixin.java | 17 -- .../mixin/PlayerEntityRendererMixin.java | 24 --- .../oldanimations/mixin/PotionItemMixin.java | 25 --- .../oldanimations/mixin/SwordItemMixin.java | 54 ----- .../icon.png | Bin src/main/resources/fabric.mod.json | 15 +- .../resources/legacyanimations.accesswidener | 3 + ...xins.json => legacyanimations.mixins.json} | 10 +- 39 files changed, 719 insertions(+), 453 deletions(-) create mode 100644 src/main/java/com/mixces/legacyanimations/LegacyAnimations.java rename src/main/java/com/mixces/{oldanimations/config/OldAnimationsSettings.java => legacyanimations/config/LegacyAnimationsSettings.java} (81%) rename src/main/java/com/mixces/{oldanimations => legacyanimations}/config/ModMenuIntegration.java (78%) create mode 100644 src/main/java/com/mixces/legacyanimations/mixin/AccessorCamera.java create mode 100644 src/main/java/com/mixces/legacyanimations/mixin/BipedEntityModelMixin.java create mode 100644 src/main/java/com/mixces/legacyanimations/mixin/BuiltinModelItemRendererMixin.java create mode 100644 src/main/java/com/mixces/legacyanimations/mixin/CameraMixin.java create mode 100644 src/main/java/com/mixces/legacyanimations/mixin/ClientPlayerInteractionManagerMixin.java rename src/main/java/com/mixces/{oldanimations => legacyanimations}/mixin/DebugHudMixin.java (77%) create mode 100644 src/main/java/com/mixces/legacyanimations/mixin/EntityMixin.java create mode 100644 src/main/java/com/mixces/legacyanimations/mixin/FishingBobberEntityRendererMixin.java create mode 100644 src/main/java/com/mixces/legacyanimations/mixin/HeldItemRendererMixin.java create mode 100644 src/main/java/com/mixces/legacyanimations/mixin/InGameHudMixin.java rename src/main/java/com/mixces/{oldanimations => legacyanimations}/mixin/LivingEntityInvoker.java (86%) create mode 100644 src/main/java/com/mixces/legacyanimations/mixin/LivingEntityMixin.java create mode 100644 src/main/java/com/mixces/legacyanimations/mixin/LivingEntityRendererMixin.java rename src/main/java/com/mixces/{oldanimations => legacyanimations}/mixin/MinecraftClientMixin.java (74%) create mode 100644 src/main/java/com/mixces/legacyanimations/mixin/PlayerEntityMixin.java create mode 100644 src/main/java/com/mixces/legacyanimations/mixin/PlayerEntityRendererMixin.java create mode 100644 src/main/java/com/mixces/legacyanimations/mixin/SwordItemMixin.java delete mode 100644 src/main/java/com/mixces/oldanimations/OldAnimations.java delete mode 100644 src/main/java/com/mixces/oldanimations/mixin/BipedEntityModelMixin.java delete mode 100644 src/main/java/com/mixces/oldanimations/mixin/BuiltinModelItemRendererMixin.java delete mode 100644 src/main/java/com/mixces/oldanimations/mixin/CameraMixin.java delete mode 100644 src/main/java/com/mixces/oldanimations/mixin/ClientPlayerInteractionManagerMixin.java delete mode 100644 src/main/java/com/mixces/oldanimations/mixin/HeldItemRendererMixin.java delete mode 100644 src/main/java/com/mixces/oldanimations/mixin/InGameHudMixin.java delete mode 100644 src/main/java/com/mixces/oldanimations/mixin/LivingEntityMixin.java delete mode 100644 src/main/java/com/mixces/oldanimations/mixin/LivingEntityRendererMixin.java delete mode 100644 src/main/java/com/mixces/oldanimations/mixin/PlayerEntityMixin.java delete mode 100644 src/main/java/com/mixces/oldanimations/mixin/PlayerEntityRendererMixin.java delete mode 100644 src/main/java/com/mixces/oldanimations/mixin/PotionItemMixin.java delete mode 100644 src/main/java/com/mixces/oldanimations/mixin/SwordItemMixin.java rename src/main/resources/assets/{oldanimations => legacyanimations}/icon.png (100%) create mode 100644 src/main/resources/legacyanimations.accesswidener rename src/main/resources/{oldanimations.mixins.json => legacyanimations.mixins.json} (76%) diff --git a/build.gradle b/build.gradle index 3fac4b4..c961ee5 100644 --- a/build.gradle +++ b/build.gradle @@ -22,6 +22,8 @@ loom { runs { remove server } + + accessWidenerPath = file("src/main/resources/legacyanimations.accesswidener") } dependencies { diff --git a/gradle.properties b/gradle.properties index 98062a4..f07a543 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,8 +10,8 @@ loader_version=0.15.6 # Mod Properties mod_version=1.0.0 -maven_group=com.mixces.oldanimations -archives_base_name=oldanimations +maven_group=com.mixces.legacyanimations +archives_base_name=legacyanimations # Dependencies fabric_version=0.95.0+1.20.4 diff --git a/src/main/java/com/mixces/legacyanimations/LegacyAnimations.java b/src/main/java/com/mixces/legacyanimations/LegacyAnimations.java new file mode 100644 index 0000000..db4a5b0 --- /dev/null +++ b/src/main/java/com/mixces/legacyanimations/LegacyAnimations.java @@ -0,0 +1,13 @@ +package com.mixces.legacyanimations; + +import com.mixces.legacyanimations.config.LegacyAnimationsSettings; +import net.fabricmc.api.ModInitializer; + +public class LegacyAnimations implements ModInitializer { + + @Override + public void onInitialize() { + LegacyAnimationsSettings.CONFIG.load(); + } + +} \ No newline at end of file diff --git a/src/main/java/com/mixces/oldanimations/config/OldAnimationsSettings.java b/src/main/java/com/mixces/legacyanimations/config/LegacyAnimationsSettings.java similarity index 81% rename from src/main/java/com/mixces/oldanimations/config/OldAnimationsSettings.java rename to src/main/java/com/mixces/legacyanimations/config/LegacyAnimationsSettings.java index 2627f54..b6bda92 100644 --- a/src/main/java/com/mixces/oldanimations/config/OldAnimationsSettings.java +++ b/src/main/java/com/mixces/legacyanimations/config/LegacyAnimationsSettings.java @@ -1,4 +1,4 @@ -package com.mixces.oldanimations.config; +package com.mixces.legacyanimations.config; import dev.isxander.yacl3.api.ConfigCategory; import dev.isxander.yacl3.api.Option; @@ -12,11 +12,11 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.text.Text; -public class OldAnimationsSettings { +public class LegacyAnimationsSettings { - public static final ConfigClassHandler CONFIG = ConfigClassHandler.createBuilder(OldAnimationsSettings.class) + public static final ConfigClassHandler CONFIG = ConfigClassHandler.createBuilder(LegacyAnimationsSettings.class) .serializer(config -> GsonConfigSerializerBuilder.create(config) - .setPath(FabricLoader.getInstance().getConfigDir().resolve("oldanimations.json")) + .setPath(FabricLoader.getInstance().getConfigDir().resolve("legacyanimations.json")) .build()) .build(); @@ -39,9 +39,13 @@ public class OldAnimationsSettings { @SerialEntry public boolean oldDeath = true; @SerialEntry - public boolean potionGlint = true; + public boolean oldSwim = true; + @SerialEntry + public boolean oldHearts = true; @SerialEntry public boolean oldDebug = true; + @SerialEntry + public boolean perspectiveCrosshair = true; @SuppressWarnings("deprecation") @@ -105,9 +109,9 @@ public static Screen configScreen(Screen parent) { .controller(TickBoxControllerBuilder::create) .build()) .option(Option.createBuilder(boolean.class) - .name(Text.literal("Potion Glint Effect")) - .description(OptionDescription.of(Text.of("Returns the glint effect on potions."))) - .binding(defaults.potionGlint, () -> config.potionGlint, newVal -> config.potionGlint = newVal) + .name(Text.literal("Old Swimming Animation")) + .description(OptionDescription.of(Text.of("Reverts the swimming animation to it's former glory."))) + .binding(defaults.oldSwim, () -> config.oldSwim, newVal -> config.oldSwim = newVal) .controller(TickBoxControllerBuilder::create) .build()) .option(Option.createBuilder(boolean.class) @@ -116,6 +120,18 @@ public static Screen configScreen(Screen parent) { .binding(defaults.oldDebug, () -> config.oldDebug, newVal -> config.oldDebug = newVal) .controller(TickBoxControllerBuilder::create) .build()) + .option(Option.createBuilder(boolean.class) + .name(Text.literal("Old Health Flashing")) + .description(OptionDescription.of(Text.of("Brings back the old hotbar health flashing appearance."))) + .binding(defaults.oldHearts, () -> config.oldHearts, newVal -> config.oldHearts = newVal) + .controller(TickBoxControllerBuilder::create) + .build()) + .option(Option.createBuilder(boolean.class) + .name(Text.literal("Third Person Mode Crosshair")) + .description(OptionDescription.of(Text.of("Brings back the crosshair in third person mode."))) + .binding(defaults.perspectiveCrosshair, () -> config.perspectiveCrosshair, newVal -> config.perspectiveCrosshair = newVal) + .controller(TickBoxControllerBuilder::create) + .build()) .build()) )).generateScreen(parent); } diff --git a/src/main/java/com/mixces/oldanimations/config/ModMenuIntegration.java b/src/main/java/com/mixces/legacyanimations/config/ModMenuIntegration.java similarity index 78% rename from src/main/java/com/mixces/oldanimations/config/ModMenuIntegration.java rename to src/main/java/com/mixces/legacyanimations/config/ModMenuIntegration.java index 8dbbdd4..2f35ad3 100644 --- a/src/main/java/com/mixces/oldanimations/config/ModMenuIntegration.java +++ b/src/main/java/com/mixces/legacyanimations/config/ModMenuIntegration.java @@ -1,4 +1,4 @@ -package com.mixces.oldanimations.config; +package com.mixces.legacyanimations.config; import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ModMenuApi; @@ -9,6 +9,6 @@ public class ModMenuIntegration implements ModMenuApi { @Override public ConfigScreenFactory getModConfigScreenFactory() { - return OldAnimationsSettings::configScreen; + return LegacyAnimationsSettings::configScreen; } } \ No newline at end of file diff --git a/src/main/java/com/mixces/legacyanimations/mixin/AccessorCamera.java b/src/main/java/com/mixces/legacyanimations/mixin/AccessorCamera.java new file mode 100644 index 0000000..778a8f6 --- /dev/null +++ b/src/main/java/com/mixces/legacyanimations/mixin/AccessorCamera.java @@ -0,0 +1,14 @@ +package com.mixces.legacyanimations.mixin; + +import net.minecraft.client.render.Camera; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(Camera.class) +public interface AccessorCamera { + + @Accessor float getCameraY(); + + @Accessor float getLastCameraY(); + +} diff --git a/src/main/java/com/mixces/legacyanimations/mixin/BipedEntityModelMixin.java b/src/main/java/com/mixces/legacyanimations/mixin/BipedEntityModelMixin.java new file mode 100644 index 0000000..f8c4cc1 --- /dev/null +++ b/src/main/java/com/mixces/legacyanimations/mixin/BipedEntityModelMixin.java @@ -0,0 +1,188 @@ +package com.mixces.legacyanimations.mixin; + +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; +import com.llamalad7.mixinextras.injector.WrapWithCondition; +import com.llamalad7.mixinextras.sugar.Local; +import com.mixces.legacyanimations.config.LegacyAnimationsSettings; +import net.minecraft.client.model.ModelPart; +import net.minecraft.client.render.entity.model.BipedEntityModel; +import net.minecraft.entity.LivingEntity; +import net.minecraft.util.Arm; +import net.minecraft.util.Hand; +import org.objectweb.asm.Opcodes; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.*; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(BipedEntityModel.class) +public abstract class BipedEntityModelMixin { + + @Shadow protected abstract void positionRightArm(T entity); + @Shadow protected abstract void positionLeftArm(T entity); + @Shadow public BipedEntityModel.ArmPose leftArmPose; + @Shadow public BipedEntityModel.ArmPose rightArmPose; + + @ModifyExpressionValue( + method = "setAngles(Lnet/minecraft/entity/LivingEntity;FFFFF)V", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/entity/LivingEntity;isUsingItem()Z", + ordinal = 0 + ) + ) + public boolean removeCondition(boolean original) { + return !LegacyAnimationsSettings.CONFIG.instance().oldSneaking && original; + } + + @WrapWithCondition( + method = "setAngles(Lnet/minecraft/entity/LivingEntity;FFFFF)V", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/render/entity/model/BipedEntityModel;positionRightArm(Lnet/minecraft/entity/LivingEntity;)V" + ) + ) + public boolean removeMethodCall1(BipedEntityModel instance, T entity) { + return !LegacyAnimationsSettings.CONFIG.instance().oldSneaking; + } + + @WrapWithCondition( + method = "setAngles(Lnet/minecraft/entity/LivingEntity;FFFFF)V", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/render/entity/model/BipedEntityModel;positionLeftArm(Lnet/minecraft/entity/LivingEntity;)V" + ) + ) + public boolean removeMethodCall2(BipedEntityModel instance, T entity) { + return !LegacyAnimationsSettings.CONFIG.instance().oldSneaking; + } + + @Inject( + method = "setAngles(Lnet/minecraft/entity/LivingEntity;FFFFF)V", + at = @At( + value = "JUMP", + opcode = Opcodes.IF_ACMPEQ, + ordinal = 0 + ) + ) + private void positionRightArm_oldBowSwing(T livingEntity, float f, float g, float h, float i, float j, CallbackInfo ci) { + if (LegacyAnimationsSettings.CONFIG.instance().oldSneaking) { + boolean bl3 = livingEntity.getMainArm() == Arm.RIGHT; + if (livingEntity.isUsingItem()) { + boolean bl4 = livingEntity.getActiveHand() == Hand.MAIN_HAND; + if (bl4 == bl3) { + positionRightArm(livingEntity); + } else { + positionLeftArm(livingEntity); + } + } else { + boolean bl4 = bl3 ? leftArmPose.isTwoHanded() : rightArmPose.isTwoHanded(); + if (bl3 != bl4) { + positionLeftArm(livingEntity); + positionRightArm(livingEntity); + } else { + positionRightArm(livingEntity); + positionLeftArm(livingEntity); + } + } + } + } + + @ModifyConstant( + method = "setAngles(Lnet/minecraft/entity/LivingEntity;FFFFF)V", + constant = @Constant( + floatValue = 12.2F + ) + ) + private float oldSneakValue1(float constant) { + return LegacyAnimationsSettings.CONFIG.instance().oldSneaking ? 9.0F : constant; + } + + @ModifyConstant( + method = "setAngles(Lnet/minecraft/entity/LivingEntity;FFFFF)V", + slice = @Slice( + from = @At( + value = "FIELD", + opcode = Opcodes.PUTFIELD, + target = "Lnet/minecraft/client/model/ModelPart;pitch:F", + ordinal = 15 + ), + to = @At( + value = "FIELD", + opcode = Opcodes.PUTFIELD, + target = "Lnet/minecraft/client/model/ModelPart;pivotY:F", + ordinal = 6 + ) + ), + constant = @Constant( + floatValue = 0.0F + ) + ) + private float oldSneakValue2(float constant) { + return LegacyAnimationsSettings.CONFIG.instance().oldSneaking ? 0.1F : constant; + } + + @ModifyConstant( + method = "setAngles(Lnet/minecraft/entity/LivingEntity;FFFFF)V", + constant = @Constant( + floatValue = 4.2F + ) + ) + private float oldSneakValue3(float constant) { + return LegacyAnimationsSettings.CONFIG.instance().oldSneaking ? 1.0F : constant; + } + + @WrapWithCondition( + method = "setAngles(Lnet/minecraft/entity/LivingEntity;FFFFF)V", + slice = @Slice( + from = @At( + value = "FIELD", + opcode = Opcodes.PUTFIELD, + target = "Lnet/minecraft/client/model/ModelPart;pivotY:F", + ordinal = 3 + ), + to = @At( + value = "FIELD", + opcode = Opcodes.PUTFIELD, + target = "Lnet/minecraft/client/model/ModelPart;pitch:F", + ordinal = 15 + ) + ), + at = @At( + value = "FIELD", + opcode = Opcodes.PUTFIELD, + target = "Lnet/minecraft/client/model/ModelPart;pivotY:F" + ) + ) + public boolean removeFields1(ModelPart instance, float value) { + return !LegacyAnimationsSettings.CONFIG.instance().oldSneaking; + } + + @WrapWithCondition( + method = "setAngles(Lnet/minecraft/entity/LivingEntity;FFFFF)V", + slice = @Slice( + from = @At( + value = "FIELD", + opcode = Opcodes.PUTFIELD, + target = "Lnet/minecraft/client/model/ModelPart;pivotY:F", + ordinal = 9 + ), + to = @At( + value = "FIELD", + opcode = Opcodes.GETFIELD, + target = "Lnet/minecraft/client/render/entity/model/BipedEntityModel;rightArmPose:Lnet/minecraft/client/render/entity/model/BipedEntityModel$ArmPose;", + ordinal = 1 + ) + ), + at = @At( + value = "FIELD", + opcode = Opcodes.PUTFIELD, + target = "Lnet/minecraft/client/model/ModelPart;pivotY:F" + ) + ) + public boolean removeFields2(ModelPart instance, float value) { + return !LegacyAnimationsSettings.CONFIG.instance().oldSneaking; + } + +} \ No newline at end of file diff --git a/src/main/java/com/mixces/legacyanimations/mixin/BuiltinModelItemRendererMixin.java b/src/main/java/com/mixces/legacyanimations/mixin/BuiltinModelItemRendererMixin.java new file mode 100644 index 0000000..22446e8 --- /dev/null +++ b/src/main/java/com/mixces/legacyanimations/mixin/BuiltinModelItemRendererMixin.java @@ -0,0 +1,26 @@ +package com.mixces.legacyanimations.mixin; + +import net.minecraft.client.render.item.BuiltinModelItemRenderer; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(BuiltinModelItemRenderer.class) +public class BuiltinModelItemRendererMixin { + +// @Inject(method = "render", at = @At(value = "HEAD"), cancellable = true) +// private void render_disableShield(ItemStack stack, ModelTransformationMode mode, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, CallbackInfo ci) { +// if (LegacyAnimationsSettings.CONFIG.instance().hideShields) { +// if ( +// mode == ModelTransformationMode.FIRST_PERSON_LEFT_HAND || +// mode == ModelTransformationMode.FIRST_PERSON_RIGHT_HAND || +// mode == ModelTransformationMode.THIRD_PERSON_LEFT_HAND || +// mode == ModelTransformationMode.THIRD_PERSON_RIGHT_HAND +// ) +// { +// if (stack.isOf(Items.SHIELD)) { +// ci.cancel(); +// } +// } +// } +// } + +} diff --git a/src/main/java/com/mixces/legacyanimations/mixin/CameraMixin.java b/src/main/java/com/mixces/legacyanimations/mixin/CameraMixin.java new file mode 100644 index 0000000..bbd30a9 --- /dev/null +++ b/src/main/java/com/mixces/legacyanimations/mixin/CameraMixin.java @@ -0,0 +1,27 @@ +package com.mixces.legacyanimations.mixin; + +import com.mixces.legacyanimations.config.LegacyAnimationsSettings; +import net.minecraft.client.render.Camera; +import net.minecraft.entity.Entity; +import org.objectweb.asm.Opcodes; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(Camera.class) +public abstract class CameraMixin { + + @Shadow private float cameraY; + @Shadow private Entity focusedEntity; + + @Inject(method = "updateEyeHeight", at = @At(value = "FIELD", opcode = Opcodes.PUTFIELD, target = "Lnet/minecraft/client/render/Camera;cameraY:F"), cancellable = true) + private void addOldSneakCalculation(CallbackInfo ci) { + if (LegacyAnimationsSettings.CONFIG.instance().oldSneaking && focusedEntity.getStandingEyeHeight() < cameraY) { + cameraY = focusedEntity.getStandingEyeHeight(); + ci.cancel(); + } + } + +} diff --git a/src/main/java/com/mixces/legacyanimations/mixin/ClientPlayerInteractionManagerMixin.java b/src/main/java/com/mixces/legacyanimations/mixin/ClientPlayerInteractionManagerMixin.java new file mode 100644 index 0000000..35a889d --- /dev/null +++ b/src/main/java/com/mixces/legacyanimations/mixin/ClientPlayerInteractionManagerMixin.java @@ -0,0 +1,35 @@ +package com.mixces.legacyanimations.mixin; + +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; +import net.minecraft.client.network.ClientPlayerInteractionManager; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(ClientPlayerInteractionManager.class) +public abstract class ClientPlayerInteractionManagerMixin { + +// @Shadow @Final private MinecraftClient client; +// @Shadow private int blockBreakingCooldown; + + @Shadow public abstract boolean isBreakingBlock(); + + @ModifyExpressionValue(method = "updateBlockBreakingProgress", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerInteractionManager;isCurrentlyBreaking(Lnet/minecraft/util/math/BlockPos;)Z")) + public boolean fixBreakingBlockCheck(boolean original) { + return original && isBreakingBlock(); + } + +// @SuppressWarnings("ConstantConditions") +// @Inject(method = "updateBlockBreakingProgress", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerInteractionManager;syncSelectedSlot()V", shift = At.Shift.AFTER), cancellable = true) +// public void updateBlockBreakingProgress_cancelDestroy(BlockPos pos, Direction direction, CallbackInfoReturnable cir) { +// if (LegacyAnimationsSettings.CONFIG.instance().punchDuringUsage && client.player.isUsingItem()) { +// cancelBlockBreaking(); +// blockBreakingCooldown = 5; +// cir.setReturnValue(true); +// } +// } + +// @Shadow public abstract void cancelBlockBreaking(); +// @Shadow protected abstract boolean isCurrentlyBreaking(BlockPos pos); + +} diff --git a/src/main/java/com/mixces/oldanimations/mixin/DebugHudMixin.java b/src/main/java/com/mixces/legacyanimations/mixin/DebugHudMixin.java similarity index 77% rename from src/main/java/com/mixces/oldanimations/mixin/DebugHudMixin.java rename to src/main/java/com/mixces/legacyanimations/mixin/DebugHudMixin.java index 7127395..024ffbc 100644 --- a/src/main/java/com/mixces/oldanimations/mixin/DebugHudMixin.java +++ b/src/main/java/com/mixces/legacyanimations/mixin/DebugHudMixin.java @@ -1,7 +1,7 @@ -package com.mixces.oldanimations.mixin; +package com.mixces.legacyanimations.mixin; import com.llamalad7.mixinextras.injector.WrapWithCondition; -import com.mixces.oldanimations.config.OldAnimationsSettings; +import com.mixces.legacyanimations.config.LegacyAnimationsSettings; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.hud.DebugHud; import org.spongepowered.asm.mixin.Mixin; @@ -13,12 +13,12 @@ public class DebugHudMixin { @WrapWithCondition(method = "drawText", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;fill(IIIII)V")) private boolean removeDebugBackground(DrawContext instance, int x1, int y1, int x2, int y2, int color) { - return !OldAnimationsSettings.CONFIG.instance().oldDebug; + return !LegacyAnimationsSettings.CONFIG.instance().oldDebug; } @ModifyArg(method = "drawText", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;drawText(Lnet/minecraft/client/font/TextRenderer;Ljava/lang/String;IIIZ)I"), index = 5) private boolean addDebugShadow(boolean shadow) { - return OldAnimationsSettings.CONFIG.instance().oldDebug; + return LegacyAnimationsSettings.CONFIG.instance().oldDebug; } } diff --git a/src/main/java/com/mixces/legacyanimations/mixin/EntityMixin.java b/src/main/java/com/mixces/legacyanimations/mixin/EntityMixin.java new file mode 100644 index 0000000..4767e52 --- /dev/null +++ b/src/main/java/com/mixces/legacyanimations/mixin/EntityMixin.java @@ -0,0 +1,34 @@ +package com.mixces.legacyanimations.mixin; + +import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import com.mixces.legacyanimations.config.LegacyAnimationsSettings; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityPose; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.data.DataTracker; +import net.minecraft.entity.data.TrackedData; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(Entity.class) +public class EntityMixin { + + @Final @Shadow private EntityType type; + @Final @Shadow protected DataTracker dataTracker; + @Final @Shadow protected static TrackedData POSE; + + @ModifyReturnValue(method = "getPose", at = @At("RETURN")) + public EntityPose revertSwimPose(EntityPose original) { + if (LegacyAnimationsSettings.CONFIG.instance().oldSwim && type == EntityType.PLAYER) { + EntityPose pose = dataTracker.get(POSE); + if (pose == EntityPose.SWIMMING) { + pose = EntityPose.STANDING; + } + return pose; + } + return original; + } + +} diff --git a/src/main/java/com/mixces/legacyanimations/mixin/FishingBobberEntityRendererMixin.java b/src/main/java/com/mixces/legacyanimations/mixin/FishingBobberEntityRendererMixin.java new file mode 100644 index 0000000..4132678 --- /dev/null +++ b/src/main/java/com/mixces/legacyanimations/mixin/FishingBobberEntityRendererMixin.java @@ -0,0 +1,31 @@ +package com.mixces.legacyanimations.mixin; + +import net.minecraft.client.render.entity.EntityRenderer; +import net.minecraft.client.render.entity.EntityRendererFactory; +import net.minecraft.client.render.entity.FishingBobberEntityRenderer; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.projectile.FishingBobberEntity; +import net.minecraft.util.math.MathHelper; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +@Mixin(FishingBobberEntityRenderer.class) +public abstract class FishingBobberEntityRendererMixin extends EntityRenderer { + + protected FishingBobberEntityRendererMixin(EntityRendererFactory.Context ctx) { + super(ctx); + } + + @Redirect( + method = "render(Lnet/minecraft/entity/projectile/FishingBobberEntity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/entity/player/PlayerEntity;getStandingEyeHeight()F" + ) + ) + public float useInterpolatedEyeHeight(PlayerEntity instance) { + return MathHelper.lerp(dispatcher.camera.getLastTickDelta(), ((AccessorCamera) dispatcher.camera).getLastCameraY(), ((AccessorCamera) dispatcher.camera).getCameraY()); + } + +} diff --git a/src/main/java/com/mixces/legacyanimations/mixin/HeldItemRendererMixin.java b/src/main/java/com/mixces/legacyanimations/mixin/HeldItemRendererMixin.java new file mode 100644 index 0000000..3beee04 --- /dev/null +++ b/src/main/java/com/mixces/legacyanimations/mixin/HeldItemRendererMixin.java @@ -0,0 +1,79 @@ +package com.mixces.legacyanimations.mixin; + +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +import com.llamalad7.mixinextras.sugar.Local; +import com.mixces.legacyanimations.config.LegacyAnimationsSettings; +import net.minecraft.client.network.AbstractClientPlayerEntity; +import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.item.HeldItemRenderer; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Arm; +import net.minecraft.util.Hand; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.Slice; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(HeldItemRenderer.class) +public abstract class HeldItemRendererMixin { + + @Shadow protected abstract void applySwingOffset(MatrixStack matrices, Arm arm, float swingProgress); + + @Inject( + method = "renderFirstPersonItem", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/render/item/HeldItemRenderer;applyEquipOffset(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/util/Arm;F)V", + shift = At.Shift.AFTER + ) + , + slice = @Slice( + from = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/render/item/HeldItemRenderer;applyEatOrDrinkTransformation(Lnet/minecraft/client/util/math/MatrixStack;FLnet/minecraft/util/Arm;Lnet/minecraft/item/ItemStack;)V" + ), + to = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/render/item/HeldItemRenderer;applyBrushTransformation(Lnet/minecraft/client/util/math/MatrixStack;FLnet/minecraft/util/Arm;Lnet/minecraft/item/ItemStack;F)V" + ) + ) + ) + private void addSwingOffset(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci, + @Local Arm arm) { + if (LegacyAnimationsSettings.CONFIG.instance().punchDuringUsage) { + applySwingOffset(matrices, arm, swingProgress); + } +// if (item.getUseAction() == UseAction.BLOCK) { +// matrices.translate(1 * -0.14142136F, 0.08F, 0.14142136F); +// matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(-102.25F)); +// matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(1 * 13.365F)); +// matrices.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(1 * 78.05F)); +// } + } + + @WrapOperation( + method = "updateHeldItems", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/network/ClientPlayerEntity;getAttackCooldownProgress(F)F" + ) + ) + public float removeCoolDownSpeed(ClientPlayerEntity instance, float v, Operation original) { + if (LegacyAnimationsSettings.CONFIG.instance().noCooldown) + return 1.0F; + return original.call(instance, v); + } + +// @Inject(method = "resetEquipProgress", at = @At("HEAD"), cancellable = true) +// private void resetEquipProgress_removeDelay(Hand hand, CallbackInfo ci) { +// if (LegacyAnimationsSettings.CONFIG.instance().noCooldown) { +// ci.cancel(); +// } +// } + +} diff --git a/src/main/java/com/mixces/legacyanimations/mixin/InGameHudMixin.java b/src/main/java/com/mixces/legacyanimations/mixin/InGameHudMixin.java new file mode 100644 index 0000000..bf59212 --- /dev/null +++ b/src/main/java/com/mixces/legacyanimations/mixin/InGameHudMixin.java @@ -0,0 +1,44 @@ +package com.mixces.legacyanimations.mixin; + +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; +import com.llamalad7.mixinextras.injector.WrapWithCondition; +import com.mixces.legacyanimations.config.LegacyAnimationsSettings; +import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.hud.InGameHud; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.*; + +@Mixin(InGameHud.class) +public abstract class InGameHudMixin { + +// @WrapOperation(method = "renderHotbar", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;isEmpty()Z")) +// private boolean cancelOffhandHotbar(ItemStack itemStack, Operation original) { +// ClientPlayerEntity player = MinecraftClient.getInstance().player; +// assert player != null; +// return original.call(itemStack) || LegacyAnimationsSettings.CONFIG.instance().hideShieldHotbar && player.getOffHandStack().isOf(Items.SHIELD); +// } + + @WrapWithCondition( + method = "renderHealthBar", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/gui/hud/InGameHud;drawHeart(Lnet/minecraft/client/gui/DrawContext;Lnet/minecraft/client/gui/hud/InGameHud$HeartType;IIZZZ)V", + ordinal = 2 + ) + ) + private boolean legacyAnimations$cancelFlash(InGameHud instance, DrawContext context, InGameHud.HeartType type, int x, int y, boolean hardcore, boolean blinking, boolean half) { + return !LegacyAnimationsSettings.CONFIG.instance().oldHearts; + } + + @ModifyExpressionValue( + method = "renderCrosshair", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/option/Perspective;isFirstPerson()Z" + ) + ) + private boolean removePerspectiveCheck(boolean original) { + return LegacyAnimationsSettings.CONFIG.instance().perspectiveCrosshair || original; + } + +} diff --git a/src/main/java/com/mixces/oldanimations/mixin/LivingEntityInvoker.java b/src/main/java/com/mixces/legacyanimations/mixin/LivingEntityInvoker.java similarity index 86% rename from src/main/java/com/mixces/oldanimations/mixin/LivingEntityInvoker.java rename to src/main/java/com/mixces/legacyanimations/mixin/LivingEntityInvoker.java index d61ebcf..3c7596a 100644 --- a/src/main/java/com/mixces/oldanimations/mixin/LivingEntityInvoker.java +++ b/src/main/java/com/mixces/legacyanimations/mixin/LivingEntityInvoker.java @@ -1,4 +1,4 @@ -package com.mixces.oldanimations.mixin; +package com.mixces.legacyanimations.mixin; import net.minecraft.entity.LivingEntity; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/com/mixces/legacyanimations/mixin/LivingEntityMixin.java b/src/main/java/com/mixces/legacyanimations/mixin/LivingEntityMixin.java new file mode 100644 index 0000000..0369de8 --- /dev/null +++ b/src/main/java/com/mixces/legacyanimations/mixin/LivingEntityMixin.java @@ -0,0 +1,27 @@ +package com.mixces.legacyanimations.mixin; + +import com.mixces.legacyanimations.config.LegacyAnimationsSettings; +import net.minecraft.entity.LivingEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.Constant; +import org.spongepowered.asm.mixin.injection.ModifyConstant; + +@Mixin(LivingEntity.class) +public abstract class LivingEntityMixin { + +// @ModifyConstant(method = "isBlocking", constant = @Constant(intValue = 5)) +// private int isBlocking_fixSync(int constant) { +// if (LegacyAnimationsSettings.CONFIG.instance().noCooldown) { +// return 0; +// } +// return constant; +// } + + @ModifyConstant(method = "tick", constant = @Constant(floatValue = 180.0f, ordinal = 0)) + private float revertBackwardsWalk(float constant) { + if (LegacyAnimationsSettings.CONFIG.instance().oldWalking) + return 0.0F; + return constant; + } + +} diff --git a/src/main/java/com/mixces/legacyanimations/mixin/LivingEntityRendererMixin.java b/src/main/java/com/mixces/legacyanimations/mixin/LivingEntityRendererMixin.java new file mode 100644 index 0000000..f2c2fe5 --- /dev/null +++ b/src/main/java/com/mixces/legacyanimations/mixin/LivingEntityRendererMixin.java @@ -0,0 +1,52 @@ +package com.mixces.legacyanimations.mixin; + +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; +import com.mixces.legacyanimations.config.LegacyAnimationsSettings; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.render.Camera; +import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.entity.LivingEntityRenderer; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.util.math.MathHelper; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(LivingEntityRenderer.class) +public abstract class LivingEntityRendererMixin { + + @ModifyExpressionValue( + method = "render(Lnet/minecraft/entity/LivingEntity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/entity/LivingEntity;isAlive()Z" + ) + ) + private boolean oldDeathLimbs(boolean original) { + return LegacyAnimationsSettings.CONFIG.instance().oldDeath || original; + } + + @Inject( + method = "render(Lnet/minecraft/entity/LivingEntity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/util/math/MatrixStack;translate(FFF)V", + ordinal = 1 + ) + ) + private void updateThirdPersonSneak(T livingEntity, float f, float g, MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, CallbackInfo ci) { + if (LegacyAnimationsSettings.CONFIG.instance().oldSneaking) { + PlayerEntity clientPlayer = MinecraftClient.getInstance().player; + if (livingEntity instanceof PlayerEntity && clientPlayer != null) { + Camera camera = MinecraftClient.getInstance().gameRenderer.getCamera(); + boolean player = livingEntity.getName().equals(clientPlayer.getName()); + float eyeHeight = player ? MathHelper.lerp(g, ((AccessorCamera) camera).getLastCameraY(), ((AccessorCamera) camera).getCameraY()) : livingEntity.getStandingEyeHeight(); + matrixStack.translate(0.0F, 1.62F - eyeHeight, 0.0F); + } + } + } + +} diff --git a/src/main/java/com/mixces/oldanimations/mixin/MinecraftClientMixin.java b/src/main/java/com/mixces/legacyanimations/mixin/MinecraftClientMixin.java similarity index 74% rename from src/main/java/com/mixces/oldanimations/mixin/MinecraftClientMixin.java rename to src/main/java/com/mixces/legacyanimations/mixin/MinecraftClientMixin.java index 76bb677..77dc9a4 100644 --- a/src/main/java/com/mixces/oldanimations/mixin/MinecraftClientMixin.java +++ b/src/main/java/com/mixces/legacyanimations/mixin/MinecraftClientMixin.java @@ -1,12 +1,12 @@ -package com.mixces.oldanimations.mixin; +package com.mixces.legacyanimations.mixin; -import com.llamalad7.mixinextras.injector.wrapoperation.Operation; -import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; -import com.mixces.oldanimations.config.OldAnimationsSettings; +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; +import com.mixces.legacyanimations.config.LegacyAnimationsSettings; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.network.ClientPlayerInteractionManager; import net.minecraft.client.particle.ParticleManager; +import net.minecraft.client.render.RenderTickCounter; import net.minecraft.client.world.ClientWorld; import net.minecraft.util.Hand; import net.minecraft.util.hit.BlockHitResult; @@ -31,7 +31,7 @@ public class MinecraftClientMixin { @Inject(method = "handleBlockBreaking", at = @At("HEAD")) public void handleBlockBreaking_blockHitAnimation(boolean breaking, CallbackInfo ci) { - if (OldAnimationsSettings.CONFIG.instance().punchDuringUsage && player.isUsingItem()) { + if (LegacyAnimationsSettings.CONFIG.instance().punchDuringUsage && player.isUsingItem()) { interactionManager.cancelBlockBreaking(); if (breaking && crosshairTarget != null && crosshairTarget.getType() == HitResult.Type.BLOCK) { Hand hand = player.preferredHand; @@ -51,9 +51,11 @@ public void handleBlockBreaking_blockHitAnimation(boolean breaking, CallbackInfo } } - @WrapOperation(method = "doItemUse", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerInteractionManager;isBreakingBlock()Z")) - private boolean doItemUse_allowPunching(ClientPlayerInteractionManager instance, Operation original) { - return !OldAnimationsSettings.CONFIG.instance().punchDuringUsage && original.call(instance); + @Shadow @Final private RenderTickCounter renderTickCounter; + + @ModifyExpressionValue(method = "doItemUse", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerInteractionManager;isBreakingBlock()Z")) + private boolean interruptBlockBreaking(boolean original) { + return !LegacyAnimationsSettings.CONFIG.instance().punchDuringUsage && original; } } \ No newline at end of file diff --git a/src/main/java/com/mixces/legacyanimations/mixin/PlayerEntityMixin.java b/src/main/java/com/mixces/legacyanimations/mixin/PlayerEntityMixin.java new file mode 100644 index 0000000..6e3435e --- /dev/null +++ b/src/main/java/com/mixces/legacyanimations/mixin/PlayerEntityMixin.java @@ -0,0 +1,27 @@ +package com.mixces.legacyanimations.mixin; + +import com.llamalad7.mixinextras.injector.ModifyReturnValue; +import com.mixces.legacyanimations.config.LegacyAnimationsSettings; +import net.minecraft.entity.player.PlayerEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(PlayerEntity.class) +public abstract class PlayerEntityMixin { + +// @Inject(method = "resetLastAttackedTicks", at = @At("HEAD"), cancellable = true) +// private void resetLastAttackedTicks_removeDelay(CallbackInfo ci) { +// ci.cancel(); +// } + @ModifyReturnValue( + method = "getActiveEyeHeight", + at = @At( + value = "RETURN", + ordinal = 1 + ) + ) + private float increaseEyeHeight(float constant) { + return LegacyAnimationsSettings.CONFIG.instance().oldSneaking ? 1.54F : constant; + } + +} diff --git a/src/main/java/com/mixces/legacyanimations/mixin/PlayerEntityRendererMixin.java b/src/main/java/com/mixces/legacyanimations/mixin/PlayerEntityRendererMixin.java new file mode 100644 index 0000000..bede18f --- /dev/null +++ b/src/main/java/com/mixces/legacyanimations/mixin/PlayerEntityRendererMixin.java @@ -0,0 +1,16 @@ +package com.mixces.legacyanimations.mixin; + +import net.minecraft.client.render.entity.PlayerEntityRenderer; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(PlayerEntityRenderer.class) +public class PlayerEntityRendererMixin { + +// @Inject(method = "getArmPose", at = @At(value = "HEAD"), cancellable = true) +// private static void getArmPose_blockArm(AbstractClientPlayerEntity player, Hand hand, CallbackInfoReturnable cir) { +// if (LegacyAnimationsSettings.CONFIG.instance().hideShields && player.getStackInHand(hand).getItem() instanceof ShieldItem) { +// cir.setReturnValue(BipedEntityModel.ArmPose.EMPTY); +// } +// } + +} diff --git a/src/main/java/com/mixces/legacyanimations/mixin/SwordItemMixin.java b/src/main/java/com/mixces/legacyanimations/mixin/SwordItemMixin.java new file mode 100644 index 0000000..82c42c9 --- /dev/null +++ b/src/main/java/com/mixces/legacyanimations/mixin/SwordItemMixin.java @@ -0,0 +1,44 @@ +package com.mixces.legacyanimations.mixin; + +import net.minecraft.item.Item; +import net.minecraft.item.SwordItem; +import org.spongepowered.asm.mixin.Mixin; + +@Mixin(SwordItem.class) +public class SwordItemMixin extends Item { + + public SwordItemMixin(Settings settings) { + super(settings); + } + +// @Override +// public UseAction getUseAction(ItemStack stack) { +// ClientPlayerEntity player = MinecraftClient.getInstance().player; +// assert player != null; +// if ((LegacyAnimationsSettings.CONFIG.instance().oldSwordBlock && !LegacyAnimationsSettings.CONFIG.instance().blockWithShieldOnly) || +// (LegacyAnimationsSettings.CONFIG.instance().oldSwordBlock && player.getOffHandStack().isOf(Items.SHIELD))) +// return UseAction.BLOCK; +// return UseAction.NONE; +// } +// +// @Override +// public int getMaxUseTime(ItemStack stack) { +// if (LegacyAnimationsSettings.CONFIG.instance().oldSwordBlock) +// return 72000; +// return 0; +// } +// +// @Override +// public TypedActionResult use(World world, PlayerEntity user, Hand hand) { +// ClientPlayerEntity player = MinecraftClient.getInstance().player; +// assert player != null; +// if ((LegacyAnimationsSettings.CONFIG.instance().oldSwordBlock && !LegacyAnimationsSettings.CONFIG.instance().blockWithShieldOnly) || +// (LegacyAnimationsSettings.CONFIG.instance().oldSwordBlock && player.getOffHandStack().isOf(Items.SHIELD))) { +// ItemStack itemStack = user.getStackInHand(hand); +// user.setCurrentHand(hand); +// return TypedActionResult.consume(itemStack); +// } +// return TypedActionResult.pass(user.getStackInHand(hand)); +// } + +} diff --git a/src/main/java/com/mixces/oldanimations/OldAnimations.java b/src/main/java/com/mixces/oldanimations/OldAnimations.java deleted file mode 100644 index 56fd57e..0000000 --- a/src/main/java/com/mixces/oldanimations/OldAnimations.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.mixces.oldanimations; - -import com.mixces.oldanimations.config.OldAnimationsSettings; -import net.fabricmc.api.ModInitializer; - -public class OldAnimations implements ModInitializer { - - @Override - public void onInitialize() { - OldAnimationsSettings.CONFIG.load(); - } - -} \ No newline at end of file diff --git a/src/main/java/com/mixces/oldanimations/mixin/BipedEntityModelMixin.java b/src/main/java/com/mixces/oldanimations/mixin/BipedEntityModelMixin.java deleted file mode 100644 index de2f87b..0000000 --- a/src/main/java/com/mixces/oldanimations/mixin/BipedEntityModelMixin.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.mixces.oldanimations.mixin; - -import com.mixces.oldanimations.config.OldAnimationsSettings; -import net.minecraft.client.model.ModelPart; -import net.minecraft.client.render.entity.model.BipedEntityModel; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(BipedEntityModel.class) -public abstract class BipedEntityModelMixin { - -// @Shadow @Final public ModelPart rightArm; -// @Shadow @Final public ModelPart leftArm; -// -// @Inject(method = {"positionLeftArm"}, at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/entity/model/BipedEntityModel;rightArm:Lnet/minecraft/client/model/ModelPart;", ordinal = 0)) -// private void positionLeftArm_oldBowSwing(CallbackInfo ci) { -// if (OldAnimationsSettings.CONFIG.instance()..punchDuringUsage) { -// rightArm.roll = 0.0F; -// leftArm.roll = 0.0F; -// } -// } -// -// @Inject(method = "positionRightArm", at = @At(value = "FIELD", target = "Lnet/minecraft/client/render/entity/model/BipedEntityModel;rightArm:Lnet/minecraft/client/model/ModelPart;", ordinal = 10)) -// private void positionRightArm_oldBowSwing(CallbackInfo ci) { -// if (OldAnimationsSettings.CONFIG.instance().punchDuringUsage) { -// rightArm.roll = 0.0F; -// leftArm.roll = 0.0F; -// } -// } - -} \ No newline at end of file diff --git a/src/main/java/com/mixces/oldanimations/mixin/BuiltinModelItemRendererMixin.java b/src/main/java/com/mixces/oldanimations/mixin/BuiltinModelItemRendererMixin.java deleted file mode 100644 index cec6917..0000000 --- a/src/main/java/com/mixces/oldanimations/mixin/BuiltinModelItemRendererMixin.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.mixces.oldanimations.mixin; - -import com.mixces.oldanimations.config.OldAnimationsSettings; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.item.BuiltinModelItemRenderer; -import net.minecraft.client.render.model.json.ModelTransformationMode; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(BuiltinModelItemRenderer.class) -public class BuiltinModelItemRendererMixin { - - @Inject(method = "render", at = @At(value = "HEAD"), cancellable = true) - private void render_disableShield(ItemStack stack, ModelTransformationMode mode, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, CallbackInfo ci) { - if (OldAnimationsSettings.CONFIG.instance().hideShields) { - if (mode == ModelTransformationMode.FIRST_PERSON_LEFT_HAND || mode == ModelTransformationMode.FIRST_PERSON_RIGHT_HAND || - mode == ModelTransformationMode.THIRD_PERSON_LEFT_HAND || mode == ModelTransformationMode.THIRD_PERSON_RIGHT_HAND) { - if (stack.isOf(Items.SHIELD)) { - ci.cancel(); - } - } - } - } - -} diff --git a/src/main/java/com/mixces/oldanimations/mixin/CameraMixin.java b/src/main/java/com/mixces/oldanimations/mixin/CameraMixin.java deleted file mode 100644 index 52fae3d..0000000 --- a/src/main/java/com/mixces/oldanimations/mixin/CameraMixin.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.mixces.oldanimations.mixin; - -import com.mixces.oldanimations.config.OldAnimationsSettings; -import net.minecraft.client.render.Camera; -import net.minecraft.entity.Entity; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(Camera.class) -public abstract class CameraMixin { - - @Shadow private float cameraY; - @Shadow public abstract Entity getFocusedEntity(); - - @Inject(method = "updateEyeHeight", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;getStandingEyeHeight()F"), cancellable = true) - private void updateEyeHeight_oldSneak(CallbackInfo ci) { - if (OldAnimationsSettings.CONFIG.instance().oldSneaking && getFocusedEntity().getStandingEyeHeight() < cameraY) { - cameraY = getFocusedEntity().getStandingEyeHeight(); - ci.cancel(); - } - } - -} diff --git a/src/main/java/com/mixces/oldanimations/mixin/ClientPlayerInteractionManagerMixin.java b/src/main/java/com/mixces/oldanimations/mixin/ClientPlayerInteractionManagerMixin.java deleted file mode 100644 index 9cafd84..0000000 --- a/src/main/java/com/mixces/oldanimations/mixin/ClientPlayerInteractionManagerMixin.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.mixces.oldanimations.mixin; - -import com.mixces.oldanimations.config.OldAnimationsSettings; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.network.ClientPlayerInteractionManager; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.Redirect; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -@Mixin(ClientPlayerInteractionManager.class) -public abstract class ClientPlayerInteractionManagerMixin { - - @Shadow @Final private MinecraftClient client; - @Shadow private int blockBreakingCooldown; - - @Inject(method = {"breakBlock", "attackBlock", "isCurrentlyBreaking"}, at = @At("HEAD")) - private void breakBlock_attackBlock_isCurrentlyBreaking_damageSync(CallbackInfoReturnable cir) { - syncSelectedSlot(); - } - - // can probably be done with WrapOperation (see below) but I don't know exactly what this is for and don't know how to test - @Redirect(method = "updateBlockBreakingProgress", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerInteractionManager;isCurrentlyBreaking(Lnet/minecraft/util/math/BlockPos;)Z")) - public boolean updateBlockBreakingProgress_fixDestroy(ClientPlayerInteractionManager instance, BlockPos pos) { - return isCurrentlyBreaking(pos) && isBreakingBlock(); - } - -// @WrapOperation(method = "updateBlockBreakingProgress", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerInteractionManager;isCurrentlyBreaking(Lnet/minecraft/util/math/BlockPos;)Z")) -// public boolean updateBlockBreakingProgress_fixDestroy(ClientPlayerInteractionManager instance, BlockPos pos, Operation original) { -// return original.call(instance, pos) && isBreakingBlock(); -// } - - @SuppressWarnings("ConstantConditions") - @Inject(method = "updateBlockBreakingProgress", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerInteractionManager;syncSelectedSlot()V", shift = At.Shift.AFTER), cancellable = true) - public void updateBlockBreakingProgress_cancelDestroy(BlockPos pos, Direction direction, CallbackInfoReturnable cir) { - if (OldAnimationsSettings.CONFIG.instance().punchDuringUsage && client.player.isUsingItem()) { - cancelBlockBreaking(); - blockBreakingCooldown = 5; - cir.setReturnValue(true); - } - } - - @Shadow public abstract boolean isBreakingBlock(); - @Shadow public abstract void cancelBlockBreaking(); - @Shadow protected abstract void syncSelectedSlot(); - @Shadow protected abstract boolean isCurrentlyBreaking(BlockPos pos); - -} diff --git a/src/main/java/com/mixces/oldanimations/mixin/HeldItemRendererMixin.java b/src/main/java/com/mixces/oldanimations/mixin/HeldItemRendererMixin.java deleted file mode 100644 index e38c396..0000000 --- a/src/main/java/com/mixces/oldanimations/mixin/HeldItemRendererMixin.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.mixces.oldanimations.mixin; - -import com.llamalad7.mixinextras.injector.ModifyExpressionValue; -import com.mixces.oldanimations.config.OldAnimationsSettings; -import net.minecraft.client.network.AbstractClientPlayerEntity; -import net.minecraft.client.render.VertexConsumerProvider; -import net.minecraft.client.render.item.HeldItemRenderer; -import net.minecraft.client.util.math.MatrixStack; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Arm; -import net.minecraft.util.Hand; -import net.minecraft.util.UseAction; -import net.minecraft.util.math.RotationAxis; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; - -@Mixin(HeldItemRenderer.class) -public abstract class HeldItemRendererMixin { - - @Shadow protected abstract void applySwingOffset(MatrixStack matrices, Arm arm, float swingProgress); - - @Inject(method = "renderFirstPersonItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/item/HeldItemRenderer;applyEquipOffset(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/util/Arm;F)V", shift = At.Shift.AFTER), locals = LocalCapture.CAPTURE_FAILHARD) - private void renderItem_bowHit(AbstractClientPlayerEntity player, float tickDelta, float pitch, Hand hand, float swingProgress, ItemStack item, float equipProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci, boolean bl) { - Arm arm = bl ? player.getMainArm() : player.getMainArm().getOpposite(); - boolean bl2 = arm == Arm.RIGHT; - int side = bl && bl2 ? 1 : -1; - if (player.isUsingItem() && player.getItemUseTimeLeft() > 0 && player.getActiveHand() == hand) { - if (OldAnimationsSettings.CONFIG.instance().punchDuringUsage && item.getUseAction() != UseAction.NONE) { - applySwingOffset2(player, tickDelta, hand, matrices); - } - if (item.getUseAction() == UseAction.BLOCK) { - doBlockTransformation(side, matrices); - } - } - } - - @ModifyExpressionValue(method = "updateHeldItems", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerEntity;getAttackCooldownProgress(F)F")) - public float simplified$renderItemInFirstPerson(float original) { - if (OldAnimationsSettings.CONFIG.instance().noCooldown) - return 1.0F; - return original; - } - - @Inject(method = "resetEquipProgress", at = @At("HEAD"), cancellable = true) - private void resetEquipProgress_removeDelay(Hand hand, CallbackInfo ci) { - if (OldAnimationsSettings.CONFIG.instance().noCooldown) { - ci.cancel(); - } - } - - @Unique - public void applySwingOffset2(AbstractClientPlayerEntity player, float tickDelta, Hand hand, MatrixStack matrices) { - boolean bl = hand == Hand.MAIN_HAND; - Arm arm = bl ? player.getMainArm() : player.getMainArm().getOpposite(); - applySwingOffset(matrices, arm, player.getHandSwingProgress(tickDelta)); - } - - @Unique - public void doBlockTransformation(int side, MatrixStack matrices) { - matrices.translate(side * -0.14142136F, 0.08F, 0.14142136F); - matrices.multiply(RotationAxis.POSITIVE_X.rotationDegrees(-102.25F)); - matrices.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(side * 13.365F)); - matrices.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(side * 78.05F)); - } - -} diff --git a/src/main/java/com/mixces/oldanimations/mixin/InGameHudMixin.java b/src/main/java/com/mixces/oldanimations/mixin/InGameHudMixin.java deleted file mode 100644 index 4f1ba4b..0000000 --- a/src/main/java/com/mixces/oldanimations/mixin/InGameHudMixin.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.mixces.oldanimations.mixin; - -import com.llamalad7.mixinextras.injector.wrapoperation.Operation; -import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; -import com.mixces.oldanimations.config.OldAnimationsSettings; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.hud.InGameHud; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; - -@Mixin(InGameHud.class) -public class InGameHudMixin { - - @WrapOperation(method = "renderHotbar", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;isEmpty()Z")) - private boolean cancelOffhandHotbar(ItemStack itemStack, Operation original) { - ClientPlayerEntity player = MinecraftClient.getInstance().player; - assert player != null; - return original.call(itemStack) || OldAnimationsSettings.CONFIG.instance().hideShieldHotbar && player.getOffHandStack().isOf(Items.SHIELD); - } - -} diff --git a/src/main/java/com/mixces/oldanimations/mixin/LivingEntityMixin.java b/src/main/java/com/mixces/oldanimations/mixin/LivingEntityMixin.java deleted file mode 100644 index 60fa68e..0000000 --- a/src/main/java/com/mixces/oldanimations/mixin/LivingEntityMixin.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.mixces.oldanimations.mixin; - -import com.mixces.oldanimations.config.OldAnimationsSettings; -import net.minecraft.entity.LivingEntity; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.Constant; -import org.spongepowered.asm.mixin.injection.ModifyConstant; - -@Mixin(LivingEntity.class) -public abstract class LivingEntityMixin { - - @ModifyConstant(method = "isBlocking", constant = @Constant(intValue = 5)) - private int isBlocking_fixSync(int constant) { - if (OldAnimationsSettings.CONFIG.instance().noCooldown) { - return 0; - } - return constant; - } - - @ModifyConstant(method = "tick", constant = @Constant(floatValue = 180.0f, ordinal = 0)) - private float tick_revertWalk(float constant) { - if (OldAnimationsSettings.CONFIG.instance().oldWalking) - return 0.0F; - return constant; - } - -} diff --git a/src/main/java/com/mixces/oldanimations/mixin/LivingEntityRendererMixin.java b/src/main/java/com/mixces/oldanimations/mixin/LivingEntityRendererMixin.java deleted file mode 100644 index 6be1f35..0000000 --- a/src/main/java/com/mixces/oldanimations/mixin/LivingEntityRendererMixin.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.mixces.oldanimations.mixin; - -import com.mixces.oldanimations.config.OldAnimationsSettings; -import net.minecraft.client.render.entity.LivingEntityRenderer; -import net.minecraft.entity.LivingEntity; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; - -@Mixin(LivingEntityRenderer.class) -public abstract class LivingEntityRendererMixin { - - @Redirect(method = "render(Lnet/minecraft/entity/LivingEntity;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;I)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/LivingEntity;isAlive()Z")) - private boolean render_oldDeath(LivingEntity instance) { - return OldAnimationsSettings.CONFIG.instance().oldDeath || instance.isAlive(); - } - -} diff --git a/src/main/java/com/mixces/oldanimations/mixin/PlayerEntityMixin.java b/src/main/java/com/mixces/oldanimations/mixin/PlayerEntityMixin.java deleted file mode 100644 index 21713f8..0000000 --- a/src/main/java/com/mixces/oldanimations/mixin/PlayerEntityMixin.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.mixces.oldanimations.mixin; - -import net.minecraft.entity.player.PlayerEntity; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(PlayerEntity.class) -public abstract class PlayerEntityMixin { - -// @Inject(method = "resetLastAttackedTicks", at = @At("HEAD"), cancellable = true) -// private void resetLastAttackedTicks_removeDelay(CallbackInfo ci) { -// ci.cancel(); -// } - -} diff --git a/src/main/java/com/mixces/oldanimations/mixin/PlayerEntityRendererMixin.java b/src/main/java/com/mixces/oldanimations/mixin/PlayerEntityRendererMixin.java deleted file mode 100644 index e447578..0000000 --- a/src/main/java/com/mixces/oldanimations/mixin/PlayerEntityRendererMixin.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.mixces.oldanimations.mixin; - -import com.mixces.oldanimations.config.OldAnimationsSettings; -import net.minecraft.client.network.AbstractClientPlayerEntity; -import net.minecraft.client.render.entity.PlayerEntityRenderer; -import net.minecraft.client.render.entity.model.BipedEntityModel; -import net.minecraft.item.ShieldItem; -import net.minecraft.util.Hand; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -@Mixin(PlayerEntityRenderer.class) -public class PlayerEntityRendererMixin { - - @Inject(method = "getArmPose", at = @At(value = "HEAD"), cancellable = true) - private static void getArmPose_blockArm(AbstractClientPlayerEntity player, Hand hand, CallbackInfoReturnable cir) { - if (OldAnimationsSettings.CONFIG.instance().hideShields && player.getStackInHand(hand).getItem() instanceof ShieldItem) { - cir.setReturnValue(BipedEntityModel.ArmPose.EMPTY); - } - } - -} diff --git a/src/main/java/com/mixces/oldanimations/mixin/PotionItemMixin.java b/src/main/java/com/mixces/oldanimations/mixin/PotionItemMixin.java deleted file mode 100644 index a863896..0000000 --- a/src/main/java/com/mixces/oldanimations/mixin/PotionItemMixin.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.mixces.oldanimations.mixin; - -import com.mixces.oldanimations.config.OldAnimationsSettings; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.PotionItem; -import net.minecraft.potion.PotionUtil; -import org.spongepowered.asm.mixin.Mixin; - -@Mixin(PotionItem.class) -public class PotionItemMixin extends Item { - - public PotionItemMixin(Settings settings) { - super(settings); - } - - /** - * Taken from OverlayTweaks :) <3 - */ - @Override - public boolean hasGlint(ItemStack stack) { - return OldAnimationsSettings.CONFIG.instance().potionGlint && !PotionUtil.getPotionEffects(stack).isEmpty(); - } - -} diff --git a/src/main/java/com/mixces/oldanimations/mixin/SwordItemMixin.java b/src/main/java/com/mixces/oldanimations/mixin/SwordItemMixin.java deleted file mode 100644 index 9e89c37..0000000 --- a/src/main/java/com/mixces/oldanimations/mixin/SwordItemMixin.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.mixces.oldanimations.mixin; - -import com.mixces.oldanimations.config.OldAnimationsSettings; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.item.SwordItem; -import net.minecraft.util.Hand; -import net.minecraft.util.TypedActionResult; -import net.minecraft.util.UseAction; -import net.minecraft.world.World; -import org.spongepowered.asm.mixin.Mixin; - -@Mixin(SwordItem.class) -public class SwordItemMixin extends Item { - - public SwordItemMixin(Settings settings) { - super(settings); - } - - @Override - public UseAction getUseAction(ItemStack stack) { - ClientPlayerEntity player = MinecraftClient.getInstance().player; - assert player != null; - if ((OldAnimationsSettings.CONFIG.instance().oldSwordBlock && !OldAnimationsSettings.CONFIG.instance().blockWithShieldOnly) || - (OldAnimationsSettings.CONFIG.instance().oldSwordBlock && player.getOffHandStack().isOf(Items.SHIELD))) - return UseAction.BLOCK; - return UseAction.NONE; - } - - @Override - public int getMaxUseTime(ItemStack stack) { - if (OldAnimationsSettings.CONFIG.instance().oldSwordBlock) - return 72000; - return 0; - } - - @Override - public TypedActionResult use(World world, PlayerEntity user, Hand hand) { - ClientPlayerEntity player = MinecraftClient.getInstance().player; - assert player != null; - if ((OldAnimationsSettings.CONFIG.instance().oldSwordBlock && !OldAnimationsSettings.CONFIG.instance().blockWithShieldOnly) || - (OldAnimationsSettings.CONFIG.instance().oldSwordBlock && player.getOffHandStack().isOf(Items.SHIELD))) { - ItemStack itemStack = user.getStackInHand(hand); - user.setCurrentHand(hand); - return TypedActionResult.consume(itemStack); - } - return TypedActionResult.pass(user.getStackInHand(hand)); - } - -} diff --git a/src/main/resources/assets/oldanimations/icon.png b/src/main/resources/assets/legacyanimations/icon.png similarity index 100% rename from src/main/resources/assets/oldanimations/icon.png rename to src/main/resources/assets/legacyanimations/icon.png diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 2401f2d..684f9c9 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,12 +1,11 @@ { "schemaVersion": 1, - "id": "oldanimations", + "id": "legacyanimations", "version": "${version}", - "name": "Old Animations", - "description": "Brings back the old animations and visuals from versions before 1.9!", + "name": "Legacy Animations", + "description": "Brings back the legacy animations and visuals from versions before 1.9!", "authors": [ "Mixces", - "Wyvest", "Microcontrollers" ], "contact": { @@ -15,18 +14,18 @@ "issues": "https://github.com/Mixces/Legacy-Animations/issues" }, "license": "LGPLV3", - "icon": "assets/oldanimations/icon.png", + "icon": "assets/legacyanimations/icon.png", "environment": "*", "entrypoints": { "main": [ - "com.mixces.oldanimations.OldAnimations" + "com.mixces.legacyanimations.LegacyAnimations" ], "modmenu": [ - "com.mixces.oldanimations.config.ModMenuIntegration" + "com.mixces.legacyanimations.config.ModMenuIntegration" ] }, "mixins": [ - "oldanimations.mixins.json" + "legacyanimations.mixins.json" ], "depends": { "fabricloader": ">=0.15.6", diff --git a/src/main/resources/legacyanimations.accesswidener b/src/main/resources/legacyanimations.accesswidener new file mode 100644 index 0000000..9346e0d --- /dev/null +++ b/src/main/resources/legacyanimations.accesswidener @@ -0,0 +1,3 @@ +accessWidener v1 named + +accessible class net/minecraft/client/gui/hud/InGameHud$HeartType \ No newline at end of file diff --git a/src/main/resources/oldanimations.mixins.json b/src/main/resources/legacyanimations.mixins.json similarity index 76% rename from src/main/resources/oldanimations.mixins.json rename to src/main/resources/legacyanimations.mixins.json index 46fb6f3..2c29db6 100644 --- a/src/main/resources/oldanimations.mixins.json +++ b/src/main/resources/legacyanimations.mixins.json @@ -1,6 +1,6 @@ { "required": true, - "package": "com.mixces.oldanimations.mixin", + "package": "com.mixces.legacyanimations.mixin", "compatibilityLevel": "JAVA_17", "client": [ "BipedEntityModelMixin", @@ -8,6 +8,7 @@ "CameraMixin", "ClientPlayerInteractionManagerMixin", "DebugHudMixin", + "FishingBobberEntityRendererMixin", "HeldItemRendererMixin", "InGameHudMixin", "LivingEntityInvoker", @@ -16,10 +17,13 @@ "MinecraftClientMixin", "PlayerEntityMixin", "PlayerEntityRendererMixin", - "PotionItemMixin", "SwordItemMixin" ], "injectors": { "defaultRequire": 1 - } + }, + "mixins": [ + "AccessorCamera", + "EntityMixin" + ] } \ No newline at end of file