Skip to content

Commit 8d97672

Browse files
committed
1.21.11 - W.I.P
1 parent d3ba16b commit 8d97672

File tree

75 files changed

+1798
-1958
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+1798
-1958
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ publish.curseforge=
2525

2626
# Dependencies
2727
deps.fabric_loader_version=0.17.3
28-
deps.devauth_version=1.2.1
28+
deps.devauth_version=1.2.2
2929
deps.lombok_version=1.18.42
3030
deps.mixinconstraints_version=1.1.0
3131
deps.mixinsquared_version=0.2.0

settings.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ stonecutter {
2424
}
2525
}
2626

27-
mc("1.21.10", listOf("fabric"))
27+
mc("1.21.11", listOf("fabric"))
2828

29-
vcsVersion = "1.21.10-fabric"
29+
vcsVersion = "1.21.11-fabric"
3030
}
3131
}
3232

src/main/java/org/visuals/legacy/animatium/Animatium.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import net.minecraft.SharedConstants;
3131
import net.minecraft.client.Minecraft;
3232
import net.minecraft.client.gui.components.debug.DebugScreenEntries;
33-
import net.minecraft.resources.ResourceLocation;
33+
import net.minecraft.resources.Identifier;
3434
import org.apache.logging.log4j.LogManager;
3535
import org.apache.logging.log4j.Logger;
3636
import org.visuals.legacy.animatium.config.AnimatiumConfig;
@@ -58,8 +58,8 @@ public boolean hasServerFeature(ServerFeature feature) {
5858
return hasAll || ENABLED_SERVER_FEATURES.contains(feature);
5959
}
6060

61-
public ResourceLocation location(String path) {
62-
return ResourceLocation.fromNamespaceAndPath(AnimatiumConstants.MOD_ID, path);
61+
public Identifier location(String path) {
62+
return Identifier.fromNamespaceAndPath(AnimatiumConstants.MOD_ID, path);
6363
}
6464

6565
public void initialize() {

src/main/java/org/visuals/legacy/animatium/AnimatiumConstants.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,20 @@
2626
package org.visuals.legacy.animatium;
2727

2828
import lombok.experimental.UtilityClass;
29-
import net.fabricmc.fabric.api.client.model.loading.v1.ExtraModelKey;
30-
import net.minecraft.client.renderer.block.model.BlockStateModel;
31-
import net.minecraft.resources.ResourceLocation;
29+
import net.minecraft.resources.Identifier;
3230
import org.visuals.legacy.animatium.packet.HelloPayloadPacket;
3331

3432
@UtilityClass
3533
public class AnimatiumConstants {
36-
public final String MOD_ID = "@MODID@";
37-
public final Double VERSION = Double.parseDouble("@VERSION@");
38-
public final String DEVELOPMENT_VERSION = "@COMMIT@";
39-
public final boolean IS_DEVELOPMENT = Boolean.parseBoolean("@DEVELOPMENT@");
34+
public final String MOD_ID = "@MODID@";
35+
public final Double VERSION = Double.parseDouble("@VERSION@");
36+
public final String DEVELOPMENT_VERSION = "@COMMIT@";
37+
public final boolean IS_DEVELOPMENT = Boolean.parseBoolean("@DEVELOPMENT@");
4038

41-
public final ResourceLocation FAST_GRASS_MODEL_LOCATION = Animatium.location("block/fast_grass_block");
42-
public final ExtraModelKey<BlockStateModel> FAST_GRASS_MODEL_KEY = ExtraModelKey.create(FAST_GRASS_MODEL_LOCATION::toString);
39+
public final Identifier FAST_GRASS_MODEL_LOCATION = Animatium.location("block/fast_grass_block");
40+
// TODO/FIX: public final ExtraModelKey<BlockStateModel> FAST_GRASS_MODEL_KEY = ExtraModelKey.create(FAST_GRASS_MODEL_LOCATION::toString);
4341

44-
public HelloPayloadPacket getHelloPayload() {
45-
return new HelloPayloadPacket(VERSION, IS_DEVELOPMENT ? DEVELOPMENT_VERSION : null);
46-
}
42+
public HelloPayloadPacket getHelloPayload() {
43+
return new HelloPayloadPacket(VERSION, IS_DEVELOPMENT ? DEVELOPMENT_VERSION : null);
44+
}
4745
}

src/main/java/org/visuals/legacy/animatium/AnimatiumFabricClient.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,8 @@
2828
import dev.kikugie.fletching_table.annotation.fabric.Entrypoint;
2929
import net.fabricmc.api.ClientModInitializer;
3030
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
31-
import net.fabricmc.fabric.api.client.model.loading.v1.ModelLoadingPlugin;
32-
import net.fabricmc.fabric.api.client.model.loading.v1.SimpleUnbakedExtraModel;
3331
import net.fabricmc.fabric.api.client.networking.v1.*;
3432
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
35-
import net.fabricmc.fabric.api.resource.ResourceManagerHelper;
36-
import net.fabricmc.fabric.api.resource.ResourcePackActivationType;
3733
import net.fabricmc.loader.api.FabricLoader;
3834
import net.fabricmc.loader.api.ModContainer;
3935
import org.visuals.legacy.animatium.command.AnimatiumCommand;
@@ -46,11 +42,11 @@ public final class AnimatiumFabricClient implements ClientModInitializer {
4642
public void onInitializeClient() {
4743
Animatium.initialize();
4844
final ModContainer modContainer = FabricLoader.getInstance().getModContainer(AnimatiumConstants.MOD_ID).orElseThrow(() -> new RuntimeException("Mod container data could not be found for Animatium!"));
49-
ResourceManagerHelper.registerBuiltinResourcePack(Animatium.location("classic_textures"), modContainer, ResourcePackActivationType.DEFAULT_ENABLED);
50-
ResourceManagerHelper.registerBuiltinResourcePack(Animatium.location("classic_water"), modContainer, ResourcePackActivationType.NORMAL);
45+
// TODO: ResourceManagerHelper.registerBuiltinResourcePack(Animatium.location("classic_textures"), modContainer, ResourcePackActivationType.DEFAULT_ENABLED);
46+
// TODO: ResourceManagerHelper.registerBuiltinResourcePack(Animatium.location("classic_water"), modContainer, ResourcePackActivationType.NORMAL);
5147
ClientCommandRegistrationCallback.EVENT.register((dispatcher, context) -> dispatcher.register(AnimatiumCommand.create()));
5248
registerPayloads();
53-
ModelLoadingPlugin.register(context -> context.addModel(AnimatiumConstants.FAST_GRASS_MODEL_KEY, SimpleUnbakedExtraModel.blockStateModel(AnimatiumConstants.FAST_GRASS_MODEL_LOCATION)));
49+
// TODO: ModelLoadingPlugin.register(context -> context.addModel(AnimatiumConstants.FAST_GRASS_MODEL_KEY, SimpleUnbakedExtraModel.blockStateModel(AnimatiumConstants.FAST_GRASS_MODEL_LOCATION)));
5450
}
5551

5652
private void registerPayloads() {

src/main/java/org/visuals/legacy/animatium/mixins/v1/entity/MixinAvatarRenderer_HeldItemArmLogic.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
package org.visuals.legacy.animatium.mixins.v1.entity;
2727

2828
import net.minecraft.client.entity.ClientAvatarEntity;
29-
import net.minecraft.client.model.PlayerModel;
29+
import net.minecraft.client.model.player.PlayerModel;
3030
import net.minecraft.client.renderer.entity.EntityRendererProvider;
3131
import net.minecraft.client.renderer.entity.LivingEntityRenderer;
3232
import net.minecraft.client.renderer.entity.player.AvatarRenderer;
@@ -55,7 +55,7 @@ public MixinAvatarRenderer_HeldItemArmLogic(final EntityRendererProvider.Context
5555

5656
// TODO/FIX @Mixces
5757
/*@Inject(method = "renderHand", at = @At(value = "FIELD", opcode = Opcodes.PUTFIELD, target = "Lnet/minecraft/client/model/geom/ModelPart;visible:Z", ordinal = 2))
58-
private void animatium$heldItemArmLogic(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int i, ResourceLocation resourceLocation, ModelPart modelPart, boolean bl, CallbackInfo ci, @Local PlayerModel playerModel) {
58+
private void animatium$heldItemArmLogic(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int i, Identifier Identifier, ModelPart modelPart, boolean bl, CallbackInfo ci, @Local PlayerModel playerModel) {
5959
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.heldItemArmLogic) {
6060
final HumanoidArm arm = modelPart == model.rightArm ? HumanoidArm.RIGHT : HumanoidArm.LEFT;
6161
final AvatarRenderState avatarRenderState = animatium$renderState.get();

src/main/java/org/visuals/legacy/animatium/mixins/v1/entity/MixinHumanoidModel.java

Lines changed: 116 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232
import net.minecraft.client.model.EntityModel;
3333
import net.minecraft.client.model.HumanoidModel;
3434
import net.minecraft.client.model.geom.ModelPart;
35-
import net.minecraft.client.renderer.RenderType;
3635
import net.minecraft.client.renderer.entity.state.HumanoidRenderState;
37-
import net.minecraft.resources.ResourceLocation;
36+
import net.minecraft.client.renderer.rendertype.RenderType;
37+
import net.minecraft.resources.Identifier;
3838
import net.minecraft.world.entity.HumanoidArm;
3939
import net.minecraft.world.item.ItemStack;
4040
import net.minecraft.world.item.ShieldItem;
@@ -55,118 +55,118 @@
5555

5656
@Mixin(HumanoidModel.class)
5757
public abstract class MixinHumanoidModel<T extends HumanoidRenderState> extends EntityModel<T> {
58-
@Shadow
59-
@Final
60-
public ModelPart rightArm;
61-
62-
@Shadow
63-
@Final
64-
public ModelPart leftArm;
65-
66-
@Shadow
67-
@Final
68-
public ModelPart head;
69-
70-
@Shadow
71-
@Final
72-
public ModelPart body;
73-
74-
@Shadow
75-
@Final
76-
public ModelPart rightLeg;
77-
78-
@Shadow
79-
@Final
80-
public ModelPart leftLeg;
81-
82-
protected MixinHumanoidModel(ModelPart modelPart, Function<ResourceLocation, RenderType> function) {
83-
super(modelPart, function);
84-
}
85-
86-
// TODO/MOVE
87-
@WrapOperation(method = "setupAnim(Lnet/minecraft/client/renderer/entity/state/HumanoidRenderState;)V", at = @At(value = "FIELD", opcode = Opcodes.GETFIELD, target = "Lnet/minecraft/client/renderer/entity/state/HumanoidRenderState;isCrouching:Z"))
88-
private boolean animatium$sneakingFeetPosition(HumanoidRenderState instance, Operation<Boolean> original) {
89-
if (Animatium.isEnabled() && AnimatiumConfig.instance().movement.sneakAnimation == SneakAnimationSetting.V1_7 && instance.isCrouching) {
90-
// Values sourced from older versions
91-
body.xRot = 0.5F;
92-
rightArm.xRot += 0.4F;
93-
leftArm.xRot += 0.4F;
94-
rightLeg.z = 4.0F;
95-
leftLeg.z = 4.0F;
96-
rightLeg.y = 9.0F;
97-
leftLeg.y = 9.0F;
98-
head.y = 1.0F;
99-
return false;
100-
} else {
101-
return original.call(instance);
102-
}
103-
}
104-
105-
@WrapOperation(method = "setupAttackAnimation", at = @At(value = "FIELD", opcode = Opcodes.PUTFIELD, target = "Lnet/minecraft/client/model/geom/ModelPart;xRot:F", ordinal = 0))
106-
public void animatium$fixMirrorArmSwing$field(ModelPart instance, float value, Operation<Void> original, @Local HumanoidArm arm) {
107-
if (AnimatiumConfig.instance().fixes.fixMirrorArmSwing && arm == HumanoidArm.LEFT) {
108-
this.rightArm.xRot -= this.body.yRot;
109-
} else {
110-
original.call(instance, value);
111-
}
112-
}
113-
114-
@ModifyExpressionValue(method = "setupAttackAnimation", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Mth;sin(F)F", ordinal = 5))
115-
public float animatium$fixMirrorArmSwing$sin(float original, @Local HumanoidArm arm) {
116-
if (AnimatiumConfig.instance().fixes.fixMirrorArmSwing) {
117-
original *= Utils.getArmMultiplier(arm);
118-
}
119-
120-
return original;
121-
}
122-
123-
@WrapOperation(method = "poseBlockingArm", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Mth;clamp(FFF)F"))
124-
private float animatium$lockBlockingArmRotation(float value, float min, float max, Operation<Float> original) {
125-
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.lockBlockingArmRotation) {
126-
return 0.0F;
127-
} else {
128-
return original.call(value, min, max);
129-
}
130-
}
131-
132-
@Inject(method = "setupAnim(Lnet/minecraft/client/renderer/entity/state/HumanoidRenderState;)V", at = @At(value = "CONSTANT", args = "floatValue=0.0", ordinal = 1))
133-
private void animatium$bowArmMovement(T humanoidRenderState, CallbackInfo ci) {
134-
if (Animatium.isEnabled() && AnimatiumConfig.instance().movement.bowArmMovement) {
135-
final boolean isLeftArmPose = humanoidRenderState.leftArmPose == HumanoidModel.ArmPose.BOW_AND_ARROW;
136-
final boolean isRightArmPose = humanoidRenderState.rightArmPose == HumanoidModel.ArmPose.BOW_AND_ARROW;
137-
if (isLeftArmPose || isRightArmPose) {
138-
if (isLeftArmPose) {
139-
leftArm.zRot = 0.0F;
140-
rightArm.yRot = -0.1F + head.yRot - 0.4F;
141-
leftArm.yRot = 0.1F + head.yRot;
142-
}
143-
144-
if (isRightArmPose) {
145-
rightArm.zRot = 0.0F;
146-
rightArm.yRot = -0.1F + head.yRot;
147-
leftArm.yRot = 0.1F + head.yRot + 0.4F;
148-
}
149-
150-
rightArm.xRot = (float) (-Math.PI / 2) + head.xRot;
151-
leftArm.xRot = (float) (-Math.PI / 2) + head.xRot;
152-
}
153-
}
154-
}
155-
156-
@WrapOperation(method = {"poseLeftArm", "poseRightArm"}, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/model/HumanoidModel;poseBlockingArm(Lnet/minecraft/client/model/geom/ModelPart;Z)V"))
157-
private void animatium$oldSwordBlockArm(HumanoidModel<?> instance, ModelPart arm, boolean isRightArm, Operation<Void> original, @Local(argsOnly = true) T humanoidRenderState) {
158-
original.call(instance, arm, isRightArm);
159-
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.thirdPersonSwordBlockingPosition) {
160-
final ItemStack stack = ((UtilityRenderState) humanoidRenderState).animatium$getItemHeldByArm(isRightArm ? HumanoidArm.RIGHT : HumanoidArm.LEFT);
161-
if (!(stack.getItem() instanceof ShieldItem)) {
162-
arm.xRot = arm.xRot * 0.5F - ((float) Math.PI / 10.0F) * 2.0F;
163-
arm.yRot = 0;
164-
}
165-
}
166-
}
167-
168-
@ModifyExpressionValue(method = "setupAnim(Lnet/minecraft/client/renderer/entity/state/HumanoidRenderState;)V", at = @At(value = "FIELD", opcode = Opcodes.GETFIELD, target = "Lnet/minecraft/client/renderer/entity/state/HumanoidRenderState;isUsingItem:Z", ordinal = 0))
169-
private boolean animatium$fixOffHandUsingPose(boolean original) {
170-
return (!Animatium.isEnabled() || !AnimatiumConfig.instance().fixes.fixOffHandUsingPose) && original;
171-
}
58+
@Shadow
59+
@Final
60+
public ModelPart rightArm;
61+
62+
@Shadow
63+
@Final
64+
public ModelPart leftArm;
65+
66+
@Shadow
67+
@Final
68+
public ModelPart head;
69+
70+
@Shadow
71+
@Final
72+
public ModelPart body;
73+
74+
@Shadow
75+
@Final
76+
public ModelPart rightLeg;
77+
78+
@Shadow
79+
@Final
80+
public ModelPart leftLeg;
81+
82+
protected MixinHumanoidModel(ModelPart modelPart, Function<Identifier, RenderType> function) {
83+
super(modelPart, function);
84+
}
85+
86+
// TODO/MOVE
87+
@WrapOperation(method = "setupAnim(Lnet/minecraft/client/renderer/entity/state/HumanoidRenderState;)V", at = @At(value = "FIELD", opcode = Opcodes.GETFIELD, target = "Lnet/minecraft/client/renderer/entity/state/HumanoidRenderState;isCrouching:Z"))
88+
private boolean animatium$sneakingFeetPosition(HumanoidRenderState instance, Operation<Boolean> original) {
89+
if (Animatium.isEnabled() && AnimatiumConfig.instance().movement.sneakAnimation == SneakAnimationSetting.V1_7 && instance.isCrouching) {
90+
// Values sourced from older versions
91+
body.xRot = 0.5F;
92+
rightArm.xRot += 0.4F;
93+
leftArm.xRot += 0.4F;
94+
rightLeg.z = 4.0F;
95+
leftLeg.z = 4.0F;
96+
rightLeg.y = 9.0F;
97+
leftLeg.y = 9.0F;
98+
head.y = 1.0F;
99+
return false;
100+
} else {
101+
return original.call(instance);
102+
}
103+
}
104+
105+
@WrapOperation(method = "setupAttackAnimation", at = @At(value = "FIELD", target = "Lnet/minecraft/client/model/geom/ModelPart;xRot:F", opcode = Opcodes.PUTFIELD, ordinal = 0))
106+
public void animatium$fixMirrorArmSwing$field(ModelPart instance, float value, Operation<Void> original, @Local(argsOnly = true) T humanoidRenderState) {
107+
if (AnimatiumConfig.instance().fixes.fixMirrorArmSwing && humanoidRenderState.attackArm == HumanoidArm.LEFT) {
108+
this.rightArm.xRot -= this.body.yRot;
109+
} else {
110+
original.call(instance, value);
111+
}
112+
}
113+
114+
@ModifyExpressionValue(method = "setupAttackAnimation", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Mth;sin(D)F", ordinal = 5))
115+
public float animatium$fixMirrorArmSwing$sin(float original, @Local(argsOnly = true) T humanoidRenderState) {
116+
if (AnimatiumConfig.instance().fixes.fixMirrorArmSwing) {
117+
original *= Utils.getArmMultiplier(humanoidRenderState.attackArm);
118+
}
119+
120+
return original;
121+
}
122+
123+
@WrapOperation(method = "poseBlockingArm", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Mth;clamp(FFF)F"))
124+
private float animatium$lockBlockingArmRotation(float value, float min, float max, Operation<Float> original) {
125+
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.lockBlockingArmRotation) {
126+
return 0.0F;
127+
} else {
128+
return original.call(value, min, max);
129+
}
130+
}
131+
132+
@Inject(method = "setupAnim(Lnet/minecraft/client/renderer/entity/state/HumanoidRenderState;)V", at = @At(value = "CONSTANT", args = "floatValue=0.0", ordinal = 1))
133+
private void animatium$bowArmMovement(T humanoidRenderState, CallbackInfo ci) {
134+
if (Animatium.isEnabled() && AnimatiumConfig.instance().movement.bowArmMovement) {
135+
final boolean isLeftArmPose = humanoidRenderState.leftArmPose == HumanoidModel.ArmPose.BOW_AND_ARROW;
136+
final boolean isRightArmPose = humanoidRenderState.rightArmPose == HumanoidModel.ArmPose.BOW_AND_ARROW;
137+
if (isLeftArmPose || isRightArmPose) {
138+
if (isLeftArmPose) {
139+
leftArm.zRot = 0.0F;
140+
rightArm.yRot = -0.1F + head.yRot - 0.4F;
141+
leftArm.yRot = 0.1F + head.yRot;
142+
}
143+
144+
if (isRightArmPose) {
145+
rightArm.zRot = 0.0F;
146+
rightArm.yRot = -0.1F + head.yRot;
147+
leftArm.yRot = 0.1F + head.yRot + 0.4F;
148+
}
149+
150+
rightArm.xRot = (float) (-Math.PI / 2) + head.xRot;
151+
leftArm.xRot = (float) (-Math.PI / 2) + head.xRot;
152+
}
153+
}
154+
}
155+
156+
@WrapOperation(method = {"poseLeftArm", "poseRightArm"}, at = @At(value = "INVOKE", target = "Lnet/minecraft/client/model/HumanoidModel;poseBlockingArm(Lnet/minecraft/client/model/geom/ModelPart;Z)V"))
157+
private void animatium$oldSwordBlockArm(HumanoidModel<?> instance, ModelPart arm, boolean isRightArm, Operation<Void> original, @Local(argsOnly = true) T humanoidRenderState) {
158+
original.call(instance, arm, isRightArm);
159+
if (Animatium.isEnabled() && AnimatiumConfig.instance().other.thirdPersonSwordBlockingPosition) {
160+
final ItemStack stack = ((UtilityRenderState) humanoidRenderState).animatium$getItemHeldByArm(isRightArm ? HumanoidArm.RIGHT : HumanoidArm.LEFT);
161+
if (!(stack.getItem() instanceof ShieldItem)) {
162+
arm.xRot = arm.xRot * 0.5F - ((float) Math.PI / 10.0F) * 2.0F;
163+
arm.yRot = 0;
164+
}
165+
}
166+
}
167+
168+
@ModifyExpressionValue(method = "setupAnim(Lnet/minecraft/client/renderer/entity/state/HumanoidRenderState;)V", at = @At(value = "FIELD", opcode = Opcodes.GETFIELD, target = "Lnet/minecraft/client/renderer/entity/state/HumanoidRenderState;isUsingItem:Z", ordinal = 0))
169+
private boolean animatium$fixOffHandUsingPose(boolean original) {
170+
return (!Animatium.isEnabled() || !AnimatiumConfig.instance().fixes.fixOffHandUsingPose) && original;
171+
}
172172
}

0 commit comments

Comments
 (0)