diff --git a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTests.java b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTests.java index 1b242db51..05f9ef95f 100644 --- a/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTests.java +++ b/spine-libgdx/spine-libgdx-tests/src/com/esotericsoftware/spine/AnimationStateTests.java @@ -129,7 +129,7 @@ public class AnimationStateTests { expect(0, "end", 1, 1.1f), // expect(0, "dispose", 1, 1.1f) // ); - state.setAnimation(0, "events0", false); + state.setAnimation(0, "events0", false).setTrackEnd(1); run(0.1f, 1000, null); setup("1/60 time step, dispose queued", // 2 @@ -155,7 +155,7 @@ public class AnimationStateTests { state.addAnimation(0, "events1", false, 0); state.addAnimation(0, "events0", false, 0); state.addAnimation(0, "events1", false, 0); - state.setAnimation(0, "events0", false); + state.setAnimation(0, "events0", false).setTrackEnd(1); run(1 / 60f, 1000, null); setup("30 time step", // 3 @@ -167,7 +167,7 @@ public class AnimationStateTests { expect(0, "end", 30, 60), // expect(0, "dispose", 30, 60) // ); - state.setAnimation(0, "events0", false); + state.setAnimation(0, "events0", false).setTrackEnd(1); run(30, 1000, null); setup("1 time step", // 4 @@ -179,7 +179,7 @@ public class AnimationStateTests { expect(0, "end", 1, 2), // expect(0, "dispose", 1, 2) // ); - state.setAnimation(0, "events0", false); + state.setAnimation(0, "events0", false).setTrackEnd(1); run(1, 1.01f, null); setup("interrupt", // 5 @@ -215,7 +215,7 @@ public class AnimationStateTests { ); state.setAnimation(0, "events0", false); state.addAnimation(0, "events1", false, 0); - state.addAnimation(0, "events0", false, 0); + state.addAnimation(0, "events0", false, 0).setTrackEnd(1); run(0.1f, 4f, null); setup("interrupt with delay", // 6 @@ -237,7 +237,7 @@ public class AnimationStateTests { expect(1, "dispose", 1, 1.6f) // ); state.setAnimation(0, "events0", false); - state.addAnimation(0, "events1", false, 0.5f); + state.addAnimation(0, "events1", false, 0.5f).setTrackEnd(1); run(0.1f, 1000, null); setup("interrupt with delay and mix time", // 7 @@ -263,7 +263,7 @@ public class AnimationStateTests { ); stateData.setMix("events0", "events1", 0.7f); state.setAnimation(0, "events0", true); - state.addAnimation(0, "events1", false, 0.9f); + state.addAnimation(0, "events1", false, 0.9f).setTrackEnd(1); run(0.1f, 1000, null); setup("animation 0 events do not fire during mix", // 8 @@ -286,7 +286,7 @@ public class AnimationStateTests { ); stateData.setDefaultMix(0.7f); state.setAnimation(0, "events0", false); - state.addAnimation(0, "events1", false, 0.4f); + state.addAnimation(0, "events1", false, 0.4f).setTrackEnd(1); run(0.1f, 1000, null); setup("event threshold, some animation 0 events fire during mix", // 9 @@ -312,7 +312,7 @@ public class AnimationStateTests { ); stateData.setMix("events0", "events1", 0.7f); state.setAnimation(0, "events0", false).setEventThreshold(0.5f); - state.addAnimation(0, "events1", false, 0.4f); + state.addAnimation(0, "events1", false, 0.4f).setTrackEnd(1); run(0.1f, 1000, null); setup("event threshold, all animation 0 events fire during mix", // 10 @@ -339,7 +339,9 @@ public class AnimationStateTests { expect(1, "dispose", 1, 1.9f) // ); state.setAnimation(0, "events0", true).setEventThreshold(1); - state.addAnimation(0, "events1", false, 0.8f).setMixDuration(0.7f); + entry = state.addAnimation(0, "events1", false, 0.8f); + entry.setMixDuration(0.7f); + entry.setTrackEnd(1); run(0.1f, 1000, null); setup("looping", // 11 @@ -388,7 +390,7 @@ public class AnimationStateTests { expect(1, "dispose", 1, 3.1f) // ); state.setAnimation(0, "events0", false); - state.addAnimation(0, "events1", false, 2); + state.addAnimation(0, "events1", false, 2).setTrackEnd(1); run(0.1f, 4f, null); setup("interrupt animation after first loop complete", // 13 @@ -419,7 +421,7 @@ public class AnimationStateTests { state.setAnimation(0, "events0", true); run(0.1f, 6, new TestListener() { public void frame (float time) { - if (MathUtils.isEqual(time, 1.4f)) state.addAnimation(0, "events1", false, 0); + if (MathUtils.isEqual(time, 1.4f)) state.addAnimation(0, "events1", false, 0).setTrackEnd(1); } }); @@ -432,7 +434,7 @@ public class AnimationStateTests { expect(0, "end", 1, 1.1f), // expect(0, "dispose", 1, 1.1f) // ); - state.addAnimation(0, "events0", false, 0); + state.addAnimation(0, "events0", false, 0).setTrackEnd(1); run(0.1f, 1.9f, null); setup("end time beyond non-looping animation duration", // 15 @@ -490,6 +492,7 @@ public class AnimationStateTests { entry.setAnimationStart(0.2f); entry.setAnimationLast(0.2f); entry.setAnimationEnd(0.8f); + entry.setTrackEnd(1); run(0.1f, 1.8f, null); setup("mix out looping with animation start and end", // 19 @@ -519,7 +522,9 @@ public class AnimationStateTests { entry.setAnimationLast(0.2f); entry.setAnimationEnd(0.8f); entry.setEventThreshold(1); - state.addAnimation(0, "events1", false, 0.7f).setMixDuration(0.7f); + entry = state.addAnimation(0, "events1", false, 0.7f); + entry.setMixDuration(0.7f); + entry.setTrackEnd(1); run(0.1f, 20, null); setup("setAnimation with track entry mix", // 20 @@ -547,7 +552,11 @@ public class AnimationStateTests { state.setAnimation(0, "events0", true); run(0.1f, 1000, new TestListener() { public void frame (float time) { - if (MathUtils.isEqual(time, 1f)) state.setAnimation(0, "events1", false).setMixDuration(0.7f); + if (MathUtils.isEqual(time, 1f)) { + TrackEntry entry = state.setAnimation(0, "events1", false); + entry.setMixDuration(0.7f); + entry.setTrackEnd(1); + } } }); @@ -588,7 +597,7 @@ public class AnimationStateTests { public void frame (float time) { if (MathUtils.isEqual(time, 0.8f)) { state.setAnimation(0, "events0", false); // First should be ignored. - state.setAnimation(0, "events2", false); + state.setAnimation(0, "events2", false).setTrackEnd(1); } } }); @@ -650,7 +659,7 @@ public class AnimationStateTests { } if (MathUtils.isEqual(time, 0.4f)) { state.setAnimation(0, "events1", false); // First should be ignored. - state.setAnimation(0, "events0", false); + state.setAnimation(0, "events0", false).setTrackEnd(1); } } }); @@ -664,7 +673,7 @@ public class AnimationStateTests { expect(0, "end", 1, 6.1f), // expect(0, "dispose", 1, 6.1f) // ); - state.addAnimation(0, "events0", false, 5); + state.addAnimation(0, "events0", false, 5).setTrackEnd(1); run(0.1f, 10, null); setup("setAnimation during AnimationStateListener"); // 24 @@ -695,7 +704,7 @@ public class AnimationStateTests { }); state.addAnimation(0, "events0", false, 0); state.addAnimation(0, "events1", false, 0); - state.setAnimation(1, "events1", false); + state.setAnimation(1, "events1", false).setTrackEnd(1); run(0.1f, 10, null); setup("clearTrack", // 25 @@ -705,7 +714,7 @@ public class AnimationStateTests { expect(0, "end", 0.7f, 0.7f), // expect(0, "dispose", 0.7f, 0.7f) // ); - state.addAnimation(0, "events0", false, 0); + state.addAnimation(0, "events0", false, 0).setTrackEnd(1); run(0.1f, 10, new TestListener() { public void frame (float time) { if (MathUtils.isEqual(time, 0.7f)) state.clearTrack(0); @@ -727,7 +736,7 @@ public class AnimationStateTests { expect(-1, "end", 0.2f, 1), // expect(-1, "dispose", 0.2f, 1) // ); - state.addAnimation(0, "events0", false, 0); + state.addAnimation(0, "events0", false, 0).setTrackEnd(1); run(0.1f, 10, new TestListener() { public void frame (float time) { if (MathUtils.isEqual(time, 0.7f)) state.setEmptyAnimation(0, 0); @@ -763,7 +772,7 @@ public class AnimationStateTests { }); state.addAnimation(0, "events0", false, 0); state.addAnimation(0, "events1", false, 0); - state.setAnimation(1, "events1", false); + state.setAnimation(1, "events1", false).setTrackEnd(1); run(0.1f, 10, null); if (counter.get() != 15082016) { log("TEST 26 FAILED! " + counter);