@kurot/spine-4.2 0.1.0 → 0.2.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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,32 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@kurot/spine-4.2` are documented here.
4
+
5
+ ---
6
+
7
+ ## [0.2.0] — 2026-09-02
8
+
9
+ ### Added
10
+
11
+ - Add time-based animation segments with `Track.addSegment()` and
12
+ `SkeletonAnimation.playSegments()`.
13
+ - Add `Track.finishCurrentLoop()` to leave an indefinitely repeating segment
14
+ after its current iteration and continue the queued animation segments.
15
+
16
+ ## [0.1.1] — 2026-09-01
17
+
18
+ ### Fixed
19
+
20
+ - Read the `pma` flag from every Spine atlas page and preserve textures that
21
+ were already exported with premultiplied alpha, preventing dark fringes from
22
+ a second alpha multiplication during WebGL upload.
23
+ - Keep standalone `loadTexture()` calls on the existing straight-alpha path;
24
+ only atlas pages explicitly marked `pma:true` opt into the new behavior.
25
+
26
+ ### Changed
27
+
28
+ - Require `@kurot/core ^1.0.16` for source-aware texture uploads.
29
+
30
+ ### Validation
31
+
32
+ - TypeScript implementation and declaration build passing with Spine Core 4.2.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Kelvin
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -63,9 +63,17 @@ function waitForLoad() {
63
63
 
64
64
  // Promise-based sequencing
65
65
  const track = hero.start(0);
66
- track.add('idle', 0);
67
- await track.waitPlayEnd();
68
- track.add('run', 3);
66
+ track.add('idle', 1).add('run', 3);
67
+ await track.waitTrackEnd();
68
+
69
+ // Play 0–5s once, loop 5–10s, then finish from 10s onward.
70
+ const resultTrack = hero.playSegments('result', [
71
+ { start: 0, end: 5 },
72
+ { start: 5, end: 10, loop: 0 },
73
+ { start: 10 },
74
+ ]);
75
+ // Later, call resultTrack.finishCurrentLoop() to leave the loop after
76
+ // its current iteration and play the final segment.
69
77
  }
70
78
  requestAnimationFrame(waitForLoad);
71
79
  ```
@@ -79,6 +87,7 @@ The main display object. Extends `Sprite` from `@kurot/core`.
79
87
  | Method | Description |
80
88
  | --------------------------------------- | ------------------------------------------------------------------- |
81
89
  | `play(anim, loop, trackID?, listener?)` | Play an animation. `loop=0` = loop forever, `loop=N` = play N times |
90
+ | `playSegments(anim, segments, trackID?)` | Queue time ranges from the same animation |
82
91
  | `playDefault(anim?, loop, trackID?)` | Play first animation if `anim` omitted |
83
92
  | `playList(animList, loop, trackID?)` | Queue multiple animations |
84
93
  | `playAll(loop, trackID?)` | Queue all animations in skeleton data |
@@ -99,6 +108,8 @@ Returned by `SkeletonAnimation.start()`. Manages an animation queue on a single
99
108
  | Method | Description |
100
109
  | ---------------------------- | ------------------------------------------------- |
101
110
  | `add(name, loop, listener?)` | Append an animation to the queue |
111
+ | `addSegment(name, segment)` | Append a time range, expressed in seconds |
112
+ | `finishCurrentLoop()` | Finish an infinite segment after its current loop |
102
113
  | `setToLastFrame()` | Jump the track entry to its last frame |
103
114
  | `waitPlayStart()` | Promise — resolves when the animation starts |
104
115
  | `waitPlayEnd()` | Promise — resolves when all loops finish |
package/dist/index.d.ts CHANGED
@@ -4,6 +4,6 @@ export { SlotRenderer } from './kurot/SlotRenderer.js';
4
4
  export { KurotTexture } from './kurot/KurotTexture.js';
5
5
  export { KurotAssetManager } from './kurot/KurotAssetManager.js';
6
6
  export { Track, SpineEvent } from './kurot/Track.js';
7
- export type { AnimationListener } from './kurot/Track.js';
7
+ export type { AnimationListener, AnimationSegment } from './kurot/Track.js';
8
8
  export { Skeleton, SkeletonData, SkeletonJson, SkeletonBinary, AnimationState, AnimationStateData, TextureAtlas, AtlasAttachmentLoader, AssetManagerBase, Texture, TextureFilter, TextureWrap, MathUtils, Color, } from '@esotericsoftware/spine-core';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,OAAO,EACN,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,WAAW,EACX,SAAS,EACT,KAAK,GACL,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,OAAO,EACN,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,WAAW,EACX,SAAS,EACT,KAAK,GACL,MAAM,8BAA8B,CAAC"}
@@ -17,6 +17,7 @@ import { KurotTexture } from './KurotTexture.js';
17
17
  export declare class KurotAssetManager extends AssetManagerBase {
18
18
  constructor(pathPrefix?: string);
19
19
  private get _rt();
20
+ private _loadTexture;
20
21
  loadTexture(path: string, success?: (path: string, texture: KurotTexture) => void, error?: (path: string, message: string) => void): void;
21
22
  loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, message: string) => void): void;
22
23
  loadJson(path: string, success?: (path: string, object: object) => void, error?: (path: string, message: string) => void): void;
@@ -1 +1 @@
1
- {"version":3,"file":"KurotAssetManager.d.ts","sourceRoot":"","sources":["../../src/kurot/KurotAssetManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAiBjD;;;;;;;;;;;;;GAaG;AACH,qBAAa,iBAAkB,SAAQ,gBAAgB;gBAGnC,UAAU,SAAK;IAalC,OAAO,KAAK,GAAG,GAEd;IAIe,WAAW,CAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,IAAI,EACvD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAC7C,IAAI;IAoBS,QAAQ,CACvB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,EAC9C,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAC7C,IAAI;IAiBS,QAAQ,CACvB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,EAChD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAC7C,IAAI;IAqBS,UAAU,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,EACpD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAC7C,IAAI;IAkBS,gBAAgB,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,EACrD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAC7C,IAAI;CAiDP"}
1
+ {"version":3,"file":"KurotAssetManager.d.ts","sourceRoot":"","sources":["../../src/kurot/KurotAssetManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAiBjD;;;;;;;;;;;;;GAaG;AACH,qBAAa,iBAAkB,SAAQ,gBAAgB;gBAGnC,UAAU,SAAK;IAalC,OAAO,KAAK,GAAG,GAEd;IAED,OAAO,CAAC,YAAY;IA4BJ,WAAW,CAC1B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,IAAI,EACvD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAC7C,IAAI;IAIS,QAAQ,CACvB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,EAC9C,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAC7C,IAAI;IAiBS,QAAQ,CACvB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,EAChD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAC7C,IAAI;IAqBS,UAAU,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,EACpD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAC7C,IAAI;IAkBS,gBAAgB,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,EACrD,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,GAC7C,IAAI;CAkDP"}
@@ -31,8 +31,7 @@ export class KurotAssetManager extends AssetManagerBase {
31
31
  get _rt() {
32
32
  return this;
33
33
  }
34
- // ── Overrides ─────────────────────────────────────────────────────────────
35
- loadTexture(path, success, error) {
34
+ _loadTexture(path, premultipliedAlpha, success, error) {
36
35
  const resolvedPath = this._rt.start(path);
37
36
  const loader = new ImageLoader();
38
37
  loader.addEventListener(Event.COMPLETE, () => {
@@ -41,6 +40,7 @@ export class KurotAssetManager extends AssetManagerBase {
41
40
  this._rt.error(error ?? null, path, `Failed to load image: ${path}`);
42
41
  return;
43
42
  }
43
+ bd.premultipliedAlpha = premultipliedAlpha;
44
44
  this._rt.success(success ?? null, resolvedPath, new KurotTexture(bd));
45
45
  });
46
46
  loader.addEventListener(IOErrorEvent.IO_ERROR, () => {
@@ -48,6 +48,10 @@ export class KurotAssetManager extends AssetManagerBase {
48
48
  });
49
49
  loader.load(resolvedPath);
50
50
  }
51
+ // ── Overrides ─────────────────────────────────────────────────────────────
52
+ loadTexture(path, success, error) {
53
+ this._loadTexture(path, false, success, error);
54
+ }
51
55
  loadText(path, success, error) {
52
56
  const resolvedPath = this._rt.start(path);
53
57
  const xhr = new HttpRequest();
@@ -109,7 +113,7 @@ export class KurotAssetManager extends AssetManagerBase {
109
113
  return;
110
114
  }
111
115
  for (const page of atlas.pages) {
112
- this.loadTexture(parent + page.name, (_imagePath, texture) => {
116
+ this._loadTexture(parent + page.name, page.pma, (_imagePath, texture) => {
113
117
  page.setTexture(texture);
114
118
  if (--remaining === 0) {
115
119
  this._rt.success(success ?? null, resolvedPath, atlas);
@@ -1 +1 @@
1
- {"version":3,"file":"KurotAssetManager.js","sourceRoot":"","sources":["../../src/kurot/KurotAssetManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KurotAssetManager.js","sourceRoot":"","sources":["../../src/kurot/KurotAssetManager.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { Sprite } from '@kurot/core';
3
3
  import type { Stage } from '@kurot/core';
4
4
  import { SkeletonRenderer } from './SkeletonRenderer.js';
5
5
  import { Track } from './Track.js';
6
- import type { AnimationListener } from './Track.js';
6
+ import type { AnimationListener, AnimationSegment } from './Track.js';
7
7
  export declare class SkeletonAnimation extends Sprite {
8
8
  readonly renderer: SkeletonRenderer;
9
9
  private _lastTime;
@@ -41,6 +41,13 @@ export declare class SkeletonAnimation extends Sprite {
41
41
  * @param listener Optional lifecycle callbacks.
42
42
  */
43
43
  play(anim: string, loop?: number, trackID?: number, listener?: AnimationListener): Track;
44
+ /**
45
+ * Play queued time segments from the same animation.
46
+ *
47
+ * An indefinitely repeating segment blocks later segments until
48
+ * `Track.finishCurrentLoop()` is called.
49
+ */
50
+ playSegments(anim: string, segments: AnimationSegment[], trackID?: number): Track;
44
51
  /**
45
52
  * Play the first animation in the skeleton data, or a named one.
46
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonAnimation.d.ts","sourceRoot":"","sources":["../../src/kurot/SkeletonAnimation.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,KAAK,YAAY,IAAI,iBAAiB,EACtC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAS,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAuBpD,qBAAa,iBAAkB,SAAQ,MAAM;IAC5C,SAAgB,QAAQ,EAAE,gBAAgB,CAAC;IAE3C,OAAO,CAAC,SAAS,CAAK;gBAEH,YAAY,EAAE,iBAAiB;IAQlD,IAAW,QAAQ,IAAI,QAAQ,CAE9B;IACD,IAAW,YAAY,IAAI,iBAAiB,CAE3C;IACD,IAAW,KAAK,IAAI,cAAc,CAEjC;IACD,IAAW,SAAS,IAAI,kBAAkB,CAEzC;IAID,IAAW,KAAK,IAAI,OAAO,CAE1B;IACD,IAAW,KAAK,CAAC,CAAC,EAAE,OAAO,EAE1B;IAED,IAAW,KAAK,IAAI,OAAO,CAE1B;IACD,IAAW,KAAK,CAAC,CAAC,EAAE,OAAO,EAE1B;IAID;;OAEG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxC;;;OAGG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQxE;;OAEG;IACI,eAAe,IAAI,MAAM,EAAE;IAIlC;;OAEG;IACI,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxC;;;;;;OAMG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAI,EAAE,OAAO,SAAI,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,KAAK;IAIrF;;OAEG;IACI,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,SAAI,EAAE,OAAO,SAAI,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,KAAK;IAK7F;;OAEG;IACI,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,SAAI,EAAE,OAAO,SAAI,GAAG,KAAK;IAQjE;;OAEG;IACI,OAAO,CAAC,IAAI,SAAI,EAAE,OAAO,SAAI,GAAG,KAAK;IAQ5C;;OAEG;IACI,UAAU,CAAC,OAAO,SAAI,GAAG,KAAK;IAMrC;;OAEG;IACI,KAAK,CAAC,OAAO,SAAI,GAAG,KAAK;IAKhC;;OAEG;IACI,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlC;;;OAGG;IACI,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAOrB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAMrD,kBAAkB,IAAI,IAAI;IAO1C,OAAO,CAAC,iBAAiB,CAIvB;CACF"}
1
+ {"version":3,"file":"SkeletonAnimation.d.ts","sourceRoot":"","sources":["../../src/kurot/SkeletonAnimation.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,cAAc,EACd,kBAAkB,EAClB,QAAQ,EACR,KAAK,YAAY,IAAI,iBAAiB,EACtC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAS,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAuBtE,qBAAa,iBAAkB,SAAQ,MAAM;IAC5C,SAAgB,QAAQ,EAAE,gBAAgB,CAAC;IAE3C,OAAO,CAAC,SAAS,CAAK;gBAEH,YAAY,EAAE,iBAAiB;IAQlD,IAAW,QAAQ,IAAI,QAAQ,CAE9B;IACD,IAAW,YAAY,IAAI,iBAAiB,CAE3C;IACD,IAAW,KAAK,IAAI,cAAc,CAEjC;IACD,IAAW,SAAS,IAAI,kBAAkB,CAEzC;IAID,IAAW,KAAK,IAAI,OAAO,CAE1B;IACD,IAAW,KAAK,CAAC,CAAC,EAAE,OAAO,EAE1B;IAED,IAAW,KAAK,IAAI,OAAO,CAE1B;IACD,IAAW,KAAK,CAAC,CAAC,EAAE,OAAO,EAE1B;IAID;;OAEG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxC;;;OAGG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAQxE;;OAEG;IACI,eAAe,IAAI,MAAM,EAAE;IAIlC;;OAEG;IACI,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKxC;;;;;;OAMG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAI,EAAE,OAAO,SAAI,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,KAAK;IAIrF;;;;;OAKG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,OAAO,SAAI,GAAG,KAAK;IAYnF;;OAEG;IACI,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,SAAI,EAAE,OAAO,SAAI,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,KAAK;IAK7F;;OAEG;IACI,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,SAAI,EAAE,OAAO,SAAI,GAAG,KAAK;IAQjE;;OAEG;IACI,OAAO,CAAC,IAAI,SAAI,EAAE,OAAO,SAAI,GAAG,KAAK;IAQ5C;;OAEG;IACI,UAAU,CAAC,OAAO,SAAI,GAAG,KAAK;IAMrC;;OAEG;IACI,KAAK,CAAC,OAAO,SAAI,GAAG,KAAK;IAKhC;;OAEG;IACI,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIlC;;;OAGG;IACI,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAOrB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAMrD,kBAAkB,IAAI,IAAI;IAO1C,OAAO,CAAC,iBAAiB,CAIvB;CACF"}
@@ -97,6 +97,22 @@ export class SkeletonAnimation extends Sprite {
97
97
  play(anim, loop = 0, trackID = 0, listener) {
98
98
  return this.start(trackID).add(anim, loop, listener);
99
99
  }
100
+ /**
101
+ * Play queued time segments from the same animation.
102
+ *
103
+ * An indefinitely repeating segment blocks later segments until
104
+ * `Track.finishCurrentLoop()` is called.
105
+ */
106
+ playSegments(anim, segments, trackID = 0) {
107
+ if (segments.length === 0) {
108
+ throw new Error('At least one animation segment is required.');
109
+ }
110
+ const track = this.start(trackID);
111
+ for (const segment of segments) {
112
+ track.addSegment(anim, segment);
113
+ }
114
+ return track;
115
+ }
100
116
  /**
101
117
  * Play the first animation in the skeleton data, or a named one.
102
118
  */
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonAnimation.js","sourceRoot":"","sources":["../../src/kurot/SkeletonAnimation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SkeletonAnimation.js","sourceRoot":"","sources":["../../src/kurot/SkeletonAnimation.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,27 @@ export interface AnimationListener {
23
23
  interrupt?: () => void;
24
24
  custom?: (event: unknown) => void;
25
25
  }
26
+ /**
27
+ * A time range of one animation, expressed in seconds.
28
+ */
29
+ export interface AnimationSegment {
30
+ /**
31
+ * Inclusive start time in seconds.
32
+ */
33
+ start: number;
34
+ /**
35
+ * End time in seconds. Omit it to use the animation duration.
36
+ */
37
+ end?: number;
38
+ /**
39
+ * Number of times to play the segment. `0` repeats indefinitely.
40
+ */
41
+ loop?: number;
42
+ /**
43
+ * Optional lifecycle callbacks for this segment.
44
+ */
45
+ listener?: AnimationListener;
46
+ }
26
47
  /**
27
48
  * Manages a queue of animations on a single Spine track.
28
49
  *
@@ -32,8 +53,8 @@ export interface AnimationListener {
32
53
  * @example
33
54
  * ```ts
34
55
  * const track = hero.start(0);
35
- * track.add('idle', 0); // loop forever
36
- * track.add('attack', 1); // play once, then continue queue
56
+ * track.add('attack', 1); // play once
57
+ * track.add('idle', 0); // then loop forever
37
58
  * await track.waitPlayEnd();
38
59
  * ```
39
60
  */
@@ -53,6 +74,20 @@ export declare class Track extends EventEmitter<SpineEvent> {
53
74
  * @param listener Optional lifecycle callbacks for this animation.
54
75
  */
55
76
  add(name: string, loop?: number, listener?: AnimationListener): this;
77
+ /**
78
+ * Add a time segment of an animation to the queue.
79
+ *
80
+ * Times use seconds, matching the Spine runtime. Convert an editor frame
81
+ * with `frame / fps`, for example frame 20 at 60 FPS is `20 / 60`.
82
+ */
83
+ addSegment(name: string, segment: AnimationSegment): this;
84
+ /**
85
+ * Finish an indefinitely repeating segment after its current iteration.
86
+ *
87
+ * The next queued segment starts when the current iteration reaches its
88
+ * configured end. Finite segments are left unchanged.
89
+ */
90
+ finishCurrentLoop(): void;
56
91
  /**
57
92
  * Jump the track entry to its last frame.
58
93
  */
@@ -94,6 +129,8 @@ export declare class Track extends EventEmitter<SpineEvent> {
94
129
  private _onComplete;
95
130
  private _onInterrupt;
96
131
  private _onCustomEvent;
132
+ private _enqueue;
133
+ private _getAnimationDuration;
97
134
  }
98
135
  export {};
99
136
  //# sourceMappingURL=Track.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Track.d.ts","sourceRoot":"","sources":["../../src/kurot/Track.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,KAAK,oBAAoB,GAAG,GAAG,CAAC;AAEhC;;GAEG;AACH,0BAAkB,UAAU;IAC3B,SAAS,IAAA;IACT,OAAO,IAAA;IACP,SAAS,IAAA;IACT,OAAO,IAAA;IACP,SAAS,IAAA;IACT,MAAM,IAAA;IACN,QAAQ,IAAA;CACR;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAQD;;;;;;;;;;;;;GAaG;AACH,qBAAa,KAAM,SAAQ,YAAY,CAAC,UAAU,CAAC;IAGlD,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,aAAa,EAAE,oBAAoB,CAAC;IAC7C,UAAU,EAAE,OAAO,CAAC;IAE3B,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,cAAc,CAAU;gBAIb,aAAa,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;IAgBvE;;;;;OAKG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAI,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAUtE;;OAEG;IACI,cAAc,IAAI,IAAI;IAS7B;;OAEG;IACI,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;OAEG;IACI,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;OAEG;IACI,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;OAEG;IACI,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;OAEG;IACI,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;OAEG;IACI,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC;;OAEG;IACI,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAIpC;;OAEG;IACI,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAerD,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,WAAW;IAmCnB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,cAAc;CAKtB"}
1
+ {"version":3,"file":"Track.d.ts","sourceRoot":"","sources":["../../src/kurot/Track.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,KAAK,oBAAoB,GAAG,GAAG,CAAC;AAEhC;;GAEG;AACH,0BAAkB,UAAU;IAC3B,SAAS,IAAA;IACT,OAAO,IAAA;IACP,SAAS,IAAA;IACT,OAAO,IAAA;IACP,SAAS,IAAA;IACT,MAAM,IAAA;IACN,QAAQ,IAAA;CACR;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IACjC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAUD;;;;;;;;;;;;;GAaG;AACH,qBAAa,KAAM,SAAQ,YAAY,CAAC,UAAU,CAAC;IAGlD,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,SAAgB,aAAa,EAAE,oBAAoB,CAAC;IAC7C,UAAU,EAAE,OAAO,CAAC;IAE3B,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,cAAc,CAAU;gBAIb,aAAa,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM;IAgBvE;;;;;OAKG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAI,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAItE;;;;;OAKG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAyBhE;;;;;OAKG;IACI,iBAAiB,IAAI,IAAI;IAOhC;;OAEG;IACI,cAAc,IAAI,IAAI;IAS7B;;OAEG;IACI,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;OAEG;IACI,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;OAEG;IACI,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;OAEG;IACI,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;OAEG;IACI,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;OAEG;IACI,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC;;OAEG;IACI,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAIpC;;OAEG;IACI,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAerD,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,WAAW;IAmCnB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,qBAAqB;CAO7B"}
@@ -8,8 +8,8 @@ import { EventEmitter } from './EventEmitter.js';
8
8
  * @example
9
9
  * ```ts
10
10
  * const track = hero.start(0);
11
- * track.add('idle', 0); // loop forever
12
- * track.add('attack', 1); // play once, then continue queue
11
+ * track.add('attack', 1); // play once
12
+ * track.add('idle', 0); // then loop forever
13
13
  * await track.waitPlayEnd();
14
14
  * ```
15
15
  */
@@ -44,13 +44,47 @@ export class Track extends EventEmitter {
44
44
  * @param listener Optional lifecycle callbacks for this animation.
45
45
  */
46
46
  add(name, loop = 1, listener) {
47
- if (!this._disposed && this._animations) {
48
- this._animations.push({ name, loop, listener });
49
- if (this._animations.length === 1) {
50
- this._playNext();
51
- }
47
+ return this._enqueue({ name, loop, listener });
48
+ }
49
+ /**
50
+ * Add a time segment of an animation to the queue.
51
+ *
52
+ * Times use seconds, matching the Spine runtime. Convert an editor frame
53
+ * with `frame / fps`, for example frame 20 at 60 FPS is `20 / 60`.
54
+ */
55
+ addSegment(name, segment) {
56
+ const duration = this._getAnimationDuration(name);
57
+ const start = segment.start;
58
+ const end = segment.end ?? duration;
59
+ const loop = segment.loop ?? 1;
60
+ if (!Number.isFinite(start) || start < 0) {
61
+ throw new RangeError('Animation segment start must be a finite number greater than or equal to 0.');
62
+ }
63
+ if (!Number.isFinite(end) || end <= start || end > duration) {
64
+ throw new RangeError(`Animation segment end must be greater than start and no greater than ${duration}.`);
65
+ }
66
+ if (!Number.isInteger(loop) || loop < 0) {
67
+ throw new RangeError('Animation segment loop must be a non-negative integer.');
68
+ }
69
+ return this._enqueue({
70
+ name,
71
+ loop,
72
+ listener: segment.listener,
73
+ start,
74
+ end,
75
+ });
76
+ }
77
+ /**
78
+ * Finish an indefinitely repeating segment after its current iteration.
79
+ *
80
+ * The next queued segment starts when the current iteration reaches its
81
+ * configured end. Finite segments are left unchanged.
82
+ */
83
+ finishCurrentLoop() {
84
+ const animation = this._animations[0];
85
+ if (animation?.loop === 0) {
86
+ animation.loop = this._loop + 1;
52
87
  }
53
- return this;
54
88
  }
55
89
  /**
56
90
  * Jump the track entry to its last frame.
@@ -123,7 +157,8 @@ export class Track extends EventEmitter {
123
157
  _playNext() {
124
158
  if (this._disposed || this._animations.length === 0)
125
159
  return;
126
- const { name, listener } = this._animations[0];
160
+ const animation = this._animations[0];
161
+ const { listener } = animation;
127
162
  if (listener) {
128
163
  if (listener.playStart)
129
164
  this.on(0 /* SpineEvent.PlayStart */, listener.playStart, listener);
@@ -139,17 +174,22 @@ export class Track extends EventEmitter {
139
174
  this.on(5 /* SpineEvent.Custom */, listener.custom, listener);
140
175
  }
141
176
  this._loop = 0;
142
- this._setAnimation(name, false);
177
+ this._setAnimation(animation);
143
178
  this.emit(0 /* SpineEvent.PlayStart */);
144
179
  this.emit(2 /* SpineEvent.LoopStart */);
145
180
  }
146
- _setAnimation(name, loop) {
181
+ _setAnimation(animation) {
147
182
  const entry = this.trackEntry;
148
183
  if (entry) {
149
184
  entry['listener'] = undefined;
150
185
  }
151
- this.trackEntry = this.skelAnimation.state.setAnimation(this.trackID, name, loop);
186
+ this.trackEntry = this.skelAnimation.state.setAnimation(this.trackID, animation.name, false);
152
187
  const newEntry = this.trackEntry;
188
+ if (animation.start !== undefined && animation.end !== undefined) {
189
+ newEntry['animationStart'] = animation.start;
190
+ newEntry['animationEnd'] = animation.end;
191
+ newEntry.setAnimationLast(animation.start);
192
+ }
153
193
  newEntry['listener'] = this._stateListener;
154
194
  this.skelAnimation.renderer.update(0);
155
195
  }
@@ -159,7 +199,7 @@ export class Track extends EventEmitter {
159
199
  const animation = this._animations[0];
160
200
  this.emit(3 /* SpineEvent.LoopEnd */);
161
201
  if (++this._loop !== animation.loop) {
162
- this._setAnimation(animation.name, false);
202
+ this._setAnimation(animation);
163
203
  this.emit(2 /* SpineEvent.LoopStart */);
164
204
  }
165
205
  else {
@@ -199,5 +239,21 @@ export class Track extends EventEmitter {
199
239
  this.emit(5 /* SpineEvent.Custom */, event);
200
240
  }
201
241
  }
242
+ _enqueue(animation) {
243
+ if (!this._disposed) {
244
+ this._animations.push(animation);
245
+ if (this._animations.length === 1) {
246
+ this._playNext();
247
+ }
248
+ }
249
+ return this;
250
+ }
251
+ _getAnimationDuration(name) {
252
+ const animation = this.skelAnimation.skeletonData.findAnimation(name);
253
+ if (!animation) {
254
+ throw new Error(`Animation not found: ${name}`);
255
+ }
256
+ return animation.duration;
257
+ }
202
258
  }
203
259
  //# sourceMappingURL=Track.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Track.js","sourceRoot":"","sources":["../../src/kurot/Track.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Track.js","sourceRoot":"","sources":["../../src/kurot/Track.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@kurot/spine-4.2",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Spine 4.2 runtime for the Kurot engine",
5
- "author": "",
5
+ "author": "Kelvin <kyia.x52@gmail.com>",
6
6
  "license": "MIT",
7
7
  "type": "module",
8
8
  "main": "./dist/index.js",
@@ -15,23 +15,25 @@
15
15
  }
16
16
  },
17
17
  "files": [
18
- "dist/**/*"
18
+ "dist/**/*",
19
+ "CHANGELOG.md",
20
+ "LICENSE"
19
21
  ],
20
22
  "scripts": {
21
23
  "build": "tsc --build",
22
24
  "dev": "tsc --watch",
23
- "example": "vite --config vite.config.ts",
24
25
  "clean": "rm -rf dist",
25
- "prepublishOnly": "npm run clean && npm run build"
26
+ "prepublishOnly": "npm run clean && npm run build",
27
+ "example": "vite --config vite.config.ts"
26
28
  },
27
29
  "dependencies": {
28
30
  "@esotericsoftware/spine-core": "~4.2.0"
29
31
  },
30
32
  "peerDependencies": {
31
- "@kurot/core": "^1.0.13"
33
+ "@kurot/core": "^1.0.16"
32
34
  },
33
35
  "devDependencies": {
34
- "@kurot/core": "^1.0.13",
36
+ "@kurot/core": "^1.0.16",
35
37
  "@types/node": "^22.0.0",
36
38
  "typescript": "^5.6.0",
37
39
  "vite": "^8.0.8"
@@ -42,12 +44,12 @@
42
44
  "h5-game",
43
45
  "typescript"
44
46
  ],
45
- "packageManager": "pnpm@10.33.0",
46
47
  "repository": {
47
48
  "type": "git",
48
49
  "url": "git+https://github.com/kurot-engine/kurot-spine.git",
49
50
  "directory": "packages/spine-4.2"
50
51
  },
52
+ "packageManager": "pnpm@10.33.0",
51
53
  "publishConfig": {
52
54
  "access": "public"
53
55
  }