@esotericsoftware/spine-core 4.2.116 → 4.3.0

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.
Files changed (129) hide show
  1. package/dist/Animation.d.ts +426 -274
  2. package/dist/Animation.js +1174 -1210
  3. package/dist/AnimationState.d.ts +246 -201
  4. package/dist/AnimationState.js +508 -471
  5. package/dist/AnimationStateData.d.ts +12 -10
  6. package/dist/AnimationStateData.js +19 -20
  7. package/dist/AssetManagerBase.d.ts +27 -21
  8. package/dist/AssetManagerBase.js +67 -43
  9. package/dist/AtlasAttachmentLoader.d.ts +18 -12
  10. package/dist/AtlasAttachmentLoader.js +28 -39
  11. package/dist/Bone.d.ts +15 -109
  12. package/dist/Bone.js +22 -362
  13. package/dist/BoneData.d.ts +13 -28
  14. package/dist/BoneData.js +20 -29
  15. package/dist/BonePose.d.ts +130 -0
  16. package/dist/BonePose.js +426 -0
  17. package/dist/Constraint.d.ts +41 -0
  18. package/dist/Constraint.js +38 -0
  19. package/dist/ConstraintData.d.ts +7 -5
  20. package/dist/ConstraintData.js +5 -9
  21. package/dist/DrawOrder.d.ts +48 -0
  22. package/dist/DrawOrder.js +64 -0
  23. package/dist/Event.d.ts +11 -6
  24. package/dist/Event.js +10 -5
  25. package/dist/EventData.d.ts +10 -6
  26. package/dist/EventData.js +18 -7
  27. package/dist/IkConstraint.d.ts +22 -28
  28. package/dist/IkConstraint.js +115 -117
  29. package/dist/IkConstraintData.d.ts +23 -18
  30. package/dist/IkConstraintData.js +32 -22
  31. package/dist/IkConstraintPose.d.ts +49 -0
  32. package/dist/IkConstraintPose.js +55 -0
  33. package/dist/PathConstraint.d.ts +18 -22
  34. package/dist/PathConstraint.js +160 -136
  35. package/dist/PathConstraintData.d.ts +11 -14
  36. package/dist/PathConstraintData.js +14 -16
  37. package/dist/PathConstraintPose.d.ts +43 -0
  38. package/dist/PathConstraintPose.js +49 -0
  39. package/dist/Physics.d.ts +39 -0
  40. package/dist/Physics.js +41 -0
  41. package/dist/PhysicsConstraint.d.ts +26 -30
  42. package/dist/PhysicsConstraint.js +102 -94
  43. package/dist/PhysicsConstraintData.d.ts +22 -12
  44. package/dist/PhysicsConstraintData.js +23 -12
  45. package/dist/PhysicsConstraintPose.d.ts +47 -0
  46. package/dist/PhysicsConstraintPose.js +55 -0
  47. package/dist/Pose.d.ts +33 -0
  48. package/dist/Pose.js +30 -0
  49. package/dist/Posed.d.ts +58 -0
  50. package/dist/Posed.js +78 -0
  51. package/dist/PosedActive.d.ts +41 -0
  52. package/dist/{attachments/HasTextureRegion.js → PosedActive.js} +17 -2
  53. package/dist/PosedData.d.ts +40 -0
  54. package/dist/PosedData.js +45 -0
  55. package/dist/Skeleton.d.ts +110 -99
  56. package/dist/Skeleton.js +271 -449
  57. package/dist/SkeletonBinary.d.ts +1 -1
  58. package/dist/SkeletonBinary.js +644 -466
  59. package/dist/SkeletonBounds.d.ts +4 -4
  60. package/dist/SkeletonBounds.js +45 -46
  61. package/dist/SkeletonClipping.d.ts +26 -22
  62. package/dist/SkeletonClipping.js +654 -340
  63. package/dist/SkeletonData.d.ts +18 -35
  64. package/dist/SkeletonData.js +57 -97
  65. package/dist/SkeletonJson.d.ts +8 -6
  66. package/dist/SkeletonJson.js +892 -641
  67. package/dist/SkeletonRendererCore.d.ts +58 -0
  68. package/dist/SkeletonRendererCore.js +310 -0
  69. package/dist/Skin.d.ts +20 -16
  70. package/dist/Skin.js +58 -53
  71. package/dist/Slider.d.ts +46 -0
  72. package/dist/Slider.js +115 -0
  73. package/dist/SliderData.d.ts +58 -0
  74. package/dist/SliderData.js +59 -0
  75. package/dist/SliderPose.d.ts +37 -0
  76. package/dist/SliderPose.js +40 -0
  77. package/dist/Slot.d.ts +16 -38
  78. package/dist/Slot.js +37 -60
  79. package/dist/SlotData.d.ts +5 -12
  80. package/dist/SlotData.js +7 -15
  81. package/dist/SlotPose.d.ts +59 -0
  82. package/dist/SlotPose.js +81 -0
  83. package/dist/Texture.d.ts +1 -0
  84. package/dist/Texture.js +2 -1
  85. package/dist/TextureAtlas.d.ts +3 -3
  86. package/dist/TextureAtlas.js +49 -49
  87. package/dist/TransformConstraint.d.ts +16 -28
  88. package/dist/TransformConstraint.js +72 -209
  89. package/dist/TransformConstraintData.d.ts +108 -20
  90. package/dist/TransformConstraintData.js +274 -24
  91. package/dist/TransformConstraintPose.d.ts +45 -0
  92. package/dist/TransformConstraintPose.js +52 -0
  93. package/dist/Triangulator.d.ts +1 -1
  94. package/dist/Triangulator.js +91 -107
  95. package/dist/{Updatable.d.ts → Update.d.ts} +5 -12
  96. package/dist/Update.js +30 -0
  97. package/dist/Utils.d.ts +12 -3
  98. package/dist/Utils.js +78 -37
  99. package/dist/attachments/Attachment.d.ts +27 -19
  100. package/dist/attachments/Attachment.js +59 -35
  101. package/dist/attachments/AttachmentLoader.d.ts +14 -14
  102. package/dist/attachments/AttachmentLoader.js +1 -1
  103. package/dist/attachments/BoundingBoxAttachment.d.ts +1 -1
  104. package/dist/attachments/BoundingBoxAttachment.js +2 -2
  105. package/dist/attachments/ClippingAttachment.d.ts +10 -3
  106. package/dist/attachments/ClippingAttachment.js +12 -3
  107. package/dist/attachments/{HasTextureRegion.d.ts → HasSequence.d.ts} +11 -14
  108. package/dist/attachments/HasSequence.js +30 -0
  109. package/dist/attachments/MeshAttachment.d.ts +28 -35
  110. package/dist/attachments/MeshAttachment.js +85 -97
  111. package/dist/attachments/PathAttachment.d.ts +3 -3
  112. package/dist/attachments/PathAttachment.js +6 -6
  113. package/dist/attachments/PointAttachment.d.ts +11 -6
  114. package/dist/attachments/PointAttachment.js +8 -3
  115. package/dist/attachments/RegionAttachment.d.ts +25 -27
  116. package/dist/attachments/RegionAttachment.js +101 -113
  117. package/dist/attachments/Sequence.d.ts +31 -6
  118. package/dist/attachments/Sequence.js +79 -13
  119. package/dist/esm/spine-core.min.mjs +2 -2
  120. package/dist/esm/spine-core.mjs +7651 -6090
  121. package/dist/esm/spine-core.mjs.map +4 -4
  122. package/dist/iife/spine-core.js +7651 -6090
  123. package/dist/iife/spine-core.js.map +4 -4
  124. package/dist/iife/spine-core.min.js +2 -2
  125. package/dist/index.d.ts +32 -11
  126. package/dist/index.js +33 -12
  127. package/dist/polyfills.js +4 -5
  128. package/package.json +1 -1
  129. package/dist/Updatable.js +0 -30
@@ -26,10 +26,10 @@
26
26
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
27
  * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
28
  *****************************************************************************/
29
- import { Animation } from "./Animation.js";
30
- import { SkeletonData } from "./SkeletonData.js";
31
- import { StringMap } from "./Utils.js";
32
- /** Stores mix (crossfade) durations to be applied when {@link AnimationState} animations are changed. */
29
+ import type { Animation } from "./Animation.js";
30
+ import type { SkeletonData } from "./SkeletonData.js";
31
+ import type { StringMap } from "./Utils.js";
32
+ /** Stores mix (crossfade) durations to be applied when {@link AnimationState} animations are changed on the same track. */
33
33
  export declare class AnimationStateData {
34
34
  /** The SkeletonData to look up animations when they are specified by name. */
35
35
  skeletonData: SkeletonData;
@@ -39,13 +39,15 @@ export declare class AnimationStateData {
39
39
  constructor(skeletonData: SkeletonData);
40
40
  /** Sets a mix duration by animation name.
41
41
  *
42
- * See {@link #setMixWith()}. */
43
- setMix(fromName: string, toName: string, duration: number): void;
42
+ * See {@link setMix}. */
43
+ setMix(fromName: string, to: string, duration: number): void;
44
44
  /** Sets the mix duration when changing from the specified animation to the other.
45
45
  *
46
- * See {@link TrackEntry#mixDuration}. */
47
- setMixWith(from: Animation, to: Animation, duration: number): void;
48
- /** Returns the mix duration to use when changing from the specified animation to the other, or the {@link #defaultMix} if
49
- * no mix duration has been set. */
46
+ * See {@link TrackEntry.mixDuration}. */
47
+ setMix(from: Animation, to: Animation, duration: number): void;
48
+ private setMix1;
49
+ private setMix2;
50
+ /** Returns the mix duration to use when changing from the specified animation to the other on the same track, or the
51
+ * {@link defaultMix} if no mix duration has been set. */
50
52
  getMix(from: Animation, to: Animation): number;
51
53
  }
@@ -26,7 +26,7 @@
26
26
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
27
  * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
28
  *****************************************************************************/
29
- /** Stores mix (crossfade) durations to be applied when {@link AnimationState} animations are changed. */
29
+ /** Stores mix (crossfade) durations to be applied when {@link AnimationState} animations are changed on the same track. */
30
30
  export class AnimationStateData {
31
31
  /** The SkeletonData to look up animations when they are specified by name. */
32
32
  skeletonData;
@@ -38,35 +38,34 @@ export class AnimationStateData {
38
38
  throw new Error("skeletonData cannot be null.");
39
39
  this.skeletonData = skeletonData;
40
40
  }
41
- /** Sets a mix duration by animation name.
42
- *
43
- * See {@link #setMixWith()}. */
44
- setMix(fromName, toName, duration) {
45
- let from = this.skeletonData.findAnimation(fromName);
41
+ setMix(from, to, duration) {
42
+ if (typeof from === "string")
43
+ return this.setMix1(from, to, duration);
44
+ return this.setMix2(from, to, duration);
45
+ }
46
+ setMix1(fromName, toName, duration) {
47
+ const from = this.skeletonData.findAnimation(fromName);
46
48
  if (!from)
47
- throw new Error("Animation not found: " + fromName);
48
- let to = this.skeletonData.findAnimation(toName);
49
+ throw new Error(`Animation not found: ${fromName}`);
50
+ const to = this.skeletonData.findAnimation(toName);
49
51
  if (!to)
50
- throw new Error("Animation not found: " + toName);
51
- this.setMixWith(from, to, duration);
52
+ throw new Error(`Animation not found: ${toName}`);
53
+ this.setMix2(from, to, duration);
52
54
  }
53
- /** Sets the mix duration when changing from the specified animation to the other.
54
- *
55
- * See {@link TrackEntry#mixDuration}. */
56
- setMixWith(from, to, duration) {
55
+ setMix2(from, to, duration) {
57
56
  if (!from)
58
57
  throw new Error("from cannot be null.");
59
58
  if (!to)
60
59
  throw new Error("to cannot be null.");
61
- let key = from.name + "." + to.name;
60
+ const key = `${from.name}.${to.name}`;
62
61
  this.animationToMixTime[key] = duration;
63
62
  }
64
- /** Returns the mix duration to use when changing from the specified animation to the other, or the {@link #defaultMix} if
65
- * no mix duration has been set. */
63
+ /** Returns the mix duration to use when changing from the specified animation to the other on the same track, or the
64
+ * {@link defaultMix} if no mix duration has been set. */
66
65
  getMix(from, to) {
67
- let key = from.name + "." + to.name;
68
- let value = this.animationToMixTime[key];
66
+ const key = `${from.name}.${to.name}`;
67
+ const value = this.animationToMixTime[key];
69
68
  return value === undefined ? this.defaultMix : value;
70
69
  }
71
70
  }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW5pbWF0aW9uU3RhdGVEYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0FuaW1hdGlvblN0YXRlRGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFPL0UseUdBQXlHO0FBQ3pHLE1BQU0sT0FBTyxrQkFBa0I7SUFDOUIsOEVBQThFO0lBQzlFLFlBQVksQ0FBZTtJQUUzQixrQkFBa0IsR0FBc0IsRUFBRSxDQUFDO0lBRTNDLDRGQUE0RjtJQUM1RixVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBRWYsWUFBYSxZQUEwQjtRQUN0QyxJQUFJLENBQUMsWUFBWTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O29DQUVnQztJQUNoQyxNQUFNLENBQUUsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsUUFBZ0I7UUFDekQsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQy9ELElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxFQUFFO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs2Q0FFeUM7SUFDekMsVUFBVSxDQUFFLElBQWUsRUFBRSxFQUFhLEVBQUUsUUFBZ0I7UUFDM0QsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEVBQUU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDL0MsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztRQUNwQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQ3pDLENBQUM7SUFFRDt3Q0FDb0M7SUFDcEMsTUFBTSxDQUFFLElBQWUsRUFBRSxFQUFhO1FBQ3JDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDcEMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3RELENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNwaW5lIFJ1bnRpbWVzIExpY2Vuc2UgQWdyZWVtZW50XG4gKiBMYXN0IHVwZGF0ZWQgQXByaWwgNSwgMjAyNS4gUmVwbGFjZXMgYWxsIHByaW9yIHZlcnNpb25zLlxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMy0yMDI1LCBFc290ZXJpYyBTb2Z0d2FyZSBMTENcbiAqXG4gKiBJbnRlZ3JhdGlvbiBvZiB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvciBvdGhlcndpc2UgY3JlYXRpbmdcbiAqIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGlzIHBlcm1pdHRlZCB1bmRlciB0aGUgdGVybXMgYW5kXG4gKiBjb25kaXRpb25zIG9mIFNlY3Rpb24gMiBvZiB0aGUgU3BpbmUgRWRpdG9yIExpY2Vuc2UgQWdyZWVtZW50OlxuICogaHR0cDovL2Vzb3Rlcmljc29mdHdhcmUuY29tL3NwaW5lLWVkaXRvci1saWNlbnNlXG4gKlxuICogT3RoZXJ3aXNlLCBpdCBpcyBwZXJtaXR0ZWQgdG8gaW50ZWdyYXRlIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlXG4gKiBvciBvdGhlcndpc2UgY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIChjb2xsZWN0aXZlbHksXG4gKiBcIlByb2R1Y3RzXCIpLCBwcm92aWRlZCB0aGF0IGVhY2ggdXNlciBvZiB0aGUgUHJvZHVjdHMgbXVzdCBvYnRhaW4gdGhlaXIgb3duXG4gKiBTcGluZSBFZGl0b3IgbGljZW5zZSBhbmQgcmVkaXN0cmlidXRpb24gb2YgdGhlIFByb2R1Y3RzIGluIGFueSBmb3JtIG11c3RcbiAqIGluY2x1ZGUgdGhpcyBsaWNlbnNlIGFuZCBjb3B5cmlnaHQgbm90aWNlLlxuICpcbiAqIFRIRSBTUElORSBSVU5USU1FUyBBUkUgUFJPVklERUQgQlkgRVNPVEVSSUMgU09GVFdBUkUgTExDIFwiQVMgSVNcIiBBTkQgQU5ZXG4gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEXG4gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFXG4gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBFU09URVJJQyBTT0ZUV0FSRSBMTEMgQkUgTElBQkxFIEZPUiBBTllcbiAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTXG4gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVMsXG4gKiBCVVNJTkVTUyBJTlRFUlJVUFRJT04sIE9SIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTKSBIT1dFVkVSIENBVVNFRCBBTkRcbiAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0ZcbiAqIFRIRSBTUElORSBSVU5USU1FUywgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaW1wb3J0IHsgQW5pbWF0aW9uIH0gZnJvbSBcIi4vQW5pbWF0aW9uLmpzXCI7XG5pbXBvcnQgeyBTa2VsZXRvbkRhdGEgfSBmcm9tIFwiLi9Ta2VsZXRvbkRhdGEuanNcIjtcbmltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gXCIuL1V0aWxzLmpzXCI7XG5cblxuLyoqIFN0b3JlcyBtaXggKGNyb3NzZmFkZSkgZHVyYXRpb25zIHRvIGJlIGFwcGxpZWQgd2hlbiB7QGxpbmsgQW5pbWF0aW9uU3RhdGV9IGFuaW1hdGlvbnMgYXJlIGNoYW5nZWQuICovXG5leHBvcnQgY2xhc3MgQW5pbWF0aW9uU3RhdGVEYXRhIHtcblx0LyoqIFRoZSBTa2VsZXRvbkRhdGEgdG8gbG9vayB1cCBhbmltYXRpb25zIHdoZW4gdGhleSBhcmUgc3BlY2lmaWVkIGJ5IG5hbWUuICovXG5cdHNrZWxldG9uRGF0YTogU2tlbGV0b25EYXRhO1xuXG5cdGFuaW1hdGlvblRvTWl4VGltZTogU3RyaW5nTWFwPG51bWJlcj4gPSB7fTtcblxuXHQvKiogVGhlIG1peCBkdXJhdGlvbiB0byB1c2Ugd2hlbiBubyBtaXggZHVyYXRpb24gaGFzIGJlZW4gZGVmaW5lZCBiZXR3ZWVuIHR3byBhbmltYXRpb25zLiAqL1xuXHRkZWZhdWx0TWl4ID0gMDtcblxuXHRjb25zdHJ1Y3RvciAoc2tlbGV0b25EYXRhOiBTa2VsZXRvbkRhdGEpIHtcblx0XHRpZiAoIXNrZWxldG9uRGF0YSkgdGhyb3cgbmV3IEVycm9yKFwic2tlbGV0b25EYXRhIGNhbm5vdCBiZSBudWxsLlwiKTtcblx0XHR0aGlzLnNrZWxldG9uRGF0YSA9IHNrZWxldG9uRGF0YTtcblx0fVxuXG5cdC8qKiBTZXRzIGEgbWl4IGR1cmF0aW9uIGJ5IGFuaW1hdGlvbiBuYW1lLlxuXHQgKlxuXHQgKiBTZWUge0BsaW5rICNzZXRNaXhXaXRoKCl9LiAqL1xuXHRzZXRNaXggKGZyb21OYW1lOiBzdHJpbmcsIHRvTmFtZTogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyKSB7XG5cdFx0bGV0IGZyb20gPSB0aGlzLnNrZWxldG9uRGF0YS5maW5kQW5pbWF0aW9uKGZyb21OYW1lKTtcblx0XHRpZiAoIWZyb20pIHRocm93IG5ldyBFcnJvcihcIkFuaW1hdGlvbiBub3QgZm91bmQ6IFwiICsgZnJvbU5hbWUpO1xuXHRcdGxldCB0byA9IHRoaXMuc2tlbGV0b25EYXRhLmZpbmRBbmltYXRpb24odG9OYW1lKTtcblx0XHRpZiAoIXRvKSB0aHJvdyBuZXcgRXJyb3IoXCJBbmltYXRpb24gbm90IGZvdW5kOiBcIiArIHRvTmFtZSk7XG5cdFx0dGhpcy5zZXRNaXhXaXRoKGZyb20sIHRvLCBkdXJhdGlvbik7XG5cdH1cblxuXHQvKiogU2V0cyB0aGUgbWl4IGR1cmF0aW9uIHdoZW4gY2hhbmdpbmcgZnJvbSB0aGUgc3BlY2lmaWVkIGFuaW1hdGlvbiB0byB0aGUgb3RoZXIuXG5cdCAqXG5cdCAqIFNlZSB7QGxpbmsgVHJhY2tFbnRyeSNtaXhEdXJhdGlvbn0uICovXG5cdHNldE1peFdpdGggKGZyb206IEFuaW1hdGlvbiwgdG86IEFuaW1hdGlvbiwgZHVyYXRpb246IG51bWJlcikge1xuXHRcdGlmICghZnJvbSkgdGhyb3cgbmV3IEVycm9yKFwiZnJvbSBjYW5ub3QgYmUgbnVsbC5cIik7XG5cdFx0aWYgKCF0bykgdGhyb3cgbmV3IEVycm9yKFwidG8gY2Fubm90IGJlIG51bGwuXCIpO1xuXHRcdGxldCBrZXkgPSBmcm9tLm5hbWUgKyBcIi5cIiArIHRvLm5hbWU7XG5cdFx0dGhpcy5hbmltYXRpb25Ub01peFRpbWVba2V5XSA9IGR1cmF0aW9uO1xuXHR9XG5cblx0LyoqIFJldHVybnMgdGhlIG1peCBkdXJhdGlvbiB0byB1c2Ugd2hlbiBjaGFuZ2luZyBmcm9tIHRoZSBzcGVjaWZpZWQgYW5pbWF0aW9uIHRvIHRoZSBvdGhlciwgb3IgdGhlIHtAbGluayAjZGVmYXVsdE1peH0gaWZcblx0ICAqIG5vIG1peCBkdXJhdGlvbiBoYXMgYmVlbiBzZXQuICovXG5cdGdldE1peCAoZnJvbTogQW5pbWF0aW9uLCB0bzogQW5pbWF0aW9uKSB7XG5cdFx0bGV0IGtleSA9IGZyb20ubmFtZSArIFwiLlwiICsgdG8ubmFtZTtcblx0XHRsZXQgdmFsdWUgPSB0aGlzLmFuaW1hdGlvblRvTWl4VGltZVtrZXldO1xuXHRcdHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID8gdGhpcy5kZWZhdWx0TWl4IDogdmFsdWU7XG5cdH1cbn1cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQW5pbWF0aW9uU3RhdGVEYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0FuaW1hdGlvblN0YXRlRGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFRL0UsMkhBQTJIO0FBQzNILE1BQU0sT0FBTyxrQkFBa0I7SUFDOUIsOEVBQThFO0lBQzlFLFlBQVksQ0FBZTtJQUUzQixrQkFBa0IsR0FBc0IsRUFBRSxDQUFDO0lBRTNDLDRGQUE0RjtJQUM1RixVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBRWYsWUFBYSxZQUEwQjtRQUN0QyxJQUFJLENBQUMsWUFBWTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztJQUNsQyxDQUFDO0lBWUQsTUFBTSxDQUFFLElBQXdCLEVBQUUsRUFBc0IsRUFBRSxRQUFnQjtRQUN6RSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7WUFDM0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFlLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLE9BQU8sQ0FBRSxRQUFnQixFQUFFLE1BQWMsRUFBRSxRQUFnQjtRQUNsRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDL0QsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEVBQUU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRU8sT0FBTyxDQUFFLElBQWUsRUFBRSxFQUFhLEVBQUUsUUFBZ0I7UUFDaEUsSUFBSSxDQUFDLElBQUk7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLEVBQUU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDL0MsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs2REFDeUQ7SUFDekQsTUFBTSxDQUFFLElBQWUsRUFBRSxFQUFhO1FBQ3JDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3RELENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNwaW5lIFJ1bnRpbWVzIExpY2Vuc2UgQWdyZWVtZW50XG4gKiBMYXN0IHVwZGF0ZWQgQXByaWwgNSwgMjAyNS4gUmVwbGFjZXMgYWxsIHByaW9yIHZlcnNpb25zLlxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMy0yMDI1LCBFc290ZXJpYyBTb2Z0d2FyZSBMTENcbiAqXG4gKiBJbnRlZ3JhdGlvbiBvZiB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvciBvdGhlcndpc2UgY3JlYXRpbmdcbiAqIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGlzIHBlcm1pdHRlZCB1bmRlciB0aGUgdGVybXMgYW5kXG4gKiBjb25kaXRpb25zIG9mIFNlY3Rpb24gMiBvZiB0aGUgU3BpbmUgRWRpdG9yIExpY2Vuc2UgQWdyZWVtZW50OlxuICogaHR0cDovL2Vzb3Rlcmljc29mdHdhcmUuY29tL3NwaW5lLWVkaXRvci1saWNlbnNlXG4gKlxuICogT3RoZXJ3aXNlLCBpdCBpcyBwZXJtaXR0ZWQgdG8gaW50ZWdyYXRlIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlXG4gKiBvciBvdGhlcndpc2UgY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIChjb2xsZWN0aXZlbHksXG4gKiBcIlByb2R1Y3RzXCIpLCBwcm92aWRlZCB0aGF0IGVhY2ggdXNlciBvZiB0aGUgUHJvZHVjdHMgbXVzdCBvYnRhaW4gdGhlaXIgb3duXG4gKiBTcGluZSBFZGl0b3IgbGljZW5zZSBhbmQgcmVkaXN0cmlidXRpb24gb2YgdGhlIFByb2R1Y3RzIGluIGFueSBmb3JtIG11c3RcbiAqIGluY2x1ZGUgdGhpcyBsaWNlbnNlIGFuZCBjb3B5cmlnaHQgbm90aWNlLlxuICpcbiAqIFRIRSBTUElORSBSVU5USU1FUyBBUkUgUFJPVklERUQgQlkgRVNPVEVSSUMgU09GVFdBUkUgTExDIFwiQVMgSVNcIiBBTkQgQU5ZXG4gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEXG4gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFXG4gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBFU09URVJJQyBTT0ZUV0FSRSBMTEMgQkUgTElBQkxFIEZPUiBBTllcbiAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTXG4gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVMsXG4gKiBCVVNJTkVTUyBJTlRFUlJVUFRJT04sIE9SIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTKSBIT1dFVkVSIENBVVNFRCBBTkRcbiAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0ZcbiAqIFRIRSBTUElORSBSVU5USU1FUywgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaW1wb3J0IHR5cGUgeyBBbmltYXRpb24gfSBmcm9tIFwiLi9BbmltYXRpb24uanNcIjtcbmltcG9ydCB0eXBlIHsgQW5pbWF0aW9uU3RhdGUsIFRyYWNrRW50cnkgfSBmcm9tIFwiLi9BbmltYXRpb25TdGF0ZS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTa2VsZXRvbkRhdGEgfSBmcm9tIFwiLi9Ta2VsZXRvbkRhdGEuanNcIjtcbmltcG9ydCB0eXBlIHsgU3RyaW5nTWFwIH0gZnJvbSBcIi4vVXRpbHMuanNcIjtcblxuXG4vKiogU3RvcmVzIG1peCAoY3Jvc3NmYWRlKSBkdXJhdGlvbnMgdG8gYmUgYXBwbGllZCB3aGVuIHtAbGluayBBbmltYXRpb25TdGF0ZX0gYW5pbWF0aW9ucyBhcmUgY2hhbmdlZCBvbiB0aGUgc2FtZSB0cmFjay4gKi9cbmV4cG9ydCBjbGFzcyBBbmltYXRpb25TdGF0ZURhdGEge1xuXHQvKiogVGhlIFNrZWxldG9uRGF0YSB0byBsb29rIHVwIGFuaW1hdGlvbnMgd2hlbiB0aGV5IGFyZSBzcGVjaWZpZWQgYnkgbmFtZS4gKi9cblx0c2tlbGV0b25EYXRhOiBTa2VsZXRvbkRhdGE7XG5cblx0YW5pbWF0aW9uVG9NaXhUaW1lOiBTdHJpbmdNYXA8bnVtYmVyPiA9IHt9O1xuXG5cdC8qKiBUaGUgbWl4IGR1cmF0aW9uIHRvIHVzZSB3aGVuIG5vIG1peCBkdXJhdGlvbiBoYXMgYmVlbiBkZWZpbmVkIGJldHdlZW4gdHdvIGFuaW1hdGlvbnMuICovXG5cdGRlZmF1bHRNaXggPSAwO1xuXG5cdGNvbnN0cnVjdG9yIChza2VsZXRvbkRhdGE6IFNrZWxldG9uRGF0YSkge1xuXHRcdGlmICghc2tlbGV0b25EYXRhKSB0aHJvdyBuZXcgRXJyb3IoXCJza2VsZXRvbkRhdGEgY2Fubm90IGJlIG51bGwuXCIpO1xuXHRcdHRoaXMuc2tlbGV0b25EYXRhID0gc2tlbGV0b25EYXRhO1xuXHR9XG5cblx0LyoqIFNldHMgYSBtaXggZHVyYXRpb24gYnkgYW5pbWF0aW9uIG5hbWUuXG5cdCAqXG5cdCAqIFNlZSB7QGxpbmsgc2V0TWl4fS4gKi9cblx0c2V0TWl4IChmcm9tTmFtZTogc3RyaW5nLCB0bzogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyKTogdm9pZDtcblxuXHQvKiogU2V0cyB0aGUgbWl4IGR1cmF0aW9uIHdoZW4gY2hhbmdpbmcgZnJvbSB0aGUgc3BlY2lmaWVkIGFuaW1hdGlvbiB0byB0aGUgb3RoZXIuXG5cdCAqXG5cdCAqIFNlZSB7QGxpbmsgVHJhY2tFbnRyeS5taXhEdXJhdGlvbn0uICovXG5cdHNldE1peCAoZnJvbTogQW5pbWF0aW9uLCB0bzogQW5pbWF0aW9uLCBkdXJhdGlvbjogbnVtYmVyKTogdm9pZDtcblxuXHRzZXRNaXggKGZyb206IHN0cmluZyB8IEFuaW1hdGlvbiwgdG86IHN0cmluZyB8IEFuaW1hdGlvbiwgZHVyYXRpb246IG51bWJlcikge1xuXHRcdGlmICh0eXBlb2YgZnJvbSA9PT0gXCJzdHJpbmdcIilcblx0XHRcdHJldHVybiB0aGlzLnNldE1peDEoZnJvbSwgdG8gYXMgc3RyaW5nLCBkdXJhdGlvbik7XG5cdFx0cmV0dXJuIHRoaXMuc2V0TWl4Mihmcm9tLCB0byBhcyBBbmltYXRpb24sIGR1cmF0aW9uKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0TWl4MSAoZnJvbU5hbWU6IHN0cmluZywgdG9OYW1lOiBzdHJpbmcsIGR1cmF0aW9uOiBudW1iZXIpIHtcblx0XHRjb25zdCBmcm9tID0gdGhpcy5za2VsZXRvbkRhdGEuZmluZEFuaW1hdGlvbihmcm9tTmFtZSk7XG5cdFx0aWYgKCFmcm9tKSB0aHJvdyBuZXcgRXJyb3IoYEFuaW1hdGlvbiBub3QgZm91bmQ6ICR7ZnJvbU5hbWV9YCk7XG5cdFx0Y29uc3QgdG8gPSB0aGlzLnNrZWxldG9uRGF0YS5maW5kQW5pbWF0aW9uKHRvTmFtZSk7XG5cdFx0aWYgKCF0bykgdGhyb3cgbmV3IEVycm9yKGBBbmltYXRpb24gbm90IGZvdW5kOiAke3RvTmFtZX1gKTtcblx0XHR0aGlzLnNldE1peDIoZnJvbSwgdG8sIGR1cmF0aW9uKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0TWl4MiAoZnJvbTogQW5pbWF0aW9uLCB0bzogQW5pbWF0aW9uLCBkdXJhdGlvbjogbnVtYmVyKSB7XG5cdFx0aWYgKCFmcm9tKSB0aHJvdyBuZXcgRXJyb3IoXCJmcm9tIGNhbm5vdCBiZSBudWxsLlwiKTtcblx0XHRpZiAoIXRvKSB0aHJvdyBuZXcgRXJyb3IoXCJ0byBjYW5ub3QgYmUgbnVsbC5cIik7XG5cdFx0Y29uc3Qga2V5ID0gYCR7ZnJvbS5uYW1lfS4ke3RvLm5hbWV9YDtcblx0XHR0aGlzLmFuaW1hdGlvblRvTWl4VGltZVtrZXldID0gZHVyYXRpb247XG5cdH1cblxuXHQvKiogUmV0dXJucyB0aGUgbWl4IGR1cmF0aW9uIHRvIHVzZSB3aGVuIGNoYW5naW5nIGZyb20gdGhlIHNwZWNpZmllZCBhbmltYXRpb24gdG8gdGhlIG90aGVyIG9uIHRoZSBzYW1lIHRyYWNrLCBvciB0aGVcblx0ICoge0BsaW5rIGRlZmF1bHRNaXh9IGlmIG5vIG1peCBkdXJhdGlvbiBoYXMgYmVlbiBzZXQuICovXG5cdGdldE1peCAoZnJvbTogQW5pbWF0aW9uLCB0bzogQW5pbWF0aW9uKSB7XG5cdFx0Y29uc3Qga2V5ID0gYCR7ZnJvbS5uYW1lfS4ke3RvLm5hbWV9YDtcblx0XHRjb25zdCB2YWx1ZSA9IHRoaXMuYW5pbWF0aW9uVG9NaXhUaW1lW2tleV07XG5cdFx0cmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgPyB0aGlzLmRlZmF1bHRNaXggOiB2YWx1ZTtcblx0fVxufVxuIl19
@@ -26,18 +26,23 @@
26
26
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27
27
  * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
28
  *****************************************************************************/
29
- import { Texture } from "./Texture.js";
29
+ import type { Texture } from "./Texture.js";
30
30
  import { TextureAtlas } from "./TextureAtlas.js";
31
- import { Disposable, StringMap } from "./Utils.js";
31
+ import type { Disposable, StringMap } from "./Utils.js";
32
+ type AssetData = (Uint8Array | string | Texture | TextureAtlas | object) & Partial<Disposable>;
33
+ type AssetCallback<T extends AssetData> = (path: string, data: T) => void;
34
+ type ErrorCallback = (path: string, message: string) => void;
35
+ export type TextureLoader = (image: HTMLImageElement | ImageBitmap, pma?: boolean) => Texture;
32
36
  export declare class AssetManagerBase implements Disposable {
33
- private pathPrefix;
34
37
  private textureLoader;
38
+ private pathPrefix;
35
39
  private downloader;
36
40
  private cache;
37
41
  private errors;
38
42
  private toLoad;
39
43
  private loaded;
40
- constructor(textureLoader: (image: HTMLImageElement | ImageBitmap) => Texture, pathPrefix?: string, downloader?: Downloader, cache?: AssetCache);
44
+ private texturePmaInfo;
45
+ constructor(textureLoader: TextureLoader, pathPrefix?: string, downloader?: Downloader, cache?: AssetCache);
41
46
  private start;
42
47
  private success;
43
48
  private error;
@@ -46,23 +51,19 @@ export declare class AssetManagerBase implements Disposable {
46
51
  loadBinary(path: string, success?: (path: string, binary: Uint8Array) => void, error?: (path: string, message: string) => void): void;
47
52
  loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, message: string) => void): void;
48
53
  loadJson(path: string, success?: (path: string, object: object) => void, error?: (path: string, message: string) => void): void;
49
- reuseAssets(path: string, success?: (path: string, data: any) => void, error?: (path: string, message: string) => void): boolean;
50
- loadTexture(path: string, success?: (path: string, texture: Texture) => void, error?: (path: string, message: string) => void): void;
51
- loadTextureAtlas(path: string, success?: (path: string, atlas: TextureAtlas) => void, error?: (path: string, message: string) => void, fileAlias?: {
52
- [keyword: string]: string;
53
- }): void;
54
- loadTextureAtlasButNoTextures(path: string, success?: (path: string, atlas: TextureAtlas) => void, error?: (path: string, message: string) => void, fileAlias?: {
55
- [keyword: string]: string;
56
- }): void;
54
+ reuseAssets<T extends AssetData>(path: string, success?: AssetCallback<T>, error?: ErrorCallback): boolean;
55
+ loadTexture(path: string, success?: AssetCallback<Texture>, error?: ErrorCallback): void;
56
+ loadTextureAtlas(path: string, success?: AssetCallback<TextureAtlas>, error?: ErrorCallback, fileAlias?: Record<string, string>): void;
57
+ loadTextureAtlasButNoTextures(path: string, success?: AssetCallback<TextureAtlas>, error?: ErrorCallback): void;
57
58
  loadBinaryAsync(path: string): Promise<unknown>;
58
59
  loadJsonAsync(path: string): Promise<unknown>;
59
60
  loadTextureAsync(path: string): Promise<Texture>;
60
61
  loadTextureAtlasAsync(path: string): Promise<unknown>;
61
62
  loadTextureAtlasButNoTexturesAsync(path: string): Promise<TextureAtlas>;
62
63
  setCache(cache: AssetCache): void;
63
- get(path: string): any;
64
- require(path: string): any;
65
- remove(path: string): any;
64
+ get(path: string): AssetData;
65
+ require(path: string): AssetData;
66
+ remove(path: string): AssetData;
66
67
  removeAll(): void;
67
68
  isLoadingComplete(): boolean;
68
69
  getToLoad(): number;
@@ -74,24 +75,29 @@ export declare class AssetManagerBase implements Disposable {
74
75
  private disposeAssetInternal;
75
76
  private createTextureAtlas;
76
77
  private createTexture;
78
+ private texturePath;
77
79
  }
78
80
  export declare class AssetCache {
79
- assets: StringMap<any>;
81
+ assets: StringMap<AssetData>;
80
82
  assetsRefCount: StringMap<number>;
81
- assetsLoaded: StringMap<Promise<any>>;
83
+ assetsLoaded: StringMap<Promise<AssetData | undefined>>;
82
84
  static AVAILABLE_CACHES: Map<string, AssetCache>;
83
85
  static getCache(id: string): AssetCache;
84
- addAsset(path: string, asset: any): Promise<void>;
86
+ addAsset<T extends AssetData>(path: string, asset: T): Promise<T>;
87
+ getAsset<T extends AssetData>(path: string): Promise<T> | undefined;
85
88
  }
89
+ type DownloaderSuccessCallback<T extends AssetData = AssetData> = (data: T) => void;
90
+ type DownloaderErrorCallback = (status: number, responseText: string) => void;
86
91
  export declare class Downloader {
87
92
  private callbacks;
88
93
  rawDataUris: StringMap<string>;
89
94
  dataUriToString(dataUri: string): string;
90
95
  base64ToUint8Array(base64: string): Uint8Array;
91
96
  dataUriToUint8Array(dataUri: string): Uint8Array;
92
- downloadText(url: string, success: (data: string) => void, error: (status: number, responseText: string) => void): void;
93
- downloadJson(url: string, success: (data: object) => void, error: (status: number, responseText: string) => void): void;
94
- downloadBinary(url: string, success: (data: Uint8Array) => void, error: (status: number, responseText: string) => void): void;
97
+ downloadText(url: string, success: DownloaderSuccessCallback<string>, error: DownloaderErrorCallback): void;
98
+ downloadJson(url: string, success: DownloaderSuccessCallback<object>, error: DownloaderErrorCallback): void;
99
+ downloadBinary(url: string, success: (data: Uint8Array) => void, error: DownloaderErrorCallback): void;
95
100
  private start;
96
101
  private finish;
97
102
  }
103
+ export {};