mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
[libgdx] Fixed reading transform constraint mixes from JSON.
This commit is contained in:
parent
a1326bc6dd
commit
0f1022fb3f
@ -261,6 +261,7 @@ public class SkeletonJson extends SkeletonLoader {
|
|||||||
data.additive = constraintMap.getBoolean("additive", false);
|
data.additive = constraintMap.getBoolean("additive", false);
|
||||||
data.clamp = constraintMap.getBoolean("clamp", false);
|
data.clamp = constraintMap.getBoolean("clamp", false);
|
||||||
|
|
||||||
|
boolean rotate = false, x = false, y = false, scaleX = false, scaleY = false, shearY = false;
|
||||||
for (JsonValue fromEntry = constraintMap.getChild("properties"); fromEntry != null; fromEntry = fromEntry.next) {
|
for (JsonValue fromEntry = constraintMap.getChild("properties"); fromEntry != null; fromEntry = fromEntry.next) {
|
||||||
FromProperty from = switch (fromEntry.name) {
|
FromProperty from = switch (fromEntry.name) {
|
||||||
case "rotate" -> new FromRotate();
|
case "rotate" -> new FromRotate();
|
||||||
@ -273,15 +274,34 @@ public class SkeletonJson extends SkeletonLoader {
|
|||||||
};
|
};
|
||||||
from.offset = fromEntry.getFloat("offset", 0) * scale;
|
from.offset = fromEntry.getFloat("offset", 0) * scale;
|
||||||
for (JsonValue toEntry = fromEntry.getChild("to"); toEntry != null; toEntry = toEntry.next) {
|
for (JsonValue toEntry = fromEntry.getChild("to"); toEntry != null; toEntry = toEntry.next) {
|
||||||
ToProperty to = switch (toEntry.name) {
|
ToProperty to;
|
||||||
case "rotate" -> new ToRotate();
|
switch (toEntry.name) {
|
||||||
case "x" -> new ToX();
|
case "rotate" -> {
|
||||||
case "y" -> new ToY();
|
rotate = true;
|
||||||
case "scaleX" -> new ToScaleX();
|
to = new ToRotate();
|
||||||
case "scaleY" -> new ToScaleY();
|
}
|
||||||
case "shearY" -> new ToShearY();
|
case "x" -> {
|
||||||
|
x = true;
|
||||||
|
to = new ToX();
|
||||||
|
}
|
||||||
|
case "y" -> {
|
||||||
|
y = true;
|
||||||
|
to = new ToY();
|
||||||
|
}
|
||||||
|
case "scaleX" -> {
|
||||||
|
scaleX = true;
|
||||||
|
to = new ToScaleX();
|
||||||
|
}
|
||||||
|
case "scaleY" -> {
|
||||||
|
scaleY = true;
|
||||||
|
to = new ToScaleY();
|
||||||
|
}
|
||||||
|
case "shearY" -> {
|
||||||
|
shearY = true;
|
||||||
|
to = new ToShearY();
|
||||||
|
}
|
||||||
default -> throw new SerializationException("Invalid transform constraint to property: " + fromEntry.name);
|
default -> throw new SerializationException("Invalid transform constraint to property: " + fromEntry.name);
|
||||||
};
|
}
|
||||||
to.offset = toEntry.getFloat("offset", 0) * scale;
|
to.offset = toEntry.getFloat("offset", 0) * scale;
|
||||||
to.max = toEntry.getFloat("max", 1) * scale;
|
to.max = toEntry.getFloat("max", 1) * scale;
|
||||||
to.scale = toEntry.getFloat("scale");
|
to.scale = toEntry.getFloat("scale");
|
||||||
@ -292,12 +312,12 @@ public class SkeletonJson extends SkeletonLoader {
|
|||||||
|
|
||||||
data.offsetX = constraintMap.getFloat("x", 0);
|
data.offsetX = constraintMap.getFloat("x", 0);
|
||||||
data.offsetY = constraintMap.getFloat("y", 0);
|
data.offsetY = constraintMap.getFloat("y", 0);
|
||||||
data.mixRotate = constraintMap.getFloat("mixRotate", 1);
|
if (rotate) data.mixRotate = constraintMap.getFloat("mixRotate", 1);
|
||||||
data.mixX = constraintMap.getFloat("mixX", 1);
|
if (x) data.mixX = constraintMap.getFloat("mixX", 1);
|
||||||
data.mixY = constraintMap.getFloat("mixY", data.mixX);
|
if (y) data.mixY = constraintMap.getFloat("mixY", data.mixX);
|
||||||
data.mixScaleX = constraintMap.getFloat("mixScaleX", 1);
|
if (scaleX) data.mixScaleX = constraintMap.getFloat("mixScaleX", 1);
|
||||||
data.mixScaleY = constraintMap.getFloat("mixScaleY", data.mixScaleX);
|
if (scaleY) data.mixScaleY = constraintMap.getFloat("mixScaleY", data.mixScaleX);
|
||||||
data.mixShearY = constraintMap.getFloat("mixShearY", 1);
|
if (shearY) data.mixShearY = constraintMap.getFloat("mixShearY", 1);
|
||||||
|
|
||||||
skeletonData.transformConstraints.add(data);
|
skeletonData.transformConstraints.add(data);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user