From 2f2342111216f33bf4e8b01717183de31099dde6 Mon Sep 17 00:00:00 2001 From: Davide Tantillo Date: Tue, 10 Jun 2025 17:11:22 +0200 Subject: [PATCH] [ts] Port to 4.3 (WIP) --- spine-ts/spine-core/src/BonePose.ts | 8 ++++---- spine-ts/spine-core/src/PathConstraint.ts | 2 +- spine-ts/spine-core/src/PhysicsConstraint.ts | 3 +-- spine-ts/spine-core/src/Skeleton.ts | 2 +- spine-ts/spine-core/src/SkeletonBinary.ts | 4 +--- spine-ts/spine-core/src/SkeletonJson.ts | 12 ++++++------ spine-ts/spine-pixi-v8/src/Spine.ts | 3 ++- 7 files changed, 16 insertions(+), 18 deletions(-) diff --git a/spine-ts/spine-core/src/BonePose.ts b/spine-ts/spine-core/src/BonePose.ts index 158f878dd..5622c4ffc 100644 --- a/spine-ts/spine-core/src/BonePose.ts +++ b/spine-ts/spine-core/src/BonePose.ts @@ -167,10 +167,10 @@ export class BonePose extends BoneLocal implements Update { const zd = Math.sin(this.rotation) * s; this.shearX *= MathUtils.degRad; this.shearY = (90 + shearY) * MathUtils.degRad; - const la = Math.cos(shearX) * scaleX; - const lb = Math.cos(shearY) * scaleY; - const lc = Math.sin(shearX) * scaleX; - const ld = Math.sin(shearY) * scaleY; + const la = Math.cos(this.shearX) * scaleX; + const lb = Math.cos(this.shearY) * scaleY; + const lc = Math.sin(this.shearX) * scaleX; + const ld = Math.sin(this.shearY) * scaleY; this.a = za * la + zb * lc; this.b = za * lb + zb * ld; this.c = zc * la + zd * lc; diff --git a/spine-ts/spine-core/src/PathConstraint.ts b/spine-ts/spine-core/src/PathConstraint.ts index 6923d0ebf..2572b10b5 100644 --- a/spine-ts/spine-core/src/PathConstraint.ts +++ b/spine-ts/spine-core/src/PathConstraint.ts @@ -71,7 +71,7 @@ export class PathConstraint extends Constraint 0) this.scaleOffset += (dx * c + dy * s) * i / r; } - a = this.remaining; if (a >= t) { if (d == -1) { d = Math.pow(p.damping, 60 * t); diff --git a/spine-ts/spine-core/src/Skeleton.ts b/spine-ts/spine-core/src/Skeleton.ts index 988d0938e..71bac02e0 100644 --- a/spine-ts/spine-core/src/Skeleton.ts +++ b/spine-ts/spine-core/src/Skeleton.ts @@ -232,7 +232,7 @@ export class Skeleton { sortReset (bones: Array) { for (let i = 0, n = bones.length; i < n; i++) { let bone = bones[i]; - if (!bone.active) { + if (bone.active) { if (bone.sorted) this.sortReset(bone.children); bone.sorted = false; } diff --git a/spine-ts/spine-core/src/SkeletonBinary.ts b/spine-ts/spine-core/src/SkeletonBinary.ts index c804ed877..f46ac7dba 100644 --- a/spine-ts/spine-core/src/SkeletonBinary.ts +++ b/spine-ts/spine-core/src/SkeletonBinary.ts @@ -254,8 +254,6 @@ export class SkeletonBinary { } case CONSTRAINT_PATH: { let data = new PathConstraintData(name); - data.skinRequired = input.readBoolean(); - nn = input.readInt(true); for (let ii = 0; ii < nn; ii++) data.bones.push(bones[input.readInt(true)]); data.slot = skeletonData.slots[input.readInt(true)]; @@ -307,7 +305,7 @@ export class SkeletonBinary { constraints.push(data); break; } - case CONSTRAINT_PHYSICS: { + case CONSTRAINT_SLIDER: { const data = new SliderData(name); data.skinRequired = (nn & 1) != 0; data.loop = (nn & 2) != 0; diff --git a/spine-ts/spine-core/src/SkeletonJson.ts b/spine-ts/spine-core/src/SkeletonJson.ts index 521cb3694..d712e936c 100644 --- a/spine-ts/spine-core/src/SkeletonJson.ts +++ b/spine-ts/spine-core/src/SkeletonJson.ts @@ -202,34 +202,34 @@ export class SkeletonJson { let to: ToProperty; switch (name) { case "rotate": { - rotate = true + rotate = true; to = new ToRotate(); break; } case "x": { - x = true + x = true; to = new ToX(); toScale = scale; break; } case "y": { - y = true + y = true; to = new ToY(); toScale = scale; break; } case "scaleX": { - scaleX = true + scaleX = true; to = new ToScaleX(); break; } case "scaleY": { - scaleY = true + scaleY = true; to = new ToScaleY(); break; } case "shearY": { - shearY = true + shearY = true; to = new ToShearY(); break; } diff --git a/spine-ts/spine-pixi-v8/src/Spine.ts b/spine-ts/spine-pixi-v8/src/Spine.ts index 6a009f49e..8d5b5c02f 100644 --- a/spine-ts/spine-pixi-v8/src/Spine.ts +++ b/spine-ts/spine-pixi-v8/src/Spine.ts @@ -632,7 +632,7 @@ export class Spine extends ViewContainer { this.updateAndSetPixiMask(slot, i === currentDrawOrder.length - 1); const pose = slot.pose; - const attachment = pose; + const attachment = pose.attachment; if (attachment) { if (attachment instanceof MeshAttachment || attachment instanceof RegionAttachment) { @@ -691,6 +691,7 @@ export class Spine extends ViewContainer { } } else if (attachment instanceof ClippingAttachment) { + clipper.clipEnd(slot); clipper.clipStart(skeleton, slot, attachment); continue; }