[libgdx] Added slider loop property.

This commit is contained in:
Nathan Sweet 2025-04-22 23:02:24 -04:00
parent 6793861875
commit 96a8efef6b
4 changed files with 16 additions and 6 deletions

View File

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

View File

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

View File

@ -71,8 +71,8 @@ public class Slider extends Constraint<Slider, SliderData, SliderPose> {
}
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) {

View File

@ -34,7 +34,7 @@ package com.esotericsoftware.spine;
* See <a href="https://esotericsoftware.com/spine-physics-constraints">Physics constraints</a> in the Spine User Guide. */
public class SliderData extends ConstraintData<Slider, SliderPose> {
Animation animation;
boolean additive;
boolean additive, loop;
public SliderData (String name) {
super(name, new SliderPose());
@ -59,4 +59,12 @@ public class SliderData extends ConstraintData<Slider, SliderPose> {
public void setAdditive (boolean additive) {
this.additive = additive;
}
public boolean getLoop () {
return loop;
}
public void setLoop (boolean loop) {
this.loop = loop;
}
}