rig-play 1.4.0 → 1.5.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/dist/player.d.ts CHANGED
@@ -46,6 +46,48 @@ export interface RigEvent {
46
46
  int: number;
47
47
  float: number;
48
48
  string: string | null;
49
+ /**
50
+ * The track whose current entry fired it. The core's pose lists a step's
51
+ * events in track order without naming the track, so the player attributes
52
+ * them by counting what each track's current entry fires over the step;
53
+ * when that count does not match the pose (an entry replaced inside the
54
+ * step), the step's events carry no track rather than a guessed one.
55
+ */
56
+ track?: number;
57
+ }
58
+ /** What `on('complete', …)` hands a listener: the entry that completed, and its track. */
59
+ export interface RigComplete {
60
+ animation: string;
61
+ track: number;
62
+ }
63
+ /** How `play` starts an entry, and `queue` queues one. */
64
+ export interface PlayOptions {
65
+ /** Loop; true by default. */
66
+ loop?: boolean;
67
+ /** The track; 0 by default. A base on 0, a layer over it on 1, a one-shot on 2. */
68
+ track?: number;
69
+ /** Seconds the entry this one replaces mixes out over; 0 (the default) cuts. */
70
+ mix?: number;
71
+ }
72
+ export interface QueueOptions extends PlayOptions {
73
+ /**
74
+ * At or below 0 (the default 0): the entry starts when the one before it
75
+ * completes, less this entry's `mix` — a one-shot then mixes into the next
76
+ * over its last `mix` seconds. Above 0: that many seconds after the entry
77
+ * before it starts.
78
+ */
79
+ delay?: number;
80
+ }
81
+ /** A track's current entry as the player reads it (`entry(track)`). */
82
+ export interface TrackEntry {
83
+ /** What it plays; null for the empty animation a `clear` left. */
84
+ animation: string | null;
85
+ loop: boolean;
86
+ /** The entry's own track time, from its start. */
87
+ trackTime: number;
88
+ /** The animation time it applies at now: the track time wrapped, or held at the duration. */
89
+ animationTime: number;
90
+ duration: number;
49
91
  }
50
92
  type Listener<T> = (payload: T) => void;
51
93
  /**
@@ -137,9 +179,27 @@ export declare class RigPlayer {
137
179
  private readonly read;
138
180
  private skinName;
139
181
  private readonly seekStep;
182
+ /**
183
+ * The single live track (`openTrack`): what a plain `play` on track 0 runs
184
+ * on, as every 1.x player did — one animation, every construct the core
185
+ * poses, `seek` and a skin change by reopening. Null once the player is
186
+ * composed.
187
+ */
140
188
  private track;
189
+ /**
190
+ * The live tracks (`openTracks`): opened by the first composing call — a
191
+ * `play` with a mix or on another track, a `queue`, a `clear` — from the
192
+ * single track's animation stepped to its time. The mixing is the Spine
193
+ * runtime's, which does not mix a constraint, sequence, draw-order or
194
+ * path-deform timeline, so such an animation is refused here and plays on
195
+ * the single track only.
196
+ */
197
+ private tracks;
198
+ /** Track 0's animation and loop as `play` last set them — what `seek` and a skin change reopen. */
141
199
  private animation;
142
200
  private loop;
201
+ /** One past the highest track touched — how many `current(track)` reads a step takes. */
202
+ private trackCount;
143
203
  private paused;
144
204
  private pose;
145
205
  private setup;
@@ -158,34 +218,81 @@ export declare class RigPlayer {
158
218
  get mode(): RenderMode;
159
219
  set mode(mode: RenderMode);
160
220
  private create;
161
- /** The animation the track is playing, or null before `play`. */
221
+ /** What track 0 plays, or null before `play` and after a `clear` of track 0 has mixed out. */
162
222
  get current(): string | null;
163
- /** The track time — the running sum of the steps since `play` (or the last `seek`). */
223
+ /** The player's time — the running sum of the steps since `play` (or the last `seek`). */
164
224
  get time(): number;
165
225
  /**
166
- * Opens `name` on the track at its first pose, the physics reset there. The
167
- * pose is drawn on the next `frame`.
226
+ * Plays `name` on a track — track 0 by default, which is what `play(name)`
227
+ * has always meant: the first `play` opens the tracks at their first pose
228
+ * with the physics reset there, and the pose is drawn on the next `frame`.
229
+ * Later calls replace what the track plays: the entry it replaces mixes out
230
+ * over `mix` seconds (0 cuts), and every entry queued on that track is
231
+ * dropped. The pose the player holds is re-posed at once, so a held player
232
+ * shows the change on its next `draw`. The mixing is the Spine runtime's,
233
+ * which rig-c holds at tolerance 0; an animation keying what the tracks do
234
+ * not mix — a constraint, a sequence, the draw order, a path's deform — is
235
+ * refused here, by name, in the core's words.
236
+ */
237
+ play(name: string, options?: PlayOptions): void;
238
+ /**
239
+ * Queues `name` after the last entry on `track` (`QueueOptions`): with
240
+ * `delay` at or below 0 it starts when that entry completes less its own
241
+ * `mix`, so a one-shot hands over to it across a mix; on an empty track it
242
+ * is set. Before any `play`, the tracks are opened for it.
243
+ */
244
+ queue(name: string, options?: QueueOptions): void;
245
+ /**
246
+ * Mixes `track` out to nothing over `mix` seconds — the layer or one-shot
247
+ * gone and the tracks below showing through. Track 0 cleared shows the
248
+ * setup pose. The pose the player holds is re-posed at once.
168
249
  */
169
- play(name: string, options?: {
170
- loop?: boolean;
250
+ clear(track?: number, options?: {
251
+ mix?: number;
171
252
  }): void;
253
+ /**
254
+ * Queues a mix out to nothing after the last entry on `track`, over `mix`
255
+ * seconds; with `delay` 0 (the default) the mix ends as that entry
256
+ * completes, so a one-shot queued this way plays once and fades out over
257
+ * its last `mix` seconds.
258
+ */
259
+ queueClear(track?: number, options?: {
260
+ mix?: number;
261
+ delay?: number;
262
+ }): void;
263
+ /** `track`'s current entry, or null where it plays nothing (and before `play`). */
264
+ entry(track?: number): TrackEntry | null;
265
+ /** Whether the player is composed: on the live tracks rather than the single track. */
266
+ get composed(): boolean;
267
+ /**
268
+ * The live tracks, opened by the first composing call. A single track in
269
+ * play is carried over by replay: track 0 set to its animation, pose 0 taken
270
+ * by `start()` (the player's — nothing steps before it) and the tracks
271
+ * stepped to the single track's time in `seekStep` increments, so a physics
272
+ * rig's history restarts there and nothing is fired on the way.
273
+ */
274
+ private compose;
172
275
  /** Stops stepping; `frame` keeps drawing the pose it holds. */
173
276
  pause(): void;
174
277
  /** Resumes stepping after `pause`. */
175
278
  resume(): void;
176
279
  /**
177
- * Moves the track to `time`: the animation is reopened and stepped forward
178
- * in `seekStep` increments (the last one shorter) until the track time
179
- * reaches `time`. Events and completes crossed on the way are not fired.
280
+ * Moves a single animation on track 0 to `time`: the tracks are reopened
281
+ * with that animation and stepped forward in `seekStep` increments (the
282
+ * last one shorter) until the time is reached. Events and completes crossed
283
+ * on the way are not fired. It has a meaning for one animation on one
284
+ * track only — the player cannot replay when a mix, a second track or a
285
+ * queue was asked for — so after any of those it refuses by name; step the
286
+ * player forward instead.
180
287
  */
181
288
  seek(time: number): void;
182
- /** Steps the freshly opened track forward to `time` in `seekStep` increments, the last one shorter. */
289
+ /** The single track opened again with track 0's animation as `play` last set it, at pose 0. */
290
+ private reopen;
291
+ /** Steps whatever is open forward to `time` in `seekStep` increments, the last one shorter. */
183
292
  private stepTo;
184
293
  /** Adds a listener; returns a function that removes it. */
185
294
  on(type: 'event', listener: Listener<RigEvent>): () => void;
186
- on(type: 'complete', listener: Listener<{
187
- animation: string;
188
- }>): () => void;
295
+ on(type: 'complete', listener: Listener<RigComplete>): () => void;
189
296
  /**
190
297
  * Advances the track by `dt × timeScale` seconds and draws the pose —
191
298
  * `advance(dt)` then `draw()`.
@@ -253,16 +360,18 @@ export declare class RigPlayer {
253
360
  posedFrame(): PosedFrame;
254
361
  /** Removes the renderer's elements and hands its GPU pages back. The assets stay the caller's. */
255
362
  dispose(): void;
256
- private open;
363
+ /** The single track's step: its events (track 0) and its complete, as every 1.x player fired them. */
364
+ private dispatchSingle;
257
365
  /**
258
- * The step's events, then its complete. The core fires the keys
259
- * (`pose.events`, in the runtime's order across a wrap) and leaves
260
- * `complete` to the player, which derives it from the track time and the
261
- * duration: on a looping track, once on a step whose whole cycles rose past
262
- * 0 (rig-c `src/core/track.ts`, *Across the wrap*); on a held one, on the
263
- * step that reaches the duration. The runtime queues a looping complete
264
- * between the keys before the wrap and the keys after it; this player
265
- * dispatches it after all of the step's keys.
366
+ * The step's events, then its completes, each with its track. The core
367
+ * fires a track's keys from its current entry (`pose.events`, in track
368
+ * order and in the runtime's order across a wrap) — an entry mixing out
369
+ * fires none — and leaves `complete` to the player, which derives it per
370
+ * track from that track's current entry: on a looping entry, once on a step
371
+ * whose whole cycles rose; on a held one, on the step that reaches its
372
+ * duration. An entry replaced inside the step — by `play`, or by a queued
373
+ * entry starting at its completion less the mix — is no longer current and
374
+ * completes no more than it fires, which is the runtime's rule too.
266
375
  */
267
376
  private dispatch;
268
377
  }
@@ -1 +1 @@
1
- {"version":3,"file":"player.d.ts","sourceRoot":"","sources":["../src/player.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"player.d.ts","sourceRoot":"","sources":["../src/player.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rig-play",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Plays skeleton.model.json written by rigc build as plain DOM elements — rigid slots as <img> posed by CSS matrix, deform meshes on small per-part canvases — or as one canvas.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -57,7 +57,7 @@
57
57
  "devDependencies": {
58
58
  "@playwright/test": "1.62.1",
59
59
  "@types/node": "^22",
60
- "rig-c": "2.36.0",
60
+ "rig-c": "2.37.0",
61
61
  "typescript": "^5.6.0",
62
62
  "vite": "^6.0.0"
63
63
  }