From 635be9d83f07288b2e6a0ab4542c3c3b91d224ec Mon Sep 17 00:00:00 2001 From: zimzaza4 <3625282098@qq.com> Date: Sat, 28 Sep 2024 12:12:06 +0800 Subject: [PATCH] fix override anim --- .../re/imc/geysermodelengine/model/EntityTask.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/re/imc/geysermodelengine/model/EntityTask.java b/src/main/java/re/imc/geysermodelengine/model/EntityTask.java index 8ee12ac..460faf8 100644 --- a/src/main/java/re/imc/geysermodelengine/model/EntityTask.java +++ b/src/main/java/re/imc/geysermodelengine/model/EntityTask.java @@ -207,6 +207,7 @@ public class EntityTask { Map boneUpdates = new HashMap<>(); Map animUpdates = new HashMap<>(); + Set overrideAnimUpdates = new HashSet<>(); // if (GeyserModelEngine.getInstance().getEnablePartVisibilityModels().contains(model.getActiveModel().getBlueprint().getName())) { model.getActiveModel().getBones().forEach((s, bone) -> { @@ -224,8 +225,18 @@ public class EntityTask { // } model.getActiveModel().getBlueprint().getAnimations().forEach((s, anim) -> { - animUpdates.put(s, model.getActiveModel().getAnimationHandler().isPlayingAnimation(s)); + if (anim.isOverride() && model.getActiveModel().getAnimationHandler().isPlayingAnimation(s)) { + overrideAnimUpdates.add(s); + } }); + model.getActiveModel().getBlueprint().getAnimations().forEach((s, anim) -> { + if (overrideAnimUpdates.isEmpty()) { + animUpdates.put(s, model.getActiveModel().getAnimationHandler().isPlayingAnimation(s)); + } else { + animUpdates.put(s, overrideAnimUpdates.contains(s)); + } + }); + /*f if (!lastAnimProperty.equals(currentAnimProperty)) {