From 1206758322a5d6226a8a7736224d741e9df639c6 Mon Sep 17 00:00:00 2001 From: LostInLinearPast <1283411677@qq.com> Date: Fri, 31 Oct 2025 23:01:15 +0800 Subject: [PATCH] version 0.0.7 --- gradle.properties | 2 +- .../animation/capability/AnimationDataCapability.java | 5 +++-- .../linearpast/sccore/mixin/animation/MixinEntity.java | 9 ++++++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/gradle.properties b/gradle.properties index f45cb84..16156dc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,7 +12,7 @@ mapping_version=2023.09.03-1.20.1 mod_id=sccore mod_name=SnowyCrescentCore mod_license=GNU AGPL 3.0 -mod_version=1.20.1-0.0.7 +mod_version=1.20.1-0.0.7-hotfix mod_group_id=com.linearpast mod_authors=LostInLinearPast mod_description=A lib about capability and player animator. diff --git a/src/main/java/com/linearpast/sccore/animation/capability/AnimationDataCapability.java b/src/main/java/com/linearpast/sccore/animation/capability/AnimationDataCapability.java index 083de9d..540c375 100644 --- a/src/main/java/com/linearpast/sccore/animation/capability/AnimationDataCapability.java +++ b/src/main/java/com/linearpast/sccore/animation/capability/AnimationDataCapability.java @@ -17,6 +17,7 @@ import org.jetbrains.annotations.Nullable; import java.util.HashMap; import java.util.Map; +import java.util.Objects; import java.util.Optional; public class AnimationDataCapability extends SimplePlayerCapabilitySync implements IAnimationCapability { @@ -35,7 +36,7 @@ public class AnimationDataCapability extends SimplePlayerCapabilitySync implemen animations.forEach((key, value) -> { if (AnimationRegistry.getLayers().containsKey(key)) { if (AnimationUtils.isAnimationPresent(value)) { - if(this.rideAnimLayer.equals(key)) { + if(Objects.equals(rideAnimLayer, key)) { removeRiderAnimation(); } this.animMap.put(key, value); @@ -49,7 +50,7 @@ public class AnimationDataCapability extends SimplePlayerCapabilitySync implemen public boolean mergeAnimation(ResourceLocation layer, ResourceLocation animation) { if (AnimationRegistry.getLayers().containsKey(layer)) { if (AnimationUtils.isAnimationPresent(animation)) { - if(this.rideAnimLayer.equals(layer)) { + if(Objects.equals(rideAnimLayer, layer)) { removeRiderAnimation(); } this.animMap.put(layer, animation); diff --git a/src/main/java/com/linearpast/sccore/mixin/animation/MixinEntity.java b/src/main/java/com/linearpast/sccore/mixin/animation/MixinEntity.java index bbd8353..8f197fa 100644 --- a/src/main/java/com/linearpast/sccore/mixin/animation/MixinEntity.java +++ b/src/main/java/com/linearpast/sccore/mixin/animation/MixinEntity.java @@ -37,15 +37,18 @@ public abstract class MixinEntity { if(self instanceof Player player){ IAnimationCapability data = AnimationDataCapability.getCapability(player).orElse(null); if(data == null) return; - float camYModifier = 0.0f; + Float camYModifier = null; for (ResourceLocation value : data.getAnimations().values()) { Animation animation = AnimationUtils.getAnimation(value); if(animation == null) continue; float animationCamY = animation.getCamY(); + if(camYModifier == null) camYModifier = animationCamY; camYModifier = Math.min(camYModifier, animationCamY); } - this.eyeHeight = this.getEyeHeight(Pose.STANDING) + camYModifier; - cir.setReturnValue(this.eyeHeight); + if(camYModifier != null){ + this.eyeHeight = this.getEyeHeight(Pose.STANDING) + camYModifier; + cir.setReturnValue(this.eyeHeight); + } } }