@esotericsoftware/spine-canvas 4.2.29 → 4.2.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3271,7 +3271,7 @@ var spine = (() => {
3271
3271
  }
3272
3272
  };
3273
3273
  var PhysicsConstraintInertiaTimeline = class extends PhysicsConstraintTimeline {
3274
- constructor(frameCount, bezierCount, physicsConstraintIndex, property) {
3274
+ constructor(frameCount, bezierCount, physicsConstraintIndex) {
3275
3275
  super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintInertia);
3276
3276
  }
3277
3277
  setup(constraint) {
@@ -3288,7 +3288,7 @@ var spine = (() => {
3288
3288
  }
3289
3289
  };
3290
3290
  var PhysicsConstraintStrengthTimeline = class extends PhysicsConstraintTimeline {
3291
- constructor(frameCount, bezierCount, physicsConstraintIndex, property) {
3291
+ constructor(frameCount, bezierCount, physicsConstraintIndex) {
3292
3292
  super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintStrength);
3293
3293
  }
3294
3294
  setup(constraint) {
@@ -3305,7 +3305,7 @@ var spine = (() => {
3305
3305
  }
3306
3306
  };
3307
3307
  var PhysicsConstraintDampingTimeline = class extends PhysicsConstraintTimeline {
3308
- constructor(frameCount, bezierCount, physicsConstraintIndex, property) {
3308
+ constructor(frameCount, bezierCount, physicsConstraintIndex) {
3309
3309
  super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintDamping);
3310
3310
  }
3311
3311
  setup(constraint) {
@@ -3322,7 +3322,7 @@ var spine = (() => {
3322
3322
  }
3323
3323
  };
3324
3324
  var PhysicsConstraintMassTimeline = class extends PhysicsConstraintTimeline {
3325
- constructor(frameCount, bezierCount, physicsConstraintIndex, property) {
3325
+ constructor(frameCount, bezierCount, physicsConstraintIndex) {
3326
3326
  super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintMass);
3327
3327
  }
3328
3328
  setup(constraint) {
@@ -3339,7 +3339,7 @@ var spine = (() => {
3339
3339
  }
3340
3340
  };
3341
3341
  var PhysicsConstraintWindTimeline = class extends PhysicsConstraintTimeline {
3342
- constructor(frameCount, bezierCount, physicsConstraintIndex, property) {
3342
+ constructor(frameCount, bezierCount, physicsConstraintIndex) {
3343
3343
  super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintWind);
3344
3344
  }
3345
3345
  setup(constraint) {
@@ -3356,7 +3356,7 @@ var spine = (() => {
3356
3356
  }
3357
3357
  };
3358
3358
  var PhysicsConstraintGravityTimeline = class extends PhysicsConstraintTimeline {
3359
- constructor(frameCount, bezierCount, physicsConstraintIndex, property) {
3359
+ constructor(frameCount, bezierCount, physicsConstraintIndex) {
3360
3360
  super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintGravity);
3361
3361
  }
3362
3362
  setup(constraint) {
@@ -3373,7 +3373,7 @@ var spine = (() => {
3373
3373
  }
3374
3374
  };
3375
3375
  var PhysicsConstraintMixTimeline = class extends PhysicsConstraintTimeline {
3376
- constructor(frameCount, bezierCount, physicsConstraintIndex, property) {
3376
+ constructor(frameCount, bezierCount, physicsConstraintIndex) {
3377
3377
  super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintMix);
3378
3378
  }
3379
3379
  setup(constraint) {
@@ -7721,7 +7721,7 @@ var spine = (() => {
7721
7721
  }
7722
7722
  sortPhysicsConstraint(constraint) {
7723
7723
  const bone = constraint.bone;
7724
- constraint.active = bone.active && !constraint.data.skinRequired || this.skin != null && Utils.contains(this.skin.constraints, constraint.data, true);
7724
+ constraint.active = bone.active && (!constraint.data.skinRequired || this.skin != null && Utils.contains(this.skin.constraints, constraint.data, true));
7725
7725
  if (!constraint.active)
7726
7726
  return;
7727
7727
  this.sortBone(bone);
@@ -8039,6 +8039,45 @@ var spine = (() => {
8039
8039
  return Physics2;
8040
8040
  })(Physics || {});
8041
8041
 
8042
+ // spine-core/src/PhysicsConstraintData.ts
8043
+ var PhysicsConstraintData = class extends ConstraintData {
8044
+ _bone = null;
8045
+ /** The bone constrained by this physics constraint. */
8046
+ set bone(boneData) {
8047
+ this._bone = boneData;
8048
+ }
8049
+ get bone() {
8050
+ if (!this._bone)
8051
+ throw new Error("BoneData not set.");
8052
+ else
8053
+ return this._bone;
8054
+ }
8055
+ x = 0;
8056
+ y = 0;
8057
+ rotate = 0;
8058
+ scaleX = 1;
8059
+ shearX = 1;
8060
+ step = 0;
8061
+ inertia = 0;
8062
+ strength = 0;
8063
+ damping = 0;
8064
+ massInverse = 0;
8065
+ wind = 0;
8066
+ gravity = 0;
8067
+ /** A percentage (0-1) that controls the mix between the constrained and unconstrained poses. */
8068
+ mix = 0;
8069
+ inertiaGlobal = false;
8070
+ strengthGlobal = false;
8071
+ dampingGlobal = false;
8072
+ massGlobal = false;
8073
+ windGlobal = false;
8074
+ gravityGlobal = false;
8075
+ mixGlobal = false;
8076
+ constructor(name) {
8077
+ super(name, 0, false);
8078
+ }
8079
+ };
8080
+
8042
8081
  // spine-core/src/SkeletonData.ts
8043
8082
  var SkeletonData = class {
8044
8083
  /** The skeleton's name, which by default is the name of the skeleton data file, if possible. May be null. */
@@ -8522,8 +8561,11 @@ var spine = (() => {
8522
8561
  data.length = input.readFloat() * scale;
8523
8562
  data.transformMode = input.readInt(true);
8524
8563
  data.skinRequired = input.readBoolean();
8525
- if (nonessential)
8564
+ if (nonessential) {
8526
8565
  Color.rgba8888ToColor(data.color, input.readInt32());
8566
+ data.icon = input.readString() ?? void 0;
8567
+ data.visible = input.readBoolean();
8568
+ }
8527
8569
  skeletonData.bones.push(data);
8528
8570
  }
8529
8571
  n = input.readInt(true);
@@ -8539,6 +8581,8 @@ var spine = (() => {
8539
8581
  Color.rgb888ToColor(data.darkColor = new Color(), darkColor);
8540
8582
  data.attachmentName = input.readStringRef();
8541
8583
  data.blendMode = input.readInt(true);
8584
+ if (nonessential)
8585
+ data.visible = input.readBoolean();
8542
8586
  skeletonData.slots.push(data);
8543
8587
  }
8544
8588
  n = input.readInt(true);
@@ -8548,17 +8592,18 @@ var spine = (() => {
8548
8592
  throw new Error("IK constraint data name must not be null.");
8549
8593
  let data = new IkConstraintData(name);
8550
8594
  data.order = input.readInt(true);
8551
- data.skinRequired = input.readBoolean();
8552
8595
  nn = input.readInt(true);
8553
8596
  for (let ii = 0; ii < nn; ii++)
8554
8597
  data.bones.push(skeletonData.bones[input.readInt(true)]);
8555
8598
  data.target = skeletonData.bones[input.readInt(true)];
8556
8599
  data.mix = input.readFloat();
8557
8600
  data.softness = input.readFloat() * scale;
8558
- data.bendDirection = input.readByte();
8559
- data.compress = input.readBoolean();
8560
- data.stretch = input.readBoolean();
8561
- data.uniform = input.readBoolean();
8601
+ let flags = input.readByte();
8602
+ data.skinRequired = (flags & 1) != 0;
8603
+ data.bendDirection = (flags & 2) != 0 ? 1 : -1;
8604
+ data.compress = (flags & 4) != 0;
8605
+ data.stretch = (flags & 8) != 0;
8606
+ data.uniform = (flags & 16) != 0;
8562
8607
  skeletonData.ikConstraints.push(data);
8563
8608
  }
8564
8609
  n = input.readInt(true);
@@ -8568,13 +8613,14 @@ var spine = (() => {
8568
8613
  throw new Error("Transform constraint data name must not be null.");
8569
8614
  let data = new TransformConstraintData(name);
8570
8615
  data.order = input.readInt(true);
8571
- data.skinRequired = input.readBoolean();
8572
8616
  nn = input.readInt(true);
8573
8617
  for (let ii = 0; ii < nn; ii++)
8574
8618
  data.bones.push(skeletonData.bones[input.readInt(true)]);
8575
8619
  data.target = skeletonData.bones[input.readInt(true)];
8576
- data.local = input.readBoolean();
8577
- data.relative = input.readBoolean();
8620
+ const flags = input.readByte();
8621
+ data.skinRequired = (flags & 1) != 0;
8622
+ data.local = (flags & 2) != 0;
8623
+ data.relative = (flags & 4) != 0;
8578
8624
  data.offsetRotation = input.readFloat();
8579
8625
  data.offsetX = input.readFloat() * scale;
8580
8626
  data.offsetY = input.readFloat() * scale;
@@ -8616,6 +8662,51 @@ var spine = (() => {
8616
8662
  data.mixY = input.readFloat();
8617
8663
  skeletonData.pathConstraints.push(data);
8618
8664
  }
8665
+ n = input.readInt(true);
8666
+ for (let i = 0, nn; i < n; i++) {
8667
+ const name = input.readString();
8668
+ if (!name)
8669
+ throw new Error("Physics constraint data name must not be null.");
8670
+ const data = new PhysicsConstraintData(name);
8671
+ data.order = input.readInt(true);
8672
+ data.bone = skeletonData.bones[input.readInt(true)];
8673
+ let flags = input.readByte();
8674
+ data.skinRequired = (flags & 1) != 0;
8675
+ if ((flags & 2) != 0)
8676
+ data.x = input.readFloat();
8677
+ if ((flags & 4) != 0)
8678
+ data.y = input.readFloat();
8679
+ if ((flags & 8) != 0)
8680
+ data.rotate = input.readFloat();
8681
+ if ((flags & 16) != 0)
8682
+ data.scaleX = input.readFloat();
8683
+ if ((flags & 32) != 0)
8684
+ data.shearX = input.readFloat();
8685
+ data.step = 1 / input.readByte();
8686
+ data.inertia = input.readFloat();
8687
+ data.strength = input.readFloat();
8688
+ data.damping = input.readFloat();
8689
+ data.massInverse = input.readFloat();
8690
+ data.wind = input.readFloat();
8691
+ data.gravity = input.readFloat();
8692
+ data.mix = input.readFloat();
8693
+ flags = input.readByte();
8694
+ if ((flags & 1) != 0)
8695
+ data.inertiaGlobal = true;
8696
+ if ((flags & 2) != 0)
8697
+ data.strengthGlobal = true;
8698
+ if ((flags & 4) != 0)
8699
+ data.dampingGlobal = true;
8700
+ if ((flags & 8) != 0)
8701
+ data.massGlobal = true;
8702
+ if ((flags & 16) != 0)
8703
+ data.windGlobal = true;
8704
+ if ((flags & 32) != 0)
8705
+ data.gravityGlobal = true;
8706
+ if ((flags & 64) != 0)
8707
+ data.mixGlobal = true;
8708
+ skeletonData.physicsConstraints.push(data);
8709
+ }
8619
8710
  let defaultSkin = this.readSkin(input, skeletonData, true, nonessential);
8620
8711
  if (defaultSkin) {
8621
8712
  skeletonData.defaultSkin = defaultSkin;
@@ -8634,9 +8725,7 @@ var spine = (() => {
8634
8725
  n = this.linkedMeshes.length;
8635
8726
  for (let i = 0; i < n; i++) {
8636
8727
  let linkedMesh = this.linkedMeshes[i];
8637
- let skin = !linkedMesh.skin ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin);
8638
- if (!skin)
8639
- throw new Error("Not skin found for linked mesh.");
8728
+ const skin = skeletonData.skins[linkedMesh.skinIndex];
8640
8729
  if (!linkedMesh.parent)
8641
8730
  throw new Error("Linked mesh parent must not be null");
8642
8731
  let parent = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent);
@@ -8650,9 +8739,9 @@ var spine = (() => {
8650
8739
  this.linkedMeshes.length = 0;
8651
8740
  n = input.readInt(true);
8652
8741
  for (let i = 0; i < n; i++) {
8653
- let eventName = input.readStringRef();
8742
+ let eventName = input.readString();
8654
8743
  if (!eventName)
8655
- throw new Error();
8744
+ throw new Error("Event data name must not be null");
8656
8745
  let data = new EventData(eventName);
8657
8746
  data.intValue = input.readInt(false);
8658
8747
  data.floatValue = input.readFloat();
@@ -8682,10 +8771,12 @@ var spine = (() => {
8682
8771
  return null;
8683
8772
  skin = new Skin("default");
8684
8773
  } else {
8685
- let skinName = input.readStringRef();
8774
+ let skinName = input.readString();
8686
8775
  if (!skinName)
8687
8776
  throw new Error("Skin name must not be null.");
8688
8777
  skin = new Skin(skinName);
8778
+ if (nonessential)
8779
+ Color.rgba8888ToColor(skin.color, input.readInt32());
8689
8780
  skin.bones.length = input.readInt(true);
8690
8781
  for (let i = 0, n = skin.bones.length; i < n; i++)
8691
8782
  skin.bones[i] = skeletonData.bones[input.readInt(true)];
@@ -8695,6 +8786,8 @@ var spine = (() => {
8695
8786
  skin.constraints.push(skeletonData.transformConstraints[input.readInt(true)]);
8696
8787
  for (let i = 0, n = input.readInt(true); i < n; i++)
8697
8788
  skin.constraints.push(skeletonData.pathConstraints[input.readInt(true)]);
8789
+ for (let i = 0, n = input.readInt(true); i < n; i++)
8790
+ skin.constraints.push(skeletonData.physicsConstraints[input.readInt(true)]);
8698
8791
  slotCount = input.readInt(true);
8699
8792
  }
8700
8793
  for (let i = 0; i < slotCount; i++) {
@@ -8712,12 +8805,15 @@ var spine = (() => {
8712
8805
  }
8713
8806
  readAttachment(input, skeletonData, skin, slotIndex, attachmentName, nonessential) {
8714
8807
  let scale = this.scale;
8715
- let name = input.readStringRef();
8808
+ let flags = input.readByte();
8809
+ const name = (flags & 8) != 0 ? input.readStringRef() : attachmentName;
8716
8810
  if (!name)
8717
- name = attachmentName;
8718
- switch (input.readByte()) {
8811
+ throw new Error("Attachment name must not be null");
8812
+ switch (flags & 7) {
8719
8813
  case AttachmentType.Region: {
8720
- let path = input.readStringRef();
8814
+ let path = (flags & 16) != 0 ? input.readStringRef() : null;
8815
+ const color = (flags & 32) != 0 ? input.readInt32() : 4294967295;
8816
+ const sequence = (flags & 64) != 0 ? this.readSequence(input) : null;
8721
8817
  let rotation = input.readFloat();
8722
8818
  let x = input.readFloat();
8723
8819
  let y = input.readFloat();
@@ -8725,8 +8821,6 @@ var spine = (() => {
8725
8821
  let scaleY = input.readFloat();
8726
8822
  let width = input.readFloat();
8727
8823
  let height = input.readFloat();
8728
- let color = input.readInt32();
8729
- let sequence = this.readSequence(input);
8730
8824
  if (!path)
8731
8825
  path = name;
8732
8826
  let region = this.attachmentLoader.newRegionAttachment(skin, name, path, sequence);
@@ -8747,13 +8841,12 @@ var spine = (() => {
8747
8841
  return region;
8748
8842
  }
8749
8843
  case AttachmentType.BoundingBox: {
8750
- let vertexCount = input.readInt(true);
8751
- let vertices = this.readVertices(input, vertexCount);
8844
+ let vertices = this.readVertices(input, (flags & 16) != 0);
8752
8845
  let color = nonessential ? input.readInt32() : 0;
8753
8846
  let box = this.attachmentLoader.newBoundingBoxAttachment(skin, name);
8754
8847
  if (!box)
8755
8848
  return null;
8756
- box.worldVerticesLength = vertexCount << 1;
8849
+ box.worldVerticesLength = vertices.length;
8757
8850
  box.vertices = vertices.vertices;
8758
8851
  box.bones = vertices.bones;
8759
8852
  if (nonessential)
@@ -8761,18 +8854,17 @@ var spine = (() => {
8761
8854
  return box;
8762
8855
  }
8763
8856
  case AttachmentType.Mesh: {
8764
- let path = input.readStringRef();
8765
- let color = input.readInt32();
8766
- let vertexCount = input.readInt(true);
8767
- let uvs = this.readFloatArray(input, vertexCount << 1, 1);
8768
- let triangles = this.readShortArray(input);
8769
- let vertices = this.readVertices(input, vertexCount);
8770
- let hullLength = input.readInt(true);
8771
- let sequence = this.readSequence(input);
8857
+ let path = (flags & 16) != 0 ? input.readStringRef() : name;
8858
+ const color = (flags & 32) != 0 ? input.readInt32() : 4294967295;
8859
+ const sequence = (flags & 64) != 0 ? this.readSequence(input) : null;
8860
+ const hullLength = input.readInt(true);
8861
+ const vertices = this.readVertices(input, (flags & 128) != 0);
8862
+ const uvs = this.readFloatArray(input, vertices.length, 1);
8863
+ const triangles = this.readShortArray(input, (vertices.length - hullLength - 2) * 3);
8772
8864
  let edges = [];
8773
8865
  let width = 0, height = 0;
8774
8866
  if (nonessential) {
8775
- edges = this.readShortArray(input);
8867
+ edges = this.readShortArray(input, input.readInt(true));
8776
8868
  width = input.readFloat();
8777
8869
  height = input.readFloat();
8778
8870
  }
@@ -8785,7 +8877,7 @@ var spine = (() => {
8785
8877
  Color.rgba8888ToColor(mesh.color, color);
8786
8878
  mesh.bones = vertices.bones;
8787
8879
  mesh.vertices = vertices.vertices;
8788
- mesh.worldVerticesLength = vertexCount << 1;
8880
+ mesh.worldVerticesLength = vertices.length;
8789
8881
  mesh.triangles = triangles;
8790
8882
  mesh.regionUVs = uvs;
8791
8883
  if (sequence == null)
@@ -8800,19 +8892,19 @@ var spine = (() => {
8800
8892
  return mesh;
8801
8893
  }
8802
8894
  case AttachmentType.LinkedMesh: {
8803
- let path = input.readStringRef();
8804
- let color = input.readInt32();
8805
- let skinName = input.readStringRef();
8806
- let parent = input.readStringRef();
8807
- let inheritTimelines = input.readBoolean();
8808
- let sequence = this.readSequence(input);
8895
+ const path = (flags & 16) != 0 ? input.readStringRef() : name;
8896
+ if (path == null)
8897
+ throw new Error("Path of linked mesh must not be null");
8898
+ const color = (flags & 32) != 0 ? input.readInt32() : 4294967295;
8899
+ const sequence = (flags & 64) != 0 ? this.readSequence(input) : null;
8900
+ const inheritTimelines = (flags & 128) != 0;
8901
+ const skinIndex = input.readInt(true);
8902
+ const parent = input.readStringRef();
8809
8903
  let width = 0, height = 0;
8810
8904
  if (nonessential) {
8811
8905
  width = input.readFloat();
8812
8906
  height = input.readFloat();
8813
8907
  }
8814
- if (!path)
8815
- path = name;
8816
8908
  let mesh = this.attachmentLoader.newMeshAttachment(skin, name, path, sequence);
8817
8909
  if (!mesh)
8818
8910
  return null;
@@ -8823,24 +8915,23 @@ var spine = (() => {
8823
8915
  mesh.width = width * scale;
8824
8916
  mesh.height = height * scale;
8825
8917
  }
8826
- this.linkedMeshes.push(new LinkedMesh(mesh, skinName, slotIndex, parent, inheritTimelines));
8918
+ this.linkedMeshes.push(new LinkedMesh(mesh, skinIndex, slotIndex, parent, inheritTimelines));
8827
8919
  return mesh;
8828
8920
  }
8829
8921
  case AttachmentType.Path: {
8830
- let closed2 = input.readBoolean();
8831
- let constantSpeed = input.readBoolean();
8832
- let vertexCount = input.readInt(true);
8833
- let vertices = this.readVertices(input, vertexCount);
8834
- let lengths = Utils.newArray(vertexCount / 3, 0);
8922
+ const closed2 = (flags & 16) != 0;
8923
+ const constantSpeed = (flags & 32) != 0;
8924
+ const vertices = this.readVertices(input, (flags & 64) != 0);
8925
+ const lengths = Utils.newArray(vertices.length / 6, 0);
8835
8926
  for (let i = 0, n = lengths.length; i < n; i++)
8836
8927
  lengths[i] = input.readFloat() * scale;
8837
- let color = nonessential ? input.readInt32() : 0;
8838
- let path = this.attachmentLoader.newPathAttachment(skin, name);
8928
+ const color = nonessential ? input.readInt32() : 0;
8929
+ const path = this.attachmentLoader.newPathAttachment(skin, name);
8839
8930
  if (!path)
8840
8931
  return null;
8841
8932
  path.closed = closed2;
8842
8933
  path.constantSpeed = constantSpeed;
8843
- path.worldVerticesLength = vertexCount << 1;
8934
+ path.worldVerticesLength = vertices.length;
8844
8935
  path.vertices = vertices.vertices;
8845
8936
  path.bones = vertices.bones;
8846
8937
  path.lengths = lengths;
@@ -8849,11 +8940,11 @@ var spine = (() => {
8849
8940
  return path;
8850
8941
  }
8851
8942
  case AttachmentType.Point: {
8852
- let rotation = input.readFloat();
8853
- let x = input.readFloat();
8854
- let y = input.readFloat();
8855
- let color = nonessential ? input.readInt32() : 0;
8856
- let point = this.attachmentLoader.newPointAttachment(skin, name);
8943
+ const rotation = input.readFloat();
8944
+ const x = input.readFloat();
8945
+ const y = input.readFloat();
8946
+ const color = nonessential ? input.readInt32() : 0;
8947
+ const point = this.attachmentLoader.newPointAttachment(skin, name);
8857
8948
  if (!point)
8858
8949
  return null;
8859
8950
  point.x = x * scale;
@@ -8864,15 +8955,14 @@ var spine = (() => {
8864
8955
  return point;
8865
8956
  }
8866
8957
  case AttachmentType.Clipping: {
8867
- let endSlotIndex = input.readInt(true);
8868
- let vertexCount = input.readInt(true);
8869
- let vertices = this.readVertices(input, vertexCount);
8958
+ const endSlotIndex = input.readInt(true);
8959
+ const vertices = this.readVertices(input, (flags & 16) != 0);
8870
8960
  let color = nonessential ? input.readInt32() : 0;
8871
8961
  let clip = this.attachmentLoader.newClippingAttachment(skin, name);
8872
8962
  if (!clip)
8873
8963
  return null;
8874
8964
  clip.endSlot = skeletonData.slots[endSlotIndex];
8875
- clip.worldVerticesLength = vertexCount << 1;
8965
+ clip.worldVerticesLength = vertices.length;
8876
8966
  clip.vertices = vertices.vertices;
8877
8967
  clip.bones = vertices.bones;
8878
8968
  if (nonessential)
@@ -8891,12 +8981,13 @@ var spine = (() => {
8891
8981
  sequence.setupIndex = input.readInt(true);
8892
8982
  return sequence;
8893
8983
  }
8894
- readVertices(input, vertexCount) {
8895
- let scale = this.scale;
8896
- let verticesLength = vertexCount << 1;
8897
- let vertices = new Vertices();
8898
- if (!input.readBoolean()) {
8899
- vertices.vertices = this.readFloatArray(input, verticesLength, scale);
8984
+ readVertices(input, weighted) {
8985
+ const scale = this.scale;
8986
+ const vertexCount = input.readInt(true);
8987
+ const vertices = new Vertices();
8988
+ vertices.length = vertexCount << 1;
8989
+ if (!weighted) {
8990
+ vertices.vertices = this.readFloatArray(input, vertices.length, scale);
8900
8991
  return vertices;
8901
8992
  }
8902
8993
  let weights = new Array();
@@ -8926,19 +9017,16 @@ var spine = (() => {
8926
9017
  }
8927
9018
  return array;
8928
9019
  }
8929
- readShortArray(input) {
8930
- let n = input.readInt(true);
9020
+ readShortArray(input, n) {
8931
9021
  let array = new Array(n);
8932
9022
  for (let i = 0; i < n; i++)
8933
- array[i] = input.readShort();
9023
+ array[i] = input.readInt(true);
8934
9024
  return array;
8935
9025
  }
8936
9026
  readAnimation(input, name, skeletonData) {
8937
9027
  input.readInt(true);
8938
9028
  let timelines = new Array();
8939
9029
  let scale = this.scale;
8940
- let tempColor1 = new Color();
8941
- let tempColor2 = new Color();
8942
9030
  for (let i = 0, n = input.readInt(true); i < n; i++) {
8943
9031
  let slotIndex = input.readInt(true);
8944
9032
  for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) {
@@ -9179,7 +9267,8 @@ var spine = (() => {
9179
9267
  let timeline = new IkConstraintTimeline(frameCount, input.readInt(true), index);
9180
9268
  let time = input.readFloat(), mix = input.readFloat(), softness = input.readFloat() * scale;
9181
9269
  for (let frame = 0, bezier = 0; ; frame++) {
9182
- timeline.setFrame(frame, time, mix, softness, input.readByte(), input.readBoolean(), input.readBoolean());
9270
+ const flags = input.readByte();
9271
+ timeline.setFrame(frame, time, mix, softness, input.readByte(), (flags & 1) != 0, (flags & 2) != 0);
9183
9272
  if (frame == frameLast)
9184
9273
  break;
9185
9274
  let time2 = input.readFloat(), mix2 = input.readFloat(), softness2 = input.readFloat() * scale;
@@ -9232,23 +9321,24 @@ var spine = (() => {
9232
9321
  let index = input.readInt(true);
9233
9322
  let data = skeletonData.pathConstraints[index];
9234
9323
  for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) {
9235
- switch (input.readByte()) {
9324
+ const type = input.readByte(), frameCount = input.readInt(true), bezierCount = input.readInt(true);
9325
+ switch (type) {
9236
9326
  case PATH_POSITION:
9237
9327
  timelines.push(readTimeline1(
9238
9328
  input,
9239
- new PathConstraintPositionTimeline(input.readInt(true), input.readInt(true), index),
9329
+ new PathConstraintPositionTimeline(frameCount, bezierCount, index),
9240
9330
  data.positionMode == 0 /* Fixed */ ? scale : 1
9241
9331
  ));
9242
9332
  break;
9243
9333
  case PATH_SPACING:
9244
9334
  timelines.push(readTimeline1(
9245
9335
  input,
9246
- new PathConstraintSpacingTimeline(input.readInt(true), input.readInt(true), index),
9336
+ new PathConstraintSpacingTimeline(frameCount, bezierCount, index),
9247
9337
  data.spacingMode == 0 /* Length */ || data.spacingMode == 1 /* Fixed */ ? scale : 1
9248
9338
  ));
9249
9339
  break;
9250
9340
  case PATH_MIX:
9251
- let timeline = new PathConstraintMixTimeline(input.readInt(true), input.readInt(true), index);
9341
+ let timeline = new PathConstraintMixTimeline(frameCount, bezierCount, index);
9252
9342
  let time = input.readFloat(), mixRotate = input.readFloat(), mixX = input.readFloat(), mixY = input.readFloat();
9253
9343
  for (let frame = 0, bezier = 0, frameLast = timeline.getFrameCount() - 1; ; frame++) {
9254
9344
  timeline.setFrame(frame, time, mixRotate, mixX, mixY);
@@ -9273,6 +9363,42 @@ var spine = (() => {
9273
9363
  }
9274
9364
  }
9275
9365
  }
9366
+ for (let i = 0, n = input.readInt(true); i < n; i++) {
9367
+ const index = input.readInt(true) - 1;
9368
+ for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) {
9369
+ const type = input.readByte(), frameCount = input.readInt(true);
9370
+ if (type == PHYSICS_RESET) {
9371
+ const timeline = new PhysicsConstraintResetTimeline(frameCount, index);
9372
+ for (let frame = 0; frame < frameCount; frame++)
9373
+ timeline.setFrame(frame, input.readFloat());
9374
+ timelines.push(timeline);
9375
+ continue;
9376
+ }
9377
+ const bezierCount = input.readInt(true);
9378
+ switch (type) {
9379
+ case PHYSICS_INERTIA:
9380
+ timelines.push(readTimeline1(input, new PhysicsConstraintInertiaTimeline(frameCount, bezierCount, index), 1));
9381
+ break;
9382
+ case PHYSICS_STRENGTH:
9383
+ timelines.push(readTimeline1(input, new PhysicsConstraintStrengthTimeline(frameCount, bezierCount, index), 1));
9384
+ break;
9385
+ case PHYSICS_DAMPING:
9386
+ timelines.push(readTimeline1(input, new PhysicsConstraintDampingTimeline(frameCount, bezierCount, index), 1));
9387
+ break;
9388
+ case PHYSICS_MASS:
9389
+ timelines.push(readTimeline1(input, new PhysicsConstraintMassTimeline(frameCount, bezierCount, index), 1));
9390
+ break;
9391
+ case PHYSICS_WIND:
9392
+ timelines.push(readTimeline1(input, new PhysicsConstraintWindTimeline(frameCount, bezierCount, index), 1));
9393
+ break;
9394
+ case PHYSICS_GRAVITY:
9395
+ timelines.push(readTimeline1(input, new PhysicsConstraintGravityTimeline(frameCount, bezierCount, index), 1));
9396
+ break;
9397
+ case PHYSICS_MIX:
9398
+ timelines.push(readTimeline1(input, new PhysicsConstraintMixTimeline(frameCount, bezierCount, index), 1));
9399
+ }
9400
+ }
9401
+ }
9276
9402
  for (let i = 0, n = input.readInt(true); i < n; i++) {
9277
9403
  let skin = skeletonData.skins[input.readInt(true)];
9278
9404
  for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) {
@@ -9387,7 +9513,9 @@ var spine = (() => {
9387
9513
  let event = new Event(time, eventData);
9388
9514
  event.intValue = input.readInt(false);
9389
9515
  event.floatValue = input.readFloat();
9390
- event.stringValue = input.readBoolean() ? input.readString() : eventData.stringValue;
9516
+ event.stringValue = input.readString();
9517
+ if (event.stringValue == null)
9518
+ event.stringValue = eventData.stringValue;
9391
9519
  if (event.data.audioPath) {
9392
9520
  event.volume = input.readFloat();
9393
9521
  event.balance = input.readFloat();
@@ -9490,22 +9618,23 @@ var spine = (() => {
9490
9618
  };
9491
9619
  var LinkedMesh = class {
9492
9620
  parent;
9493
- skin;
9621
+ skinIndex;
9494
9622
  slotIndex;
9495
9623
  mesh;
9496
9624
  inheritTimeline;
9497
- constructor(mesh, skin, slotIndex, parent, inheritDeform) {
9625
+ constructor(mesh, skinIndex, slotIndex, parent, inheritDeform) {
9498
9626
  this.mesh = mesh;
9499
- this.skin = skin;
9627
+ this.skinIndex = skinIndex;
9500
9628
  this.slotIndex = slotIndex;
9501
9629
  this.parent = parent;
9502
9630
  this.inheritTimeline = inheritDeform;
9503
9631
  }
9504
9632
  };
9505
9633
  var Vertices = class {
9506
- constructor(bones = null, vertices = null) {
9634
+ constructor(bones = null, vertices = null, length = 0) {
9507
9635
  this.bones = bones;
9508
9636
  this.vertices = vertices;
9637
+ this.length = length;
9509
9638
  }
9510
9639
  };
9511
9640
  var AttachmentType = /* @__PURE__ */ ((AttachmentType2) => {
@@ -9582,6 +9711,14 @@ var spine = (() => {
9582
9711
  var PATH_POSITION = 0;
9583
9712
  var PATH_SPACING = 1;
9584
9713
  var PATH_MIX = 2;
9714
+ var PHYSICS_INERTIA = 0;
9715
+ var PHYSICS_STRENGTH = 1;
9716
+ var PHYSICS_DAMPING = 2;
9717
+ var PHYSICS_MASS = 4;
9718
+ var PHYSICS_WIND = 5;
9719
+ var PHYSICS_GRAVITY = 6;
9720
+ var PHYSICS_MIX = 7;
9721
+ var PHYSICS_RESET = 8;
9585
9722
  var CURVE_STEPPED = 1;
9586
9723
  var CURVE_BEZIER = 2;
9587
9724