[libgdx] Fixed animation bones having duplicates.

This commit is contained in:
Nathan Sweet 2025-05-19 20:17:36 -04:00
parent b3ed2ff16b
commit af6fba6666

View File

@ -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();
}