mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-10 00:58:43 +08:00
Added loading of transform constraints from JSON and binary.
This commit is contained in:
parent
88207a609c
commit
5835337bed
@ -148,6 +148,17 @@ public class SkeletonBinary {
|
||||
skeletonData.ikConstraints.add(ikConstraintData);
|
||||
}
|
||||
|
||||
// Transform constraints.
|
||||
for (int i = 0, n = input.readInt(true); i < n; i++) {
|
||||
TransformConstraintData transformConstraintData = new TransformConstraintData(input.readString());
|
||||
transformConstraintData.bone = skeletonData.bones.get(input.readInt(true));
|
||||
transformConstraintData.target = skeletonData.bones.get(input.readInt(true));
|
||||
transformConstraintData.translateMix = input.readFloat();
|
||||
transformConstraintData.x = input.readFloat();
|
||||
transformConstraintData.y = input.readFloat();
|
||||
skeletonData.transformConstraints.add(transformConstraintData);
|
||||
}
|
||||
|
||||
// Slots.
|
||||
for (int i = 0, n = input.readInt(true); i < n; i++) {
|
||||
String slotName = input.readString();
|
||||
|
||||
@ -146,6 +146,25 @@ public class SkeletonJson {
|
||||
skeletonData.ikConstraints.add(ikConstraintData);
|
||||
}
|
||||
|
||||
// Transform constraints.
|
||||
for (JsonValue transformMap = root.getChild("transform"); transformMap != null; transformMap = transformMap.next) {
|
||||
TransformConstraintData transformConstraintData = new TransformConstraintData(transformMap.getString("name"));
|
||||
|
||||
String boneName = transformMap.getString("bone");
|
||||
transformConstraintData.bone = skeletonData.findBone(boneName);
|
||||
if (transformConstraintData.bone == null) throw new SerializationException("Bone not found: " + boneName);
|
||||
|
||||
String targetName = transformMap.getString("target");
|
||||
transformConstraintData.target = skeletonData.findBone(targetName);
|
||||
if (transformConstraintData.target == null) throw new SerializationException("Target bone not found: " + targetName);
|
||||
|
||||
transformConstraintData.translateMix = transformMap.getFloat("translateMix", 1);
|
||||
transformConstraintData.x = transformMap.getFloat("x", 0);
|
||||
transformConstraintData.y = transformMap.getFloat("y", 0);
|
||||
|
||||
skeletonData.transformConstraints.add(transformConstraintData);
|
||||
}
|
||||
|
||||
// Slots.
|
||||
for (JsonValue slotMap = root.getChild("slots"); slotMap != null; slotMap = slotMap.next) {
|
||||
String slotName = slotMap.getString("name");
|
||||
|
||||
@ -23,7 +23,7 @@ public class TransformConstraint implements Updatable {
|
||||
public TransformConstraint (TransformConstraint constraint, Skeleton skeleton) {
|
||||
data = constraint.data;
|
||||
translateMix = data.translateMix;
|
||||
bone = skeleton.bones.get(constraint.bone.skeleton.bones.indexOf(constraint.target, true));
|
||||
bone = skeleton.bones.get(constraint.bone.skeleton.bones.indexOf(constraint.bone, true));
|
||||
target = skeleton.bones.get(constraint.target.skeleton.bones.indexOf(constraint.target, true));
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user