mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
[ts] 4.3 porting - Fixed binary export for constraints.
This commit is contained in:
parent
2d9f86a4aa
commit
f51db8f672
@ -151,10 +151,11 @@ export class SkeletonBinary {
|
|||||||
for (let i = 0; i < constraintCount; i++) {
|
for (let i = 0; i < constraintCount; i++) {
|
||||||
let name = input.readString();
|
let name = input.readString();
|
||||||
if (!name) throw new Error("Constraint data name must not be null.");
|
if (!name) throw new Error("Constraint data name must not be null.");
|
||||||
let nn = input.readInt(true);
|
let nn;
|
||||||
switch (input.readByte()) {
|
switch (input.readByte()) {
|
||||||
case CONSTRAINT_IK: {
|
case CONSTRAINT_IK: {
|
||||||
let data = new IkConstraintData(name);
|
let data = new IkConstraintData(name);
|
||||||
|
nn = input.readInt(true);
|
||||||
for (let ii = 0; ii < nn; ii++)
|
for (let ii = 0; ii < nn; ii++)
|
||||||
data.bones.push(bones[input.readInt(true)]);
|
data.bones.push(bones[input.readInt(true)]);
|
||||||
data.target = bones[input.readInt(true)];
|
data.target = bones[input.readInt(true)];
|
||||||
@ -172,6 +173,7 @@ export class SkeletonBinary {
|
|||||||
}
|
}
|
||||||
case CONSTRAINT_TRANSFORM: {
|
case CONSTRAINT_TRANSFORM: {
|
||||||
let data = new TransformConstraintData(name);
|
let data = new TransformConstraintData(name);
|
||||||
|
nn = input.readInt(true);
|
||||||
for (let ii = 0; ii < nn; ii++)
|
for (let ii = 0; ii < nn; ii++)
|
||||||
data.bones.push(bones[input.readInt(true)]);
|
data.bones.push(bones[input.readInt(true)]);
|
||||||
data.source = bones[input.readInt(true)];
|
data.source = bones[input.readInt(true)];
|
||||||
@ -254,6 +256,7 @@ export class SkeletonBinary {
|
|||||||
}
|
}
|
||||||
case CONSTRAINT_PATH: {
|
case CONSTRAINT_PATH: {
|
||||||
let data = new PathConstraintData(name);
|
let data = new PathConstraintData(name);
|
||||||
|
nn = input.readInt(true);
|
||||||
for (let ii = 0; ii < nn; ii++)
|
for (let ii = 0; ii < nn; ii++)
|
||||||
data.bones.push(bones[input.readInt(true)]);
|
data.bones.push(bones[input.readInt(true)]);
|
||||||
data.slot = skeletonData.slots[input.readInt(true)];
|
data.slot = skeletonData.slots[input.readInt(true)];
|
||||||
@ -276,7 +279,7 @@ export class SkeletonBinary {
|
|||||||
}
|
}
|
||||||
case CONSTRAINT_PHYSICS: {
|
case CONSTRAINT_PHYSICS: {
|
||||||
const data = new PhysicsConstraintData(name);
|
const data = new PhysicsConstraintData(name);
|
||||||
data.bone = bones[nn];
|
data.bone = bones[input.readInt(true)];
|
||||||
let flags = input.readByte();
|
let flags = input.readByte();
|
||||||
data.skinRequired = (flags & 1) != 0;
|
data.skinRequired = (flags & 1) != 0;
|
||||||
if ((flags & 2) != 0) data.x = input.readFloat();
|
if ((flags & 2) != 0) data.x = input.readFloat();
|
||||||
@ -307,13 +310,14 @@ export class SkeletonBinary {
|
|||||||
}
|
}
|
||||||
case CONSTRAINT_SLIDER: {
|
case CONSTRAINT_SLIDER: {
|
||||||
const data = new SliderData(name);
|
const data = new SliderData(name);
|
||||||
data.skinRequired = (nn & 1) != 0;
|
const flags = input.readByte();
|
||||||
data.loop = (nn & 2) != 0;
|
data.skinRequired = (flags & 1) != 0;
|
||||||
data.additive = (nn & 4) != 0;
|
data.loop = (flags & 2) != 0;
|
||||||
if ((nn & 8) != 0) data.setup.time = input.readFloat();
|
data.additive = (flags & 4) != 0;
|
||||||
if ((nn & 16) != 0) data.setup.mix = (nn & 32) != 0 ? input.readFloat() : 1;
|
if ((flags & 8) != 0) data.setup.time = input.readFloat();
|
||||||
if ((nn & 64) != 0) {
|
if ((flags & 16) != 0) data.setup.mix = (flags & 32) != 0 ? input.readFloat() : 1;
|
||||||
data.local = (nn & 128) != 0;
|
if ((flags & 64) != 0) {
|
||||||
|
data.local = (flags & 128) != 0;
|
||||||
data.bone = bones[input.readInt(true)];
|
data.bone = bones[input.readInt(true)];
|
||||||
let offset = input.readFloat();
|
let offset = input.readFloat();
|
||||||
switch (input.readByte()) {
|
switch (input.readByte()) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user