@zylem/game-lib 0.8.8 → 0.9.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 (95) hide show
  1. package/README.md +7 -1
  2. package/dist/actions.d.ts +2 -2
  3. package/dist/actions.js +1 -1
  4. package/dist/api/game-lib.api.json +35786 -18973
  5. package/dist/api/game-lib.api.md +1209 -13
  6. package/dist/api/game-lib.d.ts +1609 -7
  7. package/dist/api/game-lib.typedoc.json +220861 -97409
  8. package/dist/audio.d.ts +193 -1
  9. package/dist/audio.js +1 -1
  10. package/dist/behavior.js +1 -1
  11. package/dist/bridge.d.ts +46 -6
  12. package/dist/bridge.js +1 -1
  13. package/dist/catalog.d.ts +91 -3
  14. package/dist/catalog.js +1 -1
  15. package/dist/chunk-2HSR5XDQ.js +1 -0
  16. package/dist/chunk-2MHB4X6B.js +24 -0
  17. package/dist/chunk-2PFNNGTV.js +1 -0
  18. package/dist/chunk-2XMG3NJS.js +1 -0
  19. package/dist/chunk-4CZZZCFB.js +9 -0
  20. package/dist/{chunk-7NYP4YAG.js → chunk-6FGXC4T6.js} +1 -1
  21. package/dist/chunk-6XFXPIVB.js +1 -0
  22. package/dist/{chunk-CBUQBP2U.js → chunk-BQRMYLYD.js} +1 -1
  23. package/dist/chunk-FZNEWOC5.js +1 -0
  24. package/dist/chunk-GPCSX3M6.js +1 -0
  25. package/dist/chunk-HISTSRAL.js +1 -0
  26. package/dist/chunk-K3NNXZIJ.js +1 -0
  27. package/dist/chunk-KP6DLLJO.js +1 -0
  28. package/dist/{chunk-JNFFTNMH.js → chunk-KSEP7AUF.js} +1 -1
  29. package/dist/{chunk-YOVE25NW.js → chunk-LI43BZQN.js} +1 -1
  30. package/dist/chunk-LSFWI46T.js +1 -0
  31. package/dist/chunk-NVVLLWIM.js +1 -0
  32. package/dist/chunk-QGIYILYI.js +1 -0
  33. package/dist/chunk-STVEILJJ.js +1 -0
  34. package/dist/chunk-UUOPT2N4.js +1 -0
  35. package/dist/chunk-VMXSE3EC.js +0 -0
  36. package/dist/chunk-VSFULLND.js +1 -0
  37. package/dist/chunk-VUJXR5K5.js +1 -0
  38. package/dist/chunk-WOT6VMZA.js +1 -0
  39. package/dist/chunk-YNX3Q3CL.js +1 -0
  40. package/dist/chunk-YQS7CGXE.js +1 -0
  41. package/dist/chunk-ZZO4CKRU.js +1 -0
  42. package/dist/cinematics.d.ts +279 -0
  43. package/dist/cinematics.js +1 -0
  44. package/dist/core.d.ts +13 -10
  45. package/dist/core.js +1 -1
  46. package/dist/cutscene-definition-C479fkei.d.ts +509 -0
  47. package/dist/{debug-state-CpnNRUFh.d.ts → debug-state-Cg3f5FB6.d.ts} +1 -1
  48. package/dist/debug.d.ts +3 -2
  49. package/dist/debug.js +1 -1
  50. package/dist/{entity-XZNGBeca.d.ts → entity-XqvuWgPm.d.ts} +54 -0
  51. package/dist/{entity-type-map-CkkFMSrL.d.ts → entity-type-map-CrsrKT8c.d.ts} +13 -4
  52. package/dist/entity.d.ts +4 -3
  53. package/dist/entity.js +1 -1
  54. package/dist/events.js +1 -1
  55. package/dist/game-9PjI5z2p.d.ts +652 -0
  56. package/dist/game-default-WBKQCEDJ.js +1 -0
  57. package/dist/globals.js +1 -1
  58. package/dist/graphics.d.ts +1 -1
  59. package/dist/graphics.js +1 -1
  60. package/dist/input-ui.js +1 -1
  61. package/dist/input.js +1 -1
  62. package/dist/public.d.ts +14 -8
  63. package/dist/public.js +1 -1
  64. package/dist/runtime.js +1 -1
  65. package/dist/schema/cutscene.schema.json +782 -0
  66. package/dist/schema/entity.schema.json +24 -24
  67. package/dist/schema/game-config.schema.json +10 -10
  68. package/dist/schema/song.schema.json +430 -0
  69. package/dist/schema/stage.schema.json +29 -29
  70. package/dist/schema.d.ts +2 -0
  71. package/dist/schema.js +1 -1
  72. package/dist/selection-bounds-BKmSo9aG.d.ts +50 -0
  73. package/dist/song-definition-rEKksP0B.d.ts +263 -0
  74. package/dist/song-player-7QPLFLAS.js +1 -0
  75. package/dist/{game-BPOr7zTB.d.ts → stage-BuGkjZnr.d.ts} +90 -644
  76. package/dist/web-components.d.ts +7 -5
  77. package/dist/web-components.js +1 -1
  78. package/dist/{zylem-camera-DZTpPOiD.d.ts → zylem-camera-Baf5vH8Z.d.ts} +8 -0
  79. package/package.json +25 -16
  80. package/dist/chunk-34MYRTRP.js +0 -9
  81. package/dist/chunk-AE3CTVHY.js +0 -1
  82. package/dist/chunk-BMRFDDMR.js +0 -1
  83. package/dist/chunk-EVMLNMGU.js +0 -1
  84. package/dist/chunk-F5LROYZL.js +0 -24
  85. package/dist/chunk-GHJQ2HKI.js +0 -1
  86. package/dist/chunk-HNCTOJP7.js +0 -1
  87. package/dist/chunk-IBJLPJLE.js +0 -1
  88. package/dist/chunk-MXO4VGDB.js +0 -1
  89. package/dist/chunk-QDQ4QMAI.js +0 -1
  90. package/dist/chunk-SAQA4SXW.js +0 -1
  91. package/dist/chunk-XK63E4SX.js +0 -1
  92. package/dist/chunk-ZRT3ZQVH.js +0 -1
  93. package/dist/chunk-ZTYNZ2N2.js +0 -1
  94. package/dist/game-default-7HCJJF5S.js +0 -1
  95. /package/dist/{chunk-MSCVL5OK.js → chunk-ELQN62PQ.js} +0 -0
@@ -5,6 +5,10 @@
5
5
  "anyOf": [
6
6
  {
7
7
  "type": "object",
8
+ "required": [
9
+ "id",
10
+ "type"
11
+ ],
8
12
  "properties": {
9
13
  "id": {
10
14
  "type": "string"
@@ -48,14 +52,14 @@
48
52
  }
49
53
  }
50
54
  }
51
- },
52
- "required": [
53
- "id",
54
- "type"
55
- ]
55
+ }
56
56
  },
57
57
  {
58
58
  "type": "object",
59
+ "required": [
60
+ "id",
61
+ "type"
62
+ ],
59
63
  "properties": {
60
64
  "id": {
61
65
  "type": "string"
@@ -96,14 +100,14 @@
96
100
  }
97
101
  }
98
102
  }
99
- },
100
- "required": [
101
- "id",
102
- "type"
103
- ]
103
+ }
104
104
  },
105
105
  {
106
106
  "type": "object",
107
+ "required": [
108
+ "id",
109
+ "type"
110
+ ],
107
111
  "properties": {
108
112
  "id": {
109
113
  "type": "string"
@@ -132,6 +136,9 @@
132
136
  "title": "LineEntityData",
133
137
  "additionalProperties": true,
134
138
  "type": "object",
139
+ "required": [
140
+ "points"
141
+ ],
135
142
  "properties": {
136
143
  "points": {
137
144
  "minItems": 2,
@@ -191,19 +198,16 @@
191
198
  "pickThreshold": {
192
199
  "type": "number"
193
200
  }
194
- },
195
- "required": [
196
- "points"
197
- ]
201
+ }
198
202
  }
199
- },
200
- "required": [
201
- "id",
202
- "type"
203
- ]
203
+ }
204
204
  },
205
205
  {
206
206
  "type": "object",
207
+ "required": [
208
+ "id",
209
+ "type"
210
+ ],
207
211
  "properties": {
208
212
  "id": {
209
213
  "type": "string"
@@ -234,11 +238,7 @@
234
238
  "^(.*)$": {}
235
239
  }
236
240
  }
237
- },
238
- "required": [
239
- "id",
240
- "type"
241
- ]
241
+ }
242
242
  }
243
243
  ]
244
244
  }
@@ -557,6 +557,10 @@
557
557
  },
558
558
  {
559
559
  "type": "object",
560
+ "required": [
561
+ "width",
562
+ "height"
563
+ ],
560
564
  "properties": {
561
565
  "width": {
562
566
  "exclusiveMinimum": 0,
@@ -566,11 +570,7 @@
566
570
  "exclusiveMinimum": 0,
567
571
  "type": "number"
568
572
  }
569
- },
570
- "required": [
571
- "width",
572
- "height"
573
- ]
573
+ }
574
574
  },
575
575
  {
576
576
  "const": "native",
@@ -604,6 +604,10 @@
604
604
  },
605
605
  {
606
606
  "type": "object",
607
+ "required": [
608
+ "width",
609
+ "height"
610
+ ],
607
611
  "properties": {
608
612
  "width": {
609
613
  "exclusiveMinimum": 0,
@@ -613,11 +617,7 @@
613
617
  "exclusiveMinimum": 0,
614
618
  "type": "number"
615
619
  }
616
- },
617
- "required": [
618
- "width",
619
- "height"
620
- ]
620
+ }
621
621
  },
622
622
  {
623
623
  "const": "native",
@@ -0,0 +1,430 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "SongDefinition",
4
+ "title": "SongDefinition",
5
+ "additionalProperties": false,
6
+ "type": "object",
7
+ "required": [
8
+ "id",
9
+ "name",
10
+ "bpm",
11
+ "timeSignature",
12
+ "lengthBars",
13
+ "instruments",
14
+ "tracks",
15
+ "clips"
16
+ ],
17
+ "properties": {
18
+ "id": {
19
+ "type": "string"
20
+ },
21
+ "name": {
22
+ "type": "string"
23
+ },
24
+ "bpm": {
25
+ "exclusiveMinimum": 0,
26
+ "type": "number"
27
+ },
28
+ "timeSignature": {
29
+ "title": "TimeSignature",
30
+ "additionalProperties": false,
31
+ "type": "object",
32
+ "required": [
33
+ "numerator",
34
+ "denominator"
35
+ ],
36
+ "properties": {
37
+ "numerator": {
38
+ "minimum": 1,
39
+ "type": "integer"
40
+ },
41
+ "denominator": {
42
+ "minimum": 1,
43
+ "type": "integer"
44
+ }
45
+ }
46
+ },
47
+ "lengthBars": {
48
+ "minimum": 1,
49
+ "type": "integer"
50
+ },
51
+ "loop": {
52
+ "title": "SongLoop",
53
+ "additionalProperties": false,
54
+ "type": "object",
55
+ "required": [
56
+ "enabled",
57
+ "start",
58
+ "end"
59
+ ],
60
+ "properties": {
61
+ "enabled": {
62
+ "type": "boolean"
63
+ },
64
+ "start": {
65
+ "minimum": 0,
66
+ "type": "number"
67
+ },
68
+ "end": {
69
+ "exclusiveMinimum": 0,
70
+ "type": "number"
71
+ }
72
+ }
73
+ },
74
+ "instruments": {
75
+ "type": "array",
76
+ "items": {
77
+ "title": "InstrumentDefinition",
78
+ "additionalProperties": false,
79
+ "type": "object",
80
+ "required": [
81
+ "id",
82
+ "name",
83
+ "preset"
84
+ ],
85
+ "properties": {
86
+ "id": {
87
+ "type": "string"
88
+ },
89
+ "name": {
90
+ "type": "string"
91
+ },
92
+ "preset": {
93
+ "title": "InstrumentPreset",
94
+ "anyOf": [
95
+ {
96
+ "const": "synth",
97
+ "type": "string"
98
+ },
99
+ {
100
+ "const": "polySynth",
101
+ "type": "string"
102
+ },
103
+ {
104
+ "const": "fmSynth",
105
+ "type": "string"
106
+ },
107
+ {
108
+ "const": "amSynth",
109
+ "type": "string"
110
+ },
111
+ {
112
+ "const": "membraneSynth",
113
+ "type": "string"
114
+ },
115
+ {
116
+ "const": "metalSynth",
117
+ "type": "string"
118
+ },
119
+ {
120
+ "const": "noiseSynth",
121
+ "type": "string"
122
+ },
123
+ {
124
+ "const": "pluckSynth",
125
+ "type": "string"
126
+ }
127
+ ]
128
+ },
129
+ "oscillator": {
130
+ "title": "OscillatorType",
131
+ "anyOf": [
132
+ {
133
+ "const": "sine",
134
+ "type": "string"
135
+ },
136
+ {
137
+ "const": "square",
138
+ "type": "string"
139
+ },
140
+ {
141
+ "const": "sawtooth",
142
+ "type": "string"
143
+ },
144
+ {
145
+ "const": "triangle",
146
+ "type": "string"
147
+ }
148
+ ]
149
+ },
150
+ "envelope": {
151
+ "title": "Envelope",
152
+ "additionalProperties": false,
153
+ "type": "object",
154
+ "required": [
155
+ "attack",
156
+ "decay",
157
+ "sustain",
158
+ "release"
159
+ ],
160
+ "properties": {
161
+ "attack": {
162
+ "minimum": 0,
163
+ "type": "number"
164
+ },
165
+ "decay": {
166
+ "minimum": 0,
167
+ "type": "number"
168
+ },
169
+ "sustain": {
170
+ "minimum": 0,
171
+ "maximum": 1,
172
+ "type": "number"
173
+ },
174
+ "release": {
175
+ "minimum": 0,
176
+ "type": "number"
177
+ }
178
+ }
179
+ },
180
+ "volume": {
181
+ "type": "number"
182
+ },
183
+ "effects": {
184
+ "type": "array",
185
+ "items": {
186
+ "title": "InstrumentEffect",
187
+ "additionalProperties": false,
188
+ "type": "object",
189
+ "required": [
190
+ "id",
191
+ "type"
192
+ ],
193
+ "properties": {
194
+ "id": {
195
+ "type": "string"
196
+ },
197
+ "type": {
198
+ "title": "EffectType",
199
+ "anyOf": [
200
+ {
201
+ "const": "reverb",
202
+ "type": "string"
203
+ },
204
+ {
205
+ "const": "delay",
206
+ "type": "string"
207
+ },
208
+ {
209
+ "const": "distortion",
210
+ "type": "string"
211
+ },
212
+ {
213
+ "const": "filter",
214
+ "type": "string"
215
+ }
216
+ ]
217
+ },
218
+ "wet": {
219
+ "minimum": 0,
220
+ "maximum": 1,
221
+ "type": "number"
222
+ },
223
+ "options": {
224
+ "type": "object",
225
+ "patternProperties": {
226
+ "^(.*)$": {
227
+ "anyOf": [
228
+ {
229
+ "type": "number"
230
+ },
231
+ {
232
+ "type": "string"
233
+ },
234
+ {
235
+ "type": "boolean"
236
+ }
237
+ ]
238
+ }
239
+ }
240
+ }
241
+ }
242
+ }
243
+ }
244
+ }
245
+ }
246
+ },
247
+ "tracks": {
248
+ "type": "array",
249
+ "items": {
250
+ "title": "SongTrack",
251
+ "additionalProperties": false,
252
+ "type": "object",
253
+ "required": [
254
+ "id",
255
+ "name",
256
+ "kind"
257
+ ],
258
+ "properties": {
259
+ "id": {
260
+ "type": "string"
261
+ },
262
+ "name": {
263
+ "type": "string"
264
+ },
265
+ "kind": {
266
+ "anyOf": [
267
+ {
268
+ "const": "instrument",
269
+ "type": "string"
270
+ },
271
+ {
272
+ "const": "audio",
273
+ "type": "string"
274
+ }
275
+ ]
276
+ },
277
+ "instrumentId": {
278
+ "type": "string"
279
+ },
280
+ "color": {
281
+ "type": "string"
282
+ },
283
+ "volume": {
284
+ "type": "number"
285
+ },
286
+ "pan": {
287
+ "minimum": -1,
288
+ "maximum": 1,
289
+ "type": "number"
290
+ },
291
+ "mute": {
292
+ "type": "boolean"
293
+ },
294
+ "solo": {
295
+ "type": "boolean"
296
+ }
297
+ }
298
+ }
299
+ },
300
+ "clips": {
301
+ "type": "array",
302
+ "items": {
303
+ "title": "SongClip",
304
+ "anyOf": [
305
+ {
306
+ "title": "NoteClip",
307
+ "additionalProperties": false,
308
+ "type": "object",
309
+ "required": [
310
+ "kind",
311
+ "id",
312
+ "trackId",
313
+ "start",
314
+ "length",
315
+ "notes"
316
+ ],
317
+ "properties": {
318
+ "kind": {
319
+ "const": "notes",
320
+ "type": "string"
321
+ },
322
+ "id": {
323
+ "type": "string"
324
+ },
325
+ "trackId": {
326
+ "type": "string"
327
+ },
328
+ "name": {
329
+ "type": "string"
330
+ },
331
+ "start": {
332
+ "minimum": 0,
333
+ "type": "number"
334
+ },
335
+ "length": {
336
+ "exclusiveMinimum": 0,
337
+ "type": "number"
338
+ },
339
+ "notes": {
340
+ "type": "array",
341
+ "items": {
342
+ "title": "SongNote",
343
+ "additionalProperties": false,
344
+ "type": "object",
345
+ "required": [
346
+ "pitch",
347
+ "start",
348
+ "duration"
349
+ ],
350
+ "properties": {
351
+ "id": {
352
+ "type": "string"
353
+ },
354
+ "pitch": {
355
+ "minimum": 0,
356
+ "maximum": 127,
357
+ "type": "integer"
358
+ },
359
+ "start": {
360
+ "minimum": 0,
361
+ "type": "number"
362
+ },
363
+ "duration": {
364
+ "exclusiveMinimum": 0,
365
+ "type": "number"
366
+ },
367
+ "velocity": {
368
+ "minimum": 0,
369
+ "maximum": 1,
370
+ "type": "number"
371
+ }
372
+ }
373
+ }
374
+ }
375
+ }
376
+ },
377
+ {
378
+ "title": "AudioClip",
379
+ "additionalProperties": false,
380
+ "type": "object",
381
+ "required": [
382
+ "kind",
383
+ "id",
384
+ "trackId",
385
+ "url",
386
+ "start",
387
+ "length"
388
+ ],
389
+ "properties": {
390
+ "kind": {
391
+ "const": "audio",
392
+ "type": "string"
393
+ },
394
+ "id": {
395
+ "type": "string"
396
+ },
397
+ "trackId": {
398
+ "type": "string"
399
+ },
400
+ "name": {
401
+ "type": "string"
402
+ },
403
+ "url": {
404
+ "type": "string"
405
+ },
406
+ "start": {
407
+ "minimum": 0,
408
+ "type": "number"
409
+ },
410
+ "offset": {
411
+ "minimum": 0,
412
+ "type": "number"
413
+ },
414
+ "length": {
415
+ "exclusiveMinimum": 0,
416
+ "type": "number"
417
+ },
418
+ "gain": {
419
+ "type": "number"
420
+ }
421
+ }
422
+ }
423
+ ]
424
+ }
425
+ },
426
+ "masterVolume": {
427
+ "type": "number"
428
+ }
429
+ }
430
+ }
@@ -4,6 +4,10 @@
4
4
  "title": "StageJson",
5
5
  "additionalProperties": false,
6
6
  "type": "object",
7
+ "required": [
8
+ "id",
9
+ "entities"
10
+ ],
7
11
  "properties": {
8
12
  "id": {
9
13
  "type": "string"
@@ -19,6 +23,10 @@
19
23
  "anyOf": [
20
24
  {
21
25
  "type": "object",
26
+ "required": [
27
+ "id",
28
+ "type"
29
+ ],
22
30
  "properties": {
23
31
  "id": {
24
32
  "type": "string"
@@ -62,14 +70,14 @@
62
70
  }
63
71
  }
64
72
  }
65
- },
66
- "required": [
67
- "id",
68
- "type"
69
- ]
73
+ }
70
74
  },
71
75
  {
72
76
  "type": "object",
77
+ "required": [
78
+ "id",
79
+ "type"
80
+ ],
73
81
  "properties": {
74
82
  "id": {
75
83
  "type": "string"
@@ -110,14 +118,14 @@
110
118
  }
111
119
  }
112
120
  }
113
- },
114
- "required": [
115
- "id",
116
- "type"
117
- ]
121
+ }
118
122
  },
119
123
  {
120
124
  "type": "object",
125
+ "required": [
126
+ "id",
127
+ "type"
128
+ ],
121
129
  "properties": {
122
130
  "id": {
123
131
  "type": "string"
@@ -146,6 +154,9 @@
146
154
  "title": "LineEntityData",
147
155
  "additionalProperties": true,
148
156
  "type": "object",
157
+ "required": [
158
+ "points"
159
+ ],
149
160
  "properties": {
150
161
  "points": {
151
162
  "minItems": 2,
@@ -205,19 +216,16 @@
205
216
  "pickThreshold": {
206
217
  "type": "number"
207
218
  }
208
- },
209
- "required": [
210
- "points"
211
- ]
219
+ }
212
220
  }
213
- },
214
- "required": [
215
- "id",
216
- "type"
217
- ]
221
+ }
218
222
  },
219
223
  {
220
224
  "type": "object",
225
+ "required": [
226
+ "id",
227
+ "type"
228
+ ],
221
229
  "properties": {
222
230
  "id": {
223
231
  "type": "string"
@@ -248,11 +256,7 @@
248
256
  "^(.*)$": {}
249
257
  }
250
258
  }
251
- },
252
- "required": [
253
- "id",
254
- "type"
255
- ]
259
+ }
256
260
  }
257
261
  ]
258
262
  }
@@ -263,9 +267,5 @@
263
267
  "type": "string"
264
268
  }
265
269
  }
266
- },
267
- "required": [
268
- "id",
269
- "entities"
270
- ]
270
+ }
271
271
  }
package/dist/schema.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  export { f as EntityBlueprint, j as EntityJson, d as EntityJsonSchema, E as EntitySchema, i as LineEntityData, L as LineEntityDataSchema, h as SpriteEntityData, b as SpriteEntityDataSchema, S as StageBlueprint, k as StageJson, e as StageJsonSchema, c as StageSchema, g as TextEntityData, T as TextEntityDataSchema, V as Vector2Schema, a as Vector3TupleSchema } from './blueprints-TbGY-h53.js';
2
2
  import * as _sinclair_typebox from '@sinclair/typebox';
3
3
  import { Static } from '@sinclair/typebox';
4
+ export { g as SongDefinition, S as SongDefinitionSchema } from './song-definition-rEKksP0B.js';
5
+ export { g as CutsceneDefinition, C as CutsceneDefinitionSchema } from './cutscene-definition-C479fkei.js';
4
6
 
5
7
  /** Keyboard action → key-code list mapping. */
6
8
  declare const KeyboardMappingSchema: _sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TArray<_sinclair_typebox.TString>>;