From 88b009cd1fb14da1cc4e1d6438ad7888ee476462 Mon Sep 17 00:00:00 2001 From: Nathan Sweet Date: Wed, 20 Mar 2024 10:46:44 -0400 Subject: [PATCH] [libgdx] AnimationState, improved triggering complete event. --- .../com/esotericsoftware/spine/AnimationState.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java index 4586c804b..39e4a4819 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java @@ -483,9 +483,14 @@ public class AnimationState { // Queue complete if completed a loop iteration or the animation. boolean complete; - if (entry.loop) - complete = duration == 0 || trackLastWrapped > entry.trackTime % duration; - else + if (entry.loop) { + if (duration == 0) + complete = true; + else { + int cycles = (int)(entry.trackTime / duration); + complete = cycles > 0 && cycles > (int)(entry.trackLast / duration); + } + } else complete = animationTime >= animationEnd && entry.animationLast < animationEnd; if (complete) queue.complete(entry);