@kurot/spine-4.3 0.2.3 → 0.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.
- package/CHANGELOG.md +32 -0
- package/LICENSE +21 -0
- package/README.md +14 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/kurot/KurotAssetManager.d.ts +1 -0
- package/dist/kurot/KurotAssetManager.d.ts.map +1 -1
- package/dist/kurot/KurotAssetManager.js +7 -3
- package/dist/kurot/KurotAssetManager.js.map +1 -1
- package/dist/kurot/SkeletonAnimation.d.ts +8 -1
- package/dist/kurot/SkeletonAnimation.d.ts.map +1 -1
- package/dist/kurot/SkeletonAnimation.js +16 -0
- package/dist/kurot/SkeletonAnimation.js.map +1 -1
- package/dist/kurot/Track.d.ts +39 -2
- package/dist/kurot/Track.d.ts.map +1 -1
- package/dist/kurot/Track.js +69 -13
- package/dist/kurot/Track.js.map +1 -1
- package/package.json +11 -9
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `@kurot/spine-4.3` are documented here.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## [0.3.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.2.4] — 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.3.
|
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',
|
|
67
|
-
await track.
|
|
68
|
-
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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
|
-
|
|
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.
|
|
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":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1G,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAiBjD;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,iBAAkB,SAAQ,gBAAgB;IACtD,6EAA6E;IAE7E,YAAmB,UAAU,GAAG,EAAE;QACjC,KAAK,CAAC,CAAC,KAAqC,EAAE,EAAE;YAC/C,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,KAAyB,CAAC,CAAC;YACrD,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;gBACvC,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC;gBAC7C,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC;YACjD,CAAC;YACD,OAAO,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,EAAE,UAAU,CAAC,CAAC;IAChB,CAAC;IAED,6EAA6E;IAE7E,IAAY,GAAG;QACd,OAAO,IAAsC,CAAC;IAC/C,CAAC;
|
|
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;
|
|
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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"}
|
package/dist/kurot/Track.d.ts
CHANGED
|
@@ -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('
|
|
36
|
-
* track.add('
|
|
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;
|
|
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"}
|
package/dist/kurot/Track.js
CHANGED
|
@@ -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('
|
|
12
|
-
* track.add('
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
|
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(
|
|
177
|
+
this._setAnimation(animation);
|
|
143
178
|
this.emit(0 /* SpineEvent.PlayStart */);
|
|
144
179
|
this.emit(2 /* SpineEvent.LoopStart */);
|
|
145
180
|
}
|
|
146
|
-
_setAnimation(
|
|
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,
|
|
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
|
|
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
|
package/dist/kurot/Track.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Track.js","sourceRoot":"","sources":["../../src/kurot/Track.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
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.3",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Spine 4.3 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.3.0"
|
|
29
31
|
},
|
|
30
32
|
"peerDependencies": {
|
|
31
|
-
"@kurot/core": "^1.0.
|
|
33
|
+
"@kurot/core": "^1.0.16"
|
|
32
34
|
},
|
|
33
35
|
"devDependencies": {
|
|
34
|
-
"@kurot/core": "^1.0.
|
|
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
|
-
"url": "git+https://github.com/kurot-engine/kurot.git",
|
|
49
|
+
"url": "git+https://github.com/kurot-engine/kurot-spine.git",
|
|
49
50
|
"directory": "packages/spine-4.3"
|
|
50
51
|
},
|
|
52
|
+
"packageManager": "pnpm@10.33.0",
|
|
51
53
|
"publishConfig": {
|
|
52
54
|
"access": "public"
|
|
53
55
|
}
|