From af6fba66666f9bf9e7d9221901e3d4c2ee6073d2 Mon Sep 17 00:00:00 2001 From: Nathan Sweet Date: Mon, 19 May 2025 20:17:36 -0400 Subject: [PATCH] [libgdx] Fixed animation bones having duplicates. --- .../src/com/esotericsoftware/spine/Animation.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java index 1b6bb334f..f904d49e8 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Animation.java @@ -37,6 +37,7 @@ import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.FloatArray; import com.badlogic.gdx.utils.IntArray; +import com.badlogic.gdx.utils.IntSet; import com.badlogic.gdx.utils.Null; import com.badlogic.gdx.utils.ObjectSet; @@ -77,11 +78,13 @@ public class Animation { int n = timelines.size; timelineIds.clear(n << 1); bones.clear(); + var boneSet = new IntSet(); Timeline[] items = timelines.items; for (int i = 0; i < n; i++) { Timeline timeline = items[i]; timelineIds.addAll(timeline.getPropertyIds()); - if (timeline instanceof BoneTimeline boneTimeline) bones.add(boneTimeline.getBoneIndex()); + if (timeline instanceof BoneTimeline boneTimeline && boneSet.add(boneTimeline.getBoneIndex())) + bones.add(boneTimeline.getBoneIndex()); } bones.shrink(); }