@esotericsoftware/spine-webgl 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.
@@ -3311,7 +3311,7 @@ var spine = (() => {
3311
3311
  }
3312
3312
  };
3313
3313
  var PhysicsConstraintInertiaTimeline = class extends PhysicsConstraintTimeline {
3314
- constructor(frameCount, bezierCount, physicsConstraintIndex, property) {
3314
+ constructor(frameCount, bezierCount, physicsConstraintIndex) {
3315
3315
  super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintInertia);
3316
3316
  }
3317
3317
  setup(constraint) {
@@ -3328,7 +3328,7 @@ var spine = (() => {
3328
3328
  }
3329
3329
  };
3330
3330
  var PhysicsConstraintStrengthTimeline = class extends PhysicsConstraintTimeline {
3331
- constructor(frameCount, bezierCount, physicsConstraintIndex, property) {
3331
+ constructor(frameCount, bezierCount, physicsConstraintIndex) {
3332
3332
  super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintStrength);
3333
3333
  }
3334
3334
  setup(constraint) {
@@ -3345,7 +3345,7 @@ var spine = (() => {
3345
3345
  }
3346
3346
  };
3347
3347
  var PhysicsConstraintDampingTimeline = class extends PhysicsConstraintTimeline {
3348
- constructor(frameCount, bezierCount, physicsConstraintIndex, property) {
3348
+ constructor(frameCount, bezierCount, physicsConstraintIndex) {
3349
3349
  super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintDamping);
3350
3350
  }
3351
3351
  setup(constraint) {
@@ -3362,7 +3362,7 @@ var spine = (() => {
3362
3362
  }
3363
3363
  };
3364
3364
  var PhysicsConstraintMassTimeline = class extends PhysicsConstraintTimeline {
3365
- constructor(frameCount, bezierCount, physicsConstraintIndex, property) {
3365
+ constructor(frameCount, bezierCount, physicsConstraintIndex) {
3366
3366
  super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintMass);
3367
3367
  }
3368
3368
  setup(constraint) {
@@ -3379,7 +3379,7 @@ var spine = (() => {
3379
3379
  }
3380
3380
  };
3381
3381
  var PhysicsConstraintWindTimeline = class extends PhysicsConstraintTimeline {
3382
- constructor(frameCount, bezierCount, physicsConstraintIndex, property) {
3382
+ constructor(frameCount, bezierCount, physicsConstraintIndex) {
3383
3383
  super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintWind);
3384
3384
  }
3385
3385
  setup(constraint) {
@@ -3396,7 +3396,7 @@ var spine = (() => {
3396
3396
  }
3397
3397
  };
3398
3398
  var PhysicsConstraintGravityTimeline = class extends PhysicsConstraintTimeline {
3399
- constructor(frameCount, bezierCount, physicsConstraintIndex, property) {
3399
+ constructor(frameCount, bezierCount, physicsConstraintIndex) {
3400
3400
  super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintGravity);
3401
3401
  }
3402
3402
  setup(constraint) {
@@ -3413,7 +3413,7 @@ var spine = (() => {
3413
3413
  }
3414
3414
  };
3415
3415
  var PhysicsConstraintMixTimeline = class extends PhysicsConstraintTimeline {
3416
- constructor(frameCount, bezierCount, physicsConstraintIndex, property) {
3416
+ constructor(frameCount, bezierCount, physicsConstraintIndex) {
3417
3417
  super(frameCount, bezierCount, physicsConstraintIndex, Property.physicsConstraintMix);
3418
3418
  }
3419
3419
  setup(constraint) {
@@ -7761,7 +7761,7 @@ var spine = (() => {
7761
7761
  }
7762
7762
  sortPhysicsConstraint(constraint) {
7763
7763
  const bone = constraint.bone;
7764
- constraint.active = bone.active && !constraint.data.skinRequired || this.skin != null && Utils.contains(this.skin.constraints, constraint.data, true);
7764
+ constraint.active = bone.active && (!constraint.data.skinRequired || this.skin != null && Utils.contains(this.skin.constraints, constraint.data, true));
7765
7765
  if (!constraint.active)
7766
7766
  return;
7767
7767
  this.sortBone(bone);
@@ -8079,6 +8079,45 @@ var spine = (() => {
8079
8079
  return Physics2;
8080
8080
  })(Physics || {});
8081
8081
 
8082
+ // spine-core/src/PhysicsConstraintData.ts
8083
+ var PhysicsConstraintData = class extends ConstraintData {
8084
+ _bone = null;
8085
+ /** The bone constrained by this physics constraint. */
8086
+ set bone(boneData) {
8087
+ this._bone = boneData;
8088
+ }
8089
+ get bone() {
8090
+ if (!this._bone)
8091
+ throw new Error("BoneData not set.");
8092
+ else
8093
+ return this._bone;
8094
+ }
8095
+ x = 0;
8096
+ y = 0;
8097
+ rotate = 0;
8098
+ scaleX = 1;
8099
+ shearX = 1;
8100
+ step = 0;
8101
+ inertia = 0;
8102
+ strength = 0;
8103
+ damping = 0;
8104
+ massInverse = 0;
8105
+ wind = 0;
8106
+ gravity = 0;
8107
+ /** A percentage (0-1) that controls the mix between the constrained and unconstrained poses. */
8108
+ mix = 0;
8109
+ inertiaGlobal = false;
8110
+ strengthGlobal = false;
8111
+ dampingGlobal = false;
8112
+ massGlobal = false;
8113
+ windGlobal = false;
8114
+ gravityGlobal = false;
8115
+ mixGlobal = false;
8116
+ constructor(name) {
8117
+ super(name, 0, false);
8118
+ }
8119
+ };
8120
+
8082
8121
  // spine-core/src/SkeletonData.ts
8083
8122
  var SkeletonData = class {
8084
8123
  /** The skeleton's name, which by default is the name of the skeleton data file, if possible. May be null. */
@@ -8562,8 +8601,11 @@ var spine = (() => {
8562
8601
  data.length = input.readFloat() * scale;
8563
8602
  data.transformMode = input.readInt(true);
8564
8603
  data.skinRequired = input.readBoolean();
8565
- if (nonessential)
8604
+ if (nonessential) {
8566
8605
  Color.rgba8888ToColor(data.color, input.readInt32());
8606
+ data.icon = input.readString() ?? void 0;
8607
+ data.visible = input.readBoolean();
8608
+ }
8567
8609
  skeletonData.bones.push(data);
8568
8610
  }
8569
8611
  n = input.readInt(true);
@@ -8579,6 +8621,8 @@ var spine = (() => {
8579
8621
  Color.rgb888ToColor(data.darkColor = new Color(), darkColor);
8580
8622
  data.attachmentName = input.readStringRef();
8581
8623
  data.blendMode = input.readInt(true);
8624
+ if (nonessential)
8625
+ data.visible = input.readBoolean();
8582
8626
  skeletonData.slots.push(data);
8583
8627
  }
8584
8628
  n = input.readInt(true);
@@ -8588,17 +8632,18 @@ var spine = (() => {
8588
8632
  throw new Error("IK constraint data name must not be null.");
8589
8633
  let data = new IkConstraintData(name);
8590
8634
  data.order = input.readInt(true);
8591
- data.skinRequired = input.readBoolean();
8592
8635
  nn = input.readInt(true);
8593
8636
  for (let ii = 0; ii < nn; ii++)
8594
8637
  data.bones.push(skeletonData.bones[input.readInt(true)]);
8595
8638
  data.target = skeletonData.bones[input.readInt(true)];
8596
8639
  data.mix = input.readFloat();
8597
8640
  data.softness = input.readFloat() * scale;
8598
- data.bendDirection = input.readByte();
8599
- data.compress = input.readBoolean();
8600
- data.stretch = input.readBoolean();
8601
- data.uniform = input.readBoolean();
8641
+ let flags = input.readByte();
8642
+ data.skinRequired = (flags & 1) != 0;
8643
+ data.bendDirection = (flags & 2) != 0 ? 1 : -1;
8644
+ data.compress = (flags & 4) != 0;
8645
+ data.stretch = (flags & 8) != 0;
8646
+ data.uniform = (flags & 16) != 0;
8602
8647
  skeletonData.ikConstraints.push(data);
8603
8648
  }
8604
8649
  n = input.readInt(true);
@@ -8608,13 +8653,14 @@ var spine = (() => {
8608
8653
  throw new Error("Transform constraint data name must not be null.");
8609
8654
  let data = new TransformConstraintData(name);
8610
8655
  data.order = input.readInt(true);
8611
- data.skinRequired = input.readBoolean();
8612
8656
  nn = input.readInt(true);
8613
8657
  for (let ii = 0; ii < nn; ii++)
8614
8658
  data.bones.push(skeletonData.bones[input.readInt(true)]);
8615
8659
  data.target = skeletonData.bones[input.readInt(true)];
8616
- data.local = input.readBoolean();
8617
- data.relative = input.readBoolean();
8660
+ const flags = input.readByte();
8661
+ data.skinRequired = (flags & 1) != 0;
8662
+ data.local = (flags & 2) != 0;
8663
+ data.relative = (flags & 4) != 0;
8618
8664
  data.offsetRotation = input.readFloat();
8619
8665
  data.offsetX = input.readFloat() * scale;
8620
8666
  data.offsetY = input.readFloat() * scale;
@@ -8656,6 +8702,51 @@ var spine = (() => {
8656
8702
  data.mixY = input.readFloat();
8657
8703
  skeletonData.pathConstraints.push(data);
8658
8704
  }
8705
+ n = input.readInt(true);
8706
+ for (let i = 0, nn; i < n; i++) {
8707
+ const name = input.readString();
8708
+ if (!name)
8709
+ throw new Error("Physics constraint data name must not be null.");
8710
+ const data = new PhysicsConstraintData(name);
8711
+ data.order = input.readInt(true);
8712
+ data.bone = skeletonData.bones[input.readInt(true)];
8713
+ let flags = input.readByte();
8714
+ data.skinRequired = (flags & 1) != 0;
8715
+ if ((flags & 2) != 0)
8716
+ data.x = input.readFloat();
8717
+ if ((flags & 4) != 0)
8718
+ data.y = input.readFloat();
8719
+ if ((flags & 8) != 0)
8720
+ data.rotate = input.readFloat();
8721
+ if ((flags & 16) != 0)
8722
+ data.scaleX = input.readFloat();
8723
+ if ((flags & 32) != 0)
8724
+ data.shearX = input.readFloat();
8725
+ data.step = 1 / input.readByte();
8726
+ data.inertia = input.readFloat();
8727
+ data.strength = input.readFloat();
8728
+ data.damping = input.readFloat();
8729
+ data.massInverse = input.readFloat();
8730
+ data.wind = input.readFloat();
8731
+ data.gravity = input.readFloat();
8732
+ data.mix = input.readFloat();
8733
+ flags = input.readByte();
8734
+ if ((flags & 1) != 0)
8735
+ data.inertiaGlobal = true;
8736
+ if ((flags & 2) != 0)
8737
+ data.strengthGlobal = true;
8738
+ if ((flags & 4) != 0)
8739
+ data.dampingGlobal = true;
8740
+ if ((flags & 8) != 0)
8741
+ data.massGlobal = true;
8742
+ if ((flags & 16) != 0)
8743
+ data.windGlobal = true;
8744
+ if ((flags & 32) != 0)
8745
+ data.gravityGlobal = true;
8746
+ if ((flags & 64) != 0)
8747
+ data.mixGlobal = true;
8748
+ skeletonData.physicsConstraints.push(data);
8749
+ }
8659
8750
  let defaultSkin = this.readSkin(input, skeletonData, true, nonessential);
8660
8751
  if (defaultSkin) {
8661
8752
  skeletonData.defaultSkin = defaultSkin;
@@ -8674,9 +8765,7 @@ var spine = (() => {
8674
8765
  n = this.linkedMeshes.length;
8675
8766
  for (let i = 0; i < n; i++) {
8676
8767
  let linkedMesh = this.linkedMeshes[i];
8677
- let skin = !linkedMesh.skin ? skeletonData.defaultSkin : skeletonData.findSkin(linkedMesh.skin);
8678
- if (!skin)
8679
- throw new Error("Not skin found for linked mesh.");
8768
+ const skin = skeletonData.skins[linkedMesh.skinIndex];
8680
8769
  if (!linkedMesh.parent)
8681
8770
  throw new Error("Linked mesh parent must not be null");
8682
8771
  let parent = skin.getAttachment(linkedMesh.slotIndex, linkedMesh.parent);
@@ -8690,9 +8779,9 @@ var spine = (() => {
8690
8779
  this.linkedMeshes.length = 0;
8691
8780
  n = input.readInt(true);
8692
8781
  for (let i = 0; i < n; i++) {
8693
- let eventName = input.readStringRef();
8782
+ let eventName = input.readString();
8694
8783
  if (!eventName)
8695
- throw new Error();
8784
+ throw new Error("Event data name must not be null");
8696
8785
  let data = new EventData(eventName);
8697
8786
  data.intValue = input.readInt(false);
8698
8787
  data.floatValue = input.readFloat();
@@ -8722,10 +8811,12 @@ var spine = (() => {
8722
8811
  return null;
8723
8812
  skin = new Skin("default");
8724
8813
  } else {
8725
- let skinName = input.readStringRef();
8814
+ let skinName = input.readString();
8726
8815
  if (!skinName)
8727
8816
  throw new Error("Skin name must not be null.");
8728
8817
  skin = new Skin(skinName);
8818
+ if (nonessential)
8819
+ Color.rgba8888ToColor(skin.color, input.readInt32());
8729
8820
  skin.bones.length = input.readInt(true);
8730
8821
  for (let i = 0, n = skin.bones.length; i < n; i++)
8731
8822
  skin.bones[i] = skeletonData.bones[input.readInt(true)];
@@ -8735,6 +8826,8 @@ var spine = (() => {
8735
8826
  skin.constraints.push(skeletonData.transformConstraints[input.readInt(true)]);
8736
8827
  for (let i = 0, n = input.readInt(true); i < n; i++)
8737
8828
  skin.constraints.push(skeletonData.pathConstraints[input.readInt(true)]);
8829
+ for (let i = 0, n = input.readInt(true); i < n; i++)
8830
+ skin.constraints.push(skeletonData.physicsConstraints[input.readInt(true)]);
8738
8831
  slotCount = input.readInt(true);
8739
8832
  }
8740
8833
  for (let i = 0; i < slotCount; i++) {
@@ -8752,12 +8845,15 @@ var spine = (() => {
8752
8845
  }
8753
8846
  readAttachment(input, skeletonData, skin, slotIndex, attachmentName, nonessential) {
8754
8847
  let scale = this.scale;
8755
- let name = input.readStringRef();
8848
+ let flags = input.readByte();
8849
+ const name = (flags & 8) != 0 ? input.readStringRef() : attachmentName;
8756
8850
  if (!name)
8757
- name = attachmentName;
8758
- switch (input.readByte()) {
8851
+ throw new Error("Attachment name must not be null");
8852
+ switch (flags & 7) {
8759
8853
  case AttachmentType.Region: {
8760
- let path = input.readStringRef();
8854
+ let path = (flags & 16) != 0 ? input.readStringRef() : null;
8855
+ const color = (flags & 32) != 0 ? input.readInt32() : 4294967295;
8856
+ const sequence = (flags & 64) != 0 ? this.readSequence(input) : null;
8761
8857
  let rotation = input.readFloat();
8762
8858
  let x = input.readFloat();
8763
8859
  let y = input.readFloat();
@@ -8765,8 +8861,6 @@ var spine = (() => {
8765
8861
  let scaleY = input.readFloat();
8766
8862
  let width = input.readFloat();
8767
8863
  let height = input.readFloat();
8768
- let color = input.readInt32();
8769
- let sequence = this.readSequence(input);
8770
8864
  if (!path)
8771
8865
  path = name;
8772
8866
  let region = this.attachmentLoader.newRegionAttachment(skin, name, path, sequence);
@@ -8787,13 +8881,12 @@ var spine = (() => {
8787
8881
  return region;
8788
8882
  }
8789
8883
  case AttachmentType.BoundingBox: {
8790
- let vertexCount = input.readInt(true);
8791
- let vertices = this.readVertices(input, vertexCount);
8884
+ let vertices = this.readVertices(input, (flags & 16) != 0);
8792
8885
  let color = nonessential ? input.readInt32() : 0;
8793
8886
  let box = this.attachmentLoader.newBoundingBoxAttachment(skin, name);
8794
8887
  if (!box)
8795
8888
  return null;
8796
- box.worldVerticesLength = vertexCount << 1;
8889
+ box.worldVerticesLength = vertices.length;
8797
8890
  box.vertices = vertices.vertices;
8798
8891
  box.bones = vertices.bones;
8799
8892
  if (nonessential)
@@ -8801,18 +8894,17 @@ var spine = (() => {
8801
8894
  return box;
8802
8895
  }
8803
8896
  case AttachmentType.Mesh: {
8804
- let path = input.readStringRef();
8805
- let color = input.readInt32();
8806
- let vertexCount = input.readInt(true);
8807
- let uvs = this.readFloatArray(input, vertexCount << 1, 1);
8808
- let triangles = this.readShortArray(input);
8809
- let vertices = this.readVertices(input, vertexCount);
8810
- let hullLength = input.readInt(true);
8811
- let sequence = this.readSequence(input);
8897
+ let path = (flags & 16) != 0 ? input.readStringRef() : name;
8898
+ const color = (flags & 32) != 0 ? input.readInt32() : 4294967295;
8899
+ const sequence = (flags & 64) != 0 ? this.readSequence(input) : null;
8900
+ const hullLength = input.readInt(true);
8901
+ const vertices = this.readVertices(input, (flags & 128) != 0);
8902
+ const uvs = this.readFloatArray(input, vertices.length, 1);
8903
+ const triangles = this.readShortArray(input, (vertices.length - hullLength - 2) * 3);
8812
8904
  let edges = [];
8813
8905
  let width = 0, height = 0;
8814
8906
  if (nonessential) {
8815
- edges = this.readShortArray(input);
8907
+ edges = this.readShortArray(input, input.readInt(true));
8816
8908
  width = input.readFloat();
8817
8909
  height = input.readFloat();
8818
8910
  }
@@ -8825,7 +8917,7 @@ var spine = (() => {
8825
8917
  Color.rgba8888ToColor(mesh.color, color);
8826
8918
  mesh.bones = vertices.bones;
8827
8919
  mesh.vertices = vertices.vertices;
8828
- mesh.worldVerticesLength = vertexCount << 1;
8920
+ mesh.worldVerticesLength = vertices.length;
8829
8921
  mesh.triangles = triangles;
8830
8922
  mesh.regionUVs = uvs;
8831
8923
  if (sequence == null)
@@ -8840,19 +8932,19 @@ var spine = (() => {
8840
8932
  return mesh;
8841
8933
  }
8842
8934
  case AttachmentType.LinkedMesh: {
8843
- let path = input.readStringRef();
8844
- let color = input.readInt32();
8845
- let skinName = input.readStringRef();
8846
- let parent = input.readStringRef();
8847
- let inheritTimelines = input.readBoolean();
8848
- let sequence = this.readSequence(input);
8935
+ const path = (flags & 16) != 0 ? input.readStringRef() : name;
8936
+ if (path == null)
8937
+ throw new Error("Path of linked mesh must not be null");
8938
+ const color = (flags & 32) != 0 ? input.readInt32() : 4294967295;
8939
+ const sequence = (flags & 64) != 0 ? this.readSequence(input) : null;
8940
+ const inheritTimelines = (flags & 128) != 0;
8941
+ const skinIndex = input.readInt(true);
8942
+ const parent = input.readStringRef();
8849
8943
  let width = 0, height = 0;
8850
8944
  if (nonessential) {
8851
8945
  width = input.readFloat();
8852
8946
  height = input.readFloat();
8853
8947
  }
8854
- if (!path)
8855
- path = name;
8856
8948
  let mesh = this.attachmentLoader.newMeshAttachment(skin, name, path, sequence);
8857
8949
  if (!mesh)
8858
8950
  return null;
@@ -8863,24 +8955,23 @@ var spine = (() => {
8863
8955
  mesh.width = width * scale;
8864
8956
  mesh.height = height * scale;
8865
8957
  }
8866
- this.linkedMeshes.push(new LinkedMesh(mesh, skinName, slotIndex, parent, inheritTimelines));
8958
+ this.linkedMeshes.push(new LinkedMesh(mesh, skinIndex, slotIndex, parent, inheritTimelines));
8867
8959
  return mesh;
8868
8960
  }
8869
8961
  case AttachmentType.Path: {
8870
- let closed2 = input.readBoolean();
8871
- let constantSpeed = input.readBoolean();
8872
- let vertexCount = input.readInt(true);
8873
- let vertices = this.readVertices(input, vertexCount);
8874
- let lengths = Utils.newArray(vertexCount / 3, 0);
8962
+ const closed2 = (flags & 16) != 0;
8963
+ const constantSpeed = (flags & 32) != 0;
8964
+ const vertices = this.readVertices(input, (flags & 64) != 0);
8965
+ const lengths = Utils.newArray(vertices.length / 6, 0);
8875
8966
  for (let i = 0, n = lengths.length; i < n; i++)
8876
8967
  lengths[i] = input.readFloat() * scale;
8877
- let color = nonessential ? input.readInt32() : 0;
8878
- let path = this.attachmentLoader.newPathAttachment(skin, name);
8968
+ const color = nonessential ? input.readInt32() : 0;
8969
+ const path = this.attachmentLoader.newPathAttachment(skin, name);
8879
8970
  if (!path)
8880
8971
  return null;
8881
8972
  path.closed = closed2;
8882
8973
  path.constantSpeed = constantSpeed;
8883
- path.worldVerticesLength = vertexCount << 1;
8974
+ path.worldVerticesLength = vertices.length;
8884
8975
  path.vertices = vertices.vertices;
8885
8976
  path.bones = vertices.bones;
8886
8977
  path.lengths = lengths;
@@ -8889,11 +8980,11 @@ var spine = (() => {
8889
8980
  return path;
8890
8981
  }
8891
8982
  case AttachmentType.Point: {
8892
- let rotation = input.readFloat();
8893
- let x = input.readFloat();
8894
- let y = input.readFloat();
8895
- let color = nonessential ? input.readInt32() : 0;
8896
- let point = this.attachmentLoader.newPointAttachment(skin, name);
8983
+ const rotation = input.readFloat();
8984
+ const x = input.readFloat();
8985
+ const y = input.readFloat();
8986
+ const color = nonessential ? input.readInt32() : 0;
8987
+ const point = this.attachmentLoader.newPointAttachment(skin, name);
8897
8988
  if (!point)
8898
8989
  return null;
8899
8990
  point.x = x * scale;
@@ -8904,15 +8995,14 @@ var spine = (() => {
8904
8995
  return point;
8905
8996
  }
8906
8997
  case AttachmentType.Clipping: {
8907
- let endSlotIndex = input.readInt(true);
8908
- let vertexCount = input.readInt(true);
8909
- let vertices = this.readVertices(input, vertexCount);
8998
+ const endSlotIndex = input.readInt(true);
8999
+ const vertices = this.readVertices(input, (flags & 16) != 0);
8910
9000
  let color = nonessential ? input.readInt32() : 0;
8911
9001
  let clip = this.attachmentLoader.newClippingAttachment(skin, name);
8912
9002
  if (!clip)
8913
9003
  return null;
8914
9004
  clip.endSlot = skeletonData.slots[endSlotIndex];
8915
- clip.worldVerticesLength = vertexCount << 1;
9005
+ clip.worldVerticesLength = vertices.length;
8916
9006
  clip.vertices = vertices.vertices;
8917
9007
  clip.bones = vertices.bones;
8918
9008
  if (nonessential)
@@ -8931,12 +9021,13 @@ var spine = (() => {
8931
9021
  sequence.setupIndex = input.readInt(true);
8932
9022
  return sequence;
8933
9023
  }
8934
- readVertices(input, vertexCount) {
8935
- let scale = this.scale;
8936
- let verticesLength = vertexCount << 1;
8937
- let vertices = new Vertices();
8938
- if (!input.readBoolean()) {
8939
- vertices.vertices = this.readFloatArray(input, verticesLength, scale);
9024
+ readVertices(input, weighted) {
9025
+ const scale = this.scale;
9026
+ const vertexCount = input.readInt(true);
9027
+ const vertices = new Vertices();
9028
+ vertices.length = vertexCount << 1;
9029
+ if (!weighted) {
9030
+ vertices.vertices = this.readFloatArray(input, vertices.length, scale);
8940
9031
  return vertices;
8941
9032
  }
8942
9033
  let weights = new Array();
@@ -8966,19 +9057,16 @@ var spine = (() => {
8966
9057
  }
8967
9058
  return array;
8968
9059
  }
8969
- readShortArray(input) {
8970
- let n = input.readInt(true);
9060
+ readShortArray(input, n) {
8971
9061
  let array = new Array(n);
8972
9062
  for (let i = 0; i < n; i++)
8973
- array[i] = input.readShort();
9063
+ array[i] = input.readInt(true);
8974
9064
  return array;
8975
9065
  }
8976
9066
  readAnimation(input, name, skeletonData) {
8977
9067
  input.readInt(true);
8978
9068
  let timelines = new Array();
8979
9069
  let scale = this.scale;
8980
- let tempColor1 = new Color();
8981
- let tempColor2 = new Color();
8982
9070
  for (let i = 0, n = input.readInt(true); i < n; i++) {
8983
9071
  let slotIndex = input.readInt(true);
8984
9072
  for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) {
@@ -9219,7 +9307,8 @@ var spine = (() => {
9219
9307
  let timeline = new IkConstraintTimeline(frameCount, input.readInt(true), index);
9220
9308
  let time = input.readFloat(), mix = input.readFloat(), softness = input.readFloat() * scale;
9221
9309
  for (let frame = 0, bezier = 0; ; frame++) {
9222
- timeline.setFrame(frame, time, mix, softness, input.readByte(), input.readBoolean(), input.readBoolean());
9310
+ const flags = input.readByte();
9311
+ timeline.setFrame(frame, time, mix, softness, input.readByte(), (flags & 1) != 0, (flags & 2) != 0);
9223
9312
  if (frame == frameLast)
9224
9313
  break;
9225
9314
  let time2 = input.readFloat(), mix2 = input.readFloat(), softness2 = input.readFloat() * scale;
@@ -9272,23 +9361,24 @@ var spine = (() => {
9272
9361
  let index = input.readInt(true);
9273
9362
  let data = skeletonData.pathConstraints[index];
9274
9363
  for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) {
9275
- switch (input.readByte()) {
9364
+ const type = input.readByte(), frameCount = input.readInt(true), bezierCount = input.readInt(true);
9365
+ switch (type) {
9276
9366
  case PATH_POSITION:
9277
9367
  timelines.push(readTimeline1(
9278
9368
  input,
9279
- new PathConstraintPositionTimeline(input.readInt(true), input.readInt(true), index),
9369
+ new PathConstraintPositionTimeline(frameCount, bezierCount, index),
9280
9370
  data.positionMode == 0 /* Fixed */ ? scale : 1
9281
9371
  ));
9282
9372
  break;
9283
9373
  case PATH_SPACING:
9284
9374
  timelines.push(readTimeline1(
9285
9375
  input,
9286
- new PathConstraintSpacingTimeline(input.readInt(true), input.readInt(true), index),
9376
+ new PathConstraintSpacingTimeline(frameCount, bezierCount, index),
9287
9377
  data.spacingMode == 0 /* Length */ || data.spacingMode == 1 /* Fixed */ ? scale : 1
9288
9378
  ));
9289
9379
  break;
9290
9380
  case PATH_MIX:
9291
- let timeline = new PathConstraintMixTimeline(input.readInt(true), input.readInt(true), index);
9381
+ let timeline = new PathConstraintMixTimeline(frameCount, bezierCount, index);
9292
9382
  let time = input.readFloat(), mixRotate = input.readFloat(), mixX = input.readFloat(), mixY = input.readFloat();
9293
9383
  for (let frame = 0, bezier = 0, frameLast = timeline.getFrameCount() - 1; ; frame++) {
9294
9384
  timeline.setFrame(frame, time, mixRotate, mixX, mixY);
@@ -9313,6 +9403,42 @@ var spine = (() => {
9313
9403
  }
9314
9404
  }
9315
9405
  }
9406
+ for (let i = 0, n = input.readInt(true); i < n; i++) {
9407
+ const index = input.readInt(true) - 1;
9408
+ for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) {
9409
+ const type = input.readByte(), frameCount = input.readInt(true);
9410
+ if (type == PHYSICS_RESET) {
9411
+ const timeline = new PhysicsConstraintResetTimeline(frameCount, index);
9412
+ for (let frame = 0; frame < frameCount; frame++)
9413
+ timeline.setFrame(frame, input.readFloat());
9414
+ timelines.push(timeline);
9415
+ continue;
9416
+ }
9417
+ const bezierCount = input.readInt(true);
9418
+ switch (type) {
9419
+ case PHYSICS_INERTIA:
9420
+ timelines.push(readTimeline1(input, new PhysicsConstraintInertiaTimeline(frameCount, bezierCount, index), 1));
9421
+ break;
9422
+ case PHYSICS_STRENGTH:
9423
+ timelines.push(readTimeline1(input, new PhysicsConstraintStrengthTimeline(frameCount, bezierCount, index), 1));
9424
+ break;
9425
+ case PHYSICS_DAMPING:
9426
+ timelines.push(readTimeline1(input, new PhysicsConstraintDampingTimeline(frameCount, bezierCount, index), 1));
9427
+ break;
9428
+ case PHYSICS_MASS:
9429
+ timelines.push(readTimeline1(input, new PhysicsConstraintMassTimeline(frameCount, bezierCount, index), 1));
9430
+ break;
9431
+ case PHYSICS_WIND:
9432
+ timelines.push(readTimeline1(input, new PhysicsConstraintWindTimeline(frameCount, bezierCount, index), 1));
9433
+ break;
9434
+ case PHYSICS_GRAVITY:
9435
+ timelines.push(readTimeline1(input, new PhysicsConstraintGravityTimeline(frameCount, bezierCount, index), 1));
9436
+ break;
9437
+ case PHYSICS_MIX:
9438
+ timelines.push(readTimeline1(input, new PhysicsConstraintMixTimeline(frameCount, bezierCount, index), 1));
9439
+ }
9440
+ }
9441
+ }
9316
9442
  for (let i = 0, n = input.readInt(true); i < n; i++) {
9317
9443
  let skin = skeletonData.skins[input.readInt(true)];
9318
9444
  for (let ii = 0, nn = input.readInt(true); ii < nn; ii++) {
@@ -9427,7 +9553,9 @@ var spine = (() => {
9427
9553
  let event = new Event(time, eventData);
9428
9554
  event.intValue = input.readInt(false);
9429
9555
  event.floatValue = input.readFloat();
9430
- event.stringValue = input.readBoolean() ? input.readString() : eventData.stringValue;
9556
+ event.stringValue = input.readString();
9557
+ if (event.stringValue == null)
9558
+ event.stringValue = eventData.stringValue;
9431
9559
  if (event.data.audioPath) {
9432
9560
  event.volume = input.readFloat();
9433
9561
  event.balance = input.readFloat();
@@ -9530,22 +9658,23 @@ var spine = (() => {
9530
9658
  };
9531
9659
  var LinkedMesh = class {
9532
9660
  parent;
9533
- skin;
9661
+ skinIndex;
9534
9662
  slotIndex;
9535
9663
  mesh;
9536
9664
  inheritTimeline;
9537
- constructor(mesh, skin, slotIndex, parent, inheritDeform) {
9665
+ constructor(mesh, skinIndex, slotIndex, parent, inheritDeform) {
9538
9666
  this.mesh = mesh;
9539
- this.skin = skin;
9667
+ this.skinIndex = skinIndex;
9540
9668
  this.slotIndex = slotIndex;
9541
9669
  this.parent = parent;
9542
9670
  this.inheritTimeline = inheritDeform;
9543
9671
  }
9544
9672
  };
9545
9673
  var Vertices = class {
9546
- constructor(bones = null, vertices = null) {
9674
+ constructor(bones = null, vertices = null, length = 0) {
9547
9675
  this.bones = bones;
9548
9676
  this.vertices = vertices;
9677
+ this.length = length;
9549
9678
  }
9550
9679
  };
9551
9680
  var AttachmentType = /* @__PURE__ */ ((AttachmentType2) => {
@@ -9622,6 +9751,14 @@ var spine = (() => {
9622
9751
  var PATH_POSITION = 0;
9623
9752
  var PATH_SPACING = 1;
9624
9753
  var PATH_MIX = 2;
9754
+ var PHYSICS_INERTIA = 0;
9755
+ var PHYSICS_STRENGTH = 1;
9756
+ var PHYSICS_DAMPING = 2;
9757
+ var PHYSICS_MASS = 4;
9758
+ var PHYSICS_WIND = 5;
9759
+ var PHYSICS_GRAVITY = 6;
9760
+ var PHYSICS_MIX = 7;
9761
+ var PHYSICS_RESET = 8;
9625
9762
  var CURVE_STEPPED = 1;
9626
9763
  var CURVE_BEZIER = 2;
9627
9764