diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java index e52a16c36..eb7d0850d 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonBinary.java @@ -418,9 +418,10 @@ public class SkeletonBinary extends SkeletonLoader { case CONSTRAINT_SLIDER -> { var data = new SliderData(name); data.skinRequired = (nn & 1) != 0; - data.additive = (nn & 2) != 0; - if ((nn & 4) != 0) data.setup.mix = (nn & 8) != 0 ? input.readFloat() : 1; - if ((nn & 16) != 0) data.setup.time = input.readFloat(); + data.loop = (nn & 2) != 0; + data.additive = (nn & 4) != 0; + if ((nn & 8) != 0) data.setup.mix = (nn & 16) != 0 ? input.readFloat() : 1; + if ((nn & 32) != 0) data.setup.time = input.readFloat(); constraints[i] = data; } } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java index dc6c84375..03a60f2b0 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SkeletonJson.java @@ -408,6 +408,7 @@ public class SkeletonJson extends SkeletonLoader { case "slider" -> { var data = new SliderData(name); data.skinRequired = skinRequired; + data.loop = constraintMap.getBoolean("loop", false); data.additive = constraintMap.getBoolean("additive", false); data.setup.time = constraintMap.getFloat("time", 0); data.setup.mix = constraintMap.getFloat("mix", 1); diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slider.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slider.java index 88f461ce5..6a1eb572a 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slider.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/Slider.java @@ -71,8 +71,8 @@ public class Slider extends Constraint { } SliderPose pose = applied; - data.animation.apply(skeleton, pose.time, pose.time, false, null, pose.mix, data.additive ? MixBlend.add : MixBlend.replace, - MixDirection.in, true); + data.animation.apply(skeleton, pose.time, pose.time, data.loop, null, pose.mix, + data.additive ? MixBlend.add : MixBlend.replace, MixDirection.in, true); } void sort (Skeleton skeleton) { diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SliderData.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SliderData.java index 9ce8c9bd8..d62815774 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SliderData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/SliderData.java @@ -34,7 +34,7 @@ package com.esotericsoftware.spine; * See Physics constraints in the Spine User Guide. */ public class SliderData extends ConstraintData { Animation animation; - boolean additive; + boolean additive, loop; public SliderData (String name) { super(name, new SliderPose()); @@ -59,4 +59,12 @@ public class SliderData extends ConstraintData { public void setAdditive (boolean additive) { this.additive = additive; } + + public boolean getLoop () { + return loop; + } + + public void setLoop (boolean loop) { + this.loop = loop; + } }