pelican-engine 0.3.15 → 0.3.17

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.
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "format": "pelican.api-index",
3
3
  "version": 1,
4
- "engineVersion": "0.3.15",
4
+ "engineVersion": "0.3.17",
5
5
  "entry": "pelican-engine",
6
6
  "source": "packages/sdk/src/index.ts",
7
7
  "symbols": [
8
8
  {
9
9
  "name": "SDK_VERSION",
10
10
  "kind": "constant",
11
- "signature": "SDK_VERSION = \"0.3.15\"",
11
+ "signature": "SDK_VERSION = \"0.3.17\"",
12
12
  "line": 2
13
13
  },
14
14
  {
@@ -240,7 +240,7 @@
240
240
  {
241
241
  "name": "RopeDefinition",
242
242
  "kind": "InterfaceDeclaration",
243
- "signature": "export interface RopeDefinition {\n id: string;\n points: readonly Vec3[];\n /** Kilograms per particle, positive and at most 1e6. */\n mass: number;\n radius?: number;\n /** Defaults to the host interval; an explicit value must exactly match it. */\n fixedDt?: number;\n /** When true, step once after each physics phase; defaults to false (manual stepping). */\n autoStep?: boolean;\n /** Automatically sample and react to existing dynamic, non-trigger sphere bodies. Requires autoStep. */\n bodyColliders?: readonly RopeBodyCollider[];\n /** Optional segmented presentation using an already-declared material id. */\n visual?: RopeVisualOptions;\n substeps?: number;\n iterations?: number;\n damping?: number;\n gravity?: Vec3;\n anchors?: readonly { index: number; position: Vec3 }[];\n}",
243
+ "signature": "export interface RopeDefinition {\n id: string;\n points: readonly Vec3[];\n /** Kilograms per particle, positive and at most 1e6. */\n mass: number;\n radius?: number;\n /** Defaults to the host interval; an explicit value must exactly match it. */\n fixedDt?: number;\n /** When true, step once after each physics phase; defaults to false (manual stepping). */\n autoStep?: boolean;\n /** Automatically sample and react to existing dynamic, non-trigger sphere bodies. Requires autoStep. */\n bodyColliders?: readonly RopeBodyCollider[];\n /** Resolve sphere contacts on segment interiors; defaults to true for new ropes. */\n segmentCollisions?: boolean;\n /** Resolve discrete non-adjacent segment self contacts; defaults to true for new ropes. */\n selfCollisions?: boolean;\n /** Optional segmented presentation using an already-declared material id. */\n visual?: RopeVisualOptions;\n substeps?: number;\n iterations?: number;\n damping?: number;\n gravity?: Vec3;\n anchors?: readonly { index: number; position: Vec3 }[];\n}",
244
244
  "line": 146,
245
245
  "fields": [
246
246
  "id",
@@ -250,6 +250,8 @@
250
250
  "fixedDt",
251
251
  "autoStep",
252
252
  "bodyColliders",
253
+ "segmentCollisions",
254
+ "selfCollisions",
253
255
  "visual",
254
256
  "substeps",
255
257
  "iterations",
@@ -262,7 +264,7 @@
262
264
  "name": "RopeContact",
263
265
  "kind": "InterfaceDeclaration",
264
266
  "signature": "export interface RopeContact {\n tick: number; particle: number; colliderId: string; penetration: number;\n /** Opposite of particle contact impulses, N·s; absent in older snapshots. */\n reactionImpulse?: Vec3;\n /** Angular impulse about the world origin; absent in older snapshots. */\n reactionAngularImpulse?: Vec3;\n}",
265
- "line": 167,
267
+ "line": 171,
266
268
  "fields": [
267
269
  "tick",
268
270
  "particle",
@@ -272,19 +274,52 @@
272
274
  "reactionAngularImpulse"
273
275
  ]
274
276
  },
277
+ {
278
+ "name": "RopeSegmentContact",
279
+ "kind": "InterfaceDeclaration",
280
+ "signature": "export interface RopeSegmentContact {\n tick: number;\n /** Zero-based index of the first endpoint; the second is segment + 1. */\n segment: number;\n colliderId: string;\n /** Last closest-point fraction from the first endpoint toward the second. */\n fraction: number;\n penetration: number;\n reactionImpulse?: Vec3;\n reactionAngularImpulse?: Vec3;\n}",
281
+ "line": 179,
282
+ "fields": [
283
+ "tick",
284
+ "segment",
285
+ "colliderId",
286
+ "fraction",
287
+ "penetration",
288
+ "reactionImpulse",
289
+ "reactionAngularImpulse"
290
+ ]
291
+ },
292
+ {
293
+ "name": "RopeSelfContact",
294
+ "kind": "InterfaceDeclaration",
295
+ "signature": "export interface RopeSelfContact {\n tick: number;\n /** Zero-based first endpoint of each non-adjacent segment, ordered ascending. */\n firstSegment: number; secondSegment: number;\n /** Last closest-point fractions along the respective segments. */\n firstFraction: number; secondFraction: number;\n /** Maximum observed overlap in metres during this tick. */\n penetration: number;\n}",
296
+ "line": 191,
297
+ "fields": [
298
+ "tick",
299
+ "firstSegment",
300
+ "secondSegment",
301
+ "firstFraction",
302
+ "secondFraction",
303
+ "penetration"
304
+ ]
305
+ },
275
306
  {
276
307
  "name": "RopeState",
277
308
  "kind": "InterfaceDeclaration",
278
- "signature": "export interface RopeState {\n tick: number; simulatedSeconds: number; disposed: boolean;\n positions: Vec3[]; velocities: Vec3[];\n anchors: { index: number; position: Vec3 }[];\n contacts: RopeContact[];\n maxDistanceError: number;\n resources: { particles: number; constraints: number; anchors: number; colliders: number };\n}",
279
- "line": 174,
309
+ "signature": "export interface RopeState {\n tick: number; simulatedSeconds: number; disposed: boolean;\n segmentCollisions: boolean;\n selfCollisions: boolean;\n positions: Vec3[]; velocities: Vec3[];\n anchors: { index: number; position: Vec3 }[];\n contacts: RopeContact[];\n segmentContacts: RopeSegmentContact[];\n selfContacts: RopeSelfContact[];\n maxDistanceError: number;\n resources: { particles: number; constraints: number; anchors: number; colliders: number };\n}",
310
+ "line": 200,
280
311
  "fields": [
281
312
  "tick",
282
313
  "simulatedSeconds",
283
314
  "disposed",
315
+ "segmentCollisions",
316
+ "selfCollisions",
284
317
  "positions",
285
318
  "velocities",
286
319
  "anchors",
287
320
  "contacts",
321
+ "segmentContacts",
322
+ "selfContacts",
288
323
  "maxDistanceError",
289
324
  "resources"
290
325
  ]
@@ -293,7 +328,7 @@
293
328
  "name": "RopeService",
294
329
  "kind": "InterfaceDeclaration",
295
330
  "signature": "export interface RopeService {\n create(definition: RopeDefinition): void;\n /** Explicit ticks for manual ropes only. Auto-stepped ropes reject this call. A failed batch leaves the rope unchanged. */\n step(id: string, ticks?: number): RopeState;\n inspect(id: string): RopeState;\n /** Detached visual descriptions, sorted by rope id; empty when no visuals are requested. */\n visuals(): readonly RopeVisualState[];\n setColliders(id: string, colliders: readonly RopeCollider[]): void;\n setAnchor(id: string, index: number, position: Vec3): void;\n releaseAnchor(id: string, index: number): void;\n applyForce(id: string, index: number, force: Vec3): void;\n applyImpulse(id: string, index: number, impulse: Vec3): void;\n destroy(id: string): void;\n}",
296
- "line": 182,
331
+ "line": 212,
297
332
  "fields": [
298
333
  "create",
299
334
  "step",
@@ -311,7 +346,7 @@
311
346
  "name": "NavigationCell",
312
347
  "kind": "InterfaceDeclaration",
313
348
  "signature": "export interface NavigationCell { readonly x: number; readonly y: number }",
314
- "line": 199,
349
+ "line": 229,
315
350
  "fields": [
316
351
  "x",
317
352
  "y"
@@ -321,7 +356,7 @@
321
356
  "name": "NavigationObstacleUpdate",
322
357
  "kind": "InterfaceDeclaration",
323
358
  "signature": "export interface NavigationObstacleUpdate { readonly cell: NavigationCell; readonly blocked: boolean }",
324
- "line": 201,
359
+ "line": 231,
325
360
  "fields": [
326
361
  "cell",
327
362
  "blocked"
@@ -331,7 +366,7 @@
331
366
  "name": "NavigationGrid",
332
367
  "kind": "InterfaceDeclaration",
333
368
  "signature": "export interface NavigationGrid {\n readonly id: string;\n readonly owner: string;\n readonly width: number;\n readonly height: number;\n readonly blocked?: readonly NavigationCell[];\n /** Maximum distinct search cells, including endpoints; defaults to 65536. Raising it increases memory and CPU use. */\n readonly searchCellBudget?: number;\n}",
334
- "line": 202,
369
+ "line": 232,
335
370
  "fields": [
336
371
  "id",
337
372
  "owner",
@@ -345,7 +380,7 @@
345
380
  "name": "NavigationService",
346
381
  "kind": "InterfaceDeclaration",
347
382
  "signature": "export interface NavigationService {\n createGrid(grid: NavigationGrid): void;\n /** Returns a detached description, including the current blocked cells. */\n getGrid(id: string): NavigationGrid;\n isBlocked(id: string, cell: NavigationCell): boolean;\n setBlocked(id: string, cell: NavigationCell, blocked: boolean): void;\n /** Validates the entire batch before committing; the last change for a repeated cell wins. */\n setBlockedBatch(id: string, updates: readonly NavigationObstacleUpdate[]): void;\n findPath(id: string, start: NavigationCell, end: NavigationCell): readonly NavigationCell[];\n destroyGrid(id: string): void;\n destroyOwner(owner: string): void;\n}",
348
- "line": 211,
383
+ "line": 241,
349
384
  "fields": [
350
385
  "createGrid",
351
386
  "getGrid",
@@ -361,13 +396,13 @@
361
396
  "name": "RenderMode",
362
397
  "kind": "TypeAliasDeclaration",
363
398
  "signature": "export type RenderMode = \"raster\" | \"hybrid\" | \"path\";",
364
- "line": 223
399
+ "line": 253
365
400
  },
366
401
  {
367
402
  "name": "RenderCapabilities",
368
403
  "kind": "InterfaceDeclaration",
369
404
  "signature": "export interface RenderCapabilities {\n backend: \"webgpu\" | \"webgl2\" | \"uninitialized\";\n compute: boolean;\n availableModes: readonly RenderMode[];\n}",
370
- "line": 224,
405
+ "line": 254,
371
406
  "fields": [
372
407
  "backend",
373
408
  "compute",
@@ -378,7 +413,7 @@
378
413
  "name": "RenderSettings",
379
414
  "kind": "InterfaceDeclaration",
380
415
  "signature": "export interface RenderSettings {\n mode: RenderMode;\n samplesPerFrame: number;\n maxBounces: number;\n denoise: boolean;\n denoiseIterations: number;\n exposure: number;\n directLighting: boolean;\n indirectLighting: boolean;\n debug: \"beauty\" | \"albedo\" | \"normal\" | \"depth\" | \"samples\";\n}",
381
- "line": 229,
416
+ "line": 259,
382
417
  "fields": [
383
418
  "mode",
384
419
  "samplesPerFrame",
@@ -395,7 +430,7 @@
395
430
  "name": "RenderService",
396
431
  "kind": "InterfaceDeclaration",
397
432
  "signature": "export interface RenderService {\n configure(settings: Partial<RenderSettings>): void;\n state(): Readonly<RenderSettings>;\n capabilities(): Readonly<RenderCapabilities>;\n setMaterialParameter(material: string, name: string, value: GraphValue): void;\n materialParameters(material: string): Readonly<Record<string, GraphValue>>;\n readonly effects: PostProcessService;\n readonly buffers: RenderBufferBindings;\n readonly textures: RenderTextureBindings;\n}",
398
- "line": 240,
433
+ "line": 270,
399
434
  "fields": [
400
435
  "configure",
401
436
  "state",
@@ -411,7 +446,7 @@
411
446
  "name": "MaterialBufferInput",
412
447
  "kind": "InterfaceDeclaration",
413
448
  "signature": "export interface MaterialBufferInput {\n /** Shared slot declaration for material and postprocess graphs. */\n name: string;\n type: GraphType;\n /** Optional initial logical compute-buffer ID. */\n buffer?: string;\n /** Optional exact element count required by this slot. */\n count?: number;\n}",
414
- "line": 250,
449
+ "line": 280,
415
450
  "fields": [
416
451
  "name",
417
452
  "type",
@@ -423,7 +458,7 @@
423
458
  "name": "RenderBufferReference",
424
459
  "kind": "InterfaceDeclaration",
425
460
  "signature": "export interface RenderBufferReference {\n id: string;\n type: GraphType;\n count: number;\n}",
426
- "line": 259,
461
+ "line": 289,
427
462
  "fields": [
428
463
  "id",
429
464
  "type",
@@ -434,7 +469,7 @@
434
469
  "name": "RenderBufferBindings",
435
470
  "kind": "InterfaceDeclaration",
436
471
  "signature": "export interface RenderBufferBindings {\n bind(target: string, name: string, buffer: ComputeBufferHandle): void;\n unbind(target: string, name: string): void;\n state(target: string): Readonly<Record<string, RenderBufferReference>>;\n}",
437
- "line": 264,
472
+ "line": 294,
438
473
  "fields": [
439
474
  "bind",
440
475
  "unbind",
@@ -445,7 +480,7 @@
445
480
  "name": "MaterialTextureInput",
446
481
  "kind": "InterfaceDeclaration",
447
482
  "signature": "export interface MaterialTextureInput extends ComputeTextureBinding {\n /** Initial managed texture ID; asset import uses computeTextures/createTexture. */\n texture?: string;\n width?: number;\n height?: number;\n}",
448
- "line": 269,
483
+ "line": 299,
449
484
  "fields": [
450
485
  "texture",
451
486
  "width",
@@ -456,7 +491,7 @@
456
491
  "name": "RenderTextureReference",
457
492
  "kind": "InterfaceDeclaration",
458
493
  "signature": "export interface RenderTextureReference extends ComputeTextureSize {\n id: string;\n format: \"rgba32float\";\n}",
459
- "line": 275,
494
+ "line": 305,
460
495
  "fields": [
461
496
  "id",
462
497
  "format"
@@ -466,7 +501,7 @@
466
501
  "name": "RenderTextureBindings",
467
502
  "kind": "InterfaceDeclaration",
468
503
  "signature": "export interface RenderTextureBindings {\n bind(target: string, name: string, texture: ComputeTextureHandle): void;\n unbind(target: string, name: string): void;\n state(target: string): Readonly<Record<string, RenderTextureReference>>;\n}",
469
- "line": 279,
504
+ "line": 309,
470
505
  "fields": [
471
506
  "bind",
472
507
  "unbind",
@@ -477,7 +512,7 @@
477
512
  "name": "PostProcessState",
478
513
  "kind": "InterfaceDeclaration",
479
514
  "signature": "export interface PostProcessState {\n id: string;\n enabled: boolean;\n parameters: Readonly<Record<string, GraphValue>>;\n}",
480
- "line": 284,
515
+ "line": 314,
481
516
  "fields": [
482
517
  "id",
483
518
  "enabled",
@@ -488,7 +523,7 @@
488
523
  "name": "PostProcessService",
489
524
  "kind": "InterfaceDeclaration",
490
525
  "signature": "export interface PostProcessService {\n /** Compute-buffer slots declared by definePostProcess, addressed by pass ID. */\n readonly buffers: RenderBufferBindings;\n readonly textures: RenderTextureBindings;\n configure(id: string, settings: { enabled: boolean }): void;\n state(id: string): Readonly<PostProcessState>;\n setParameter(id: string, name: string, value: GraphValue): void;\n /** Clears temporal effect images; it does not modify game or trace accumulation state. */\n resetHistory(id?: string): void;\n}",
491
- "line": 289,
526
+ "line": 319,
492
527
  "fields": [
493
528
  "buffers",
494
529
  "textures",
@@ -502,7 +537,7 @@
502
537
  "name": "ComputeBufferHandle",
503
538
  "kind": "InterfaceDeclaration",
504
539
  "signature": "export interface ComputeBufferHandle {\n readonly owner: number;\n readonly index: number;\n readonly generation: number;\n}",
505
- "line": 299,
540
+ "line": 329,
506
541
  "fields": [
507
542
  "owner",
508
543
  "index",
@@ -513,7 +548,7 @@
513
548
  "name": "ComputeTaskHandle",
514
549
  "kind": "InterfaceDeclaration",
515
550
  "signature": "export interface ComputeTaskHandle {\n readonly owner: number;\n readonly id: number;\n}",
516
- "line": 304,
551
+ "line": 334,
517
552
  "fields": [
518
553
  "owner",
519
554
  "id"
@@ -523,7 +558,7 @@
523
558
  "name": "ComputeBufferInput",
524
559
  "kind": "InterfaceDeclaration",
525
560
  "signature": "export interface ComputeBufferInput {\n id: string;\n type: GraphType;\n count: number;\n data?: readonly GraphValue[];\n}",
526
- "line": 308,
561
+ "line": 338,
527
562
  "fields": [
528
563
  "id",
529
564
  "type",
@@ -535,7 +570,7 @@
535
570
  "name": "ComputeTextureHandle",
536
571
  "kind": "InterfaceDeclaration",
537
572
  "signature": "export interface ComputeTextureHandle {\n readonly owner: number;\n readonly index: number;\n readonly generation: number;\n readonly kind: \"texture\";\n}",
538
- "line": 314,
573
+ "line": 344,
539
574
  "fields": [
540
575
  "owner",
541
576
  "index",
@@ -547,7 +582,7 @@
547
582
  "name": "ComputeTextureSize",
548
583
  "kind": "InterfaceDeclaration",
549
584
  "signature": "export interface ComputeTextureSize {\n width: number;\n height: number;\n}",
550
- "line": 320,
585
+ "line": 350,
551
586
  "fields": [
552
587
  "width",
553
588
  "height"
@@ -557,7 +592,7 @@
557
592
  "name": "ComputeTextureDataInput",
558
593
  "kind": "InterfaceDeclaration",
559
594
  "signature": "export interface ComputeTextureDataInput extends ComputeTextureSize {\n id: string;\n /** Linear rgba32float texels in row-major order, without color-space conversion. */\n data?: readonly Vec4[];\n asset?: never;\n}",
560
- "line": 324,
595
+ "line": 354,
561
596
  "fields": [
562
597
  "id",
563
598
  "data",
@@ -568,7 +603,7 @@
568
603
  "name": "ComputeTextureAssetInput",
569
604
  "kind": "InterfaceDeclaration",
570
605
  "signature": "export interface ComputeTextureAssetInput {\n id: string;\n asset: AssetDefinition | string;\n width?: never;\n height?: never;\n data?: never;\n}",
571
- "line": 330,
606
+ "line": 360,
572
607
  "fields": [
573
608
  "id",
574
609
  "asset",
@@ -581,13 +616,13 @@
581
616
  "name": "ComputeTextureInput",
582
617
  "kind": "TypeAliasDeclaration",
583
618
  "signature": "export type ComputeTextureInput = ComputeTextureDataInput | ComputeTextureAssetInput;",
584
- "line": 337
619
+ "line": 367
585
620
  },
586
621
  {
587
622
  "name": "ComputeTextureBinding",
588
623
  "kind": "InterfaceDeclaration",
589
624
  "signature": "export interface ComputeTextureBinding {\n name: string;\n filter?: \"nearest\" | \"linear\";\n wrapU?: \"clamp\" | \"repeat\" | \"mirror\";\n wrapV?: \"clamp\" | \"repeat\" | \"mirror\";\n}",
590
- "line": 338,
625
+ "line": 368,
591
626
  "fields": [
592
627
  "name",
593
628
  "filter",
@@ -599,7 +634,7 @@
599
634
  "name": "ComputeDispatchInput",
600
635
  "kind": "InterfaceDeclaration",
601
636
  "signature": "export interface ComputeDispatchInput {\n output: ComputeBufferHandle | ComputeTextureHandle;\n /** Handles capture dispatch-time data; task bindings consume that exact successful output revision. */\n bindings?: Readonly<Record<string, ComputeBufferHandle | { task: ComputeTaskHandle }>>;\n /** Named sampled rgba32float textures; task bindings capture that exact texture result. */\n textures?: Readonly<Record<string, ComputeTextureHandle | { task: ComputeTaskHandle }>>;\n /** Ordering only. It never silently refreshes ordinary handle bindings. */\n after?: readonly ComputeTaskHandle[];\n parameters?: Readonly<Record<string, GraphValue>>;\n /** Fixed simulation time by default, not wall-clock time. */\n time?: number;\n}",
602
- "line": 344,
637
+ "line": 374,
603
638
  "fields": [
604
639
  "output",
605
640
  "bindings",
@@ -613,7 +648,7 @@
613
648
  "name": "ComputeTaskState",
614
649
  "kind": "InterfaceDeclaration",
615
650
  "signature": "export interface ComputeTaskState {\n status: \"queued\" | \"running\" | \"succeeded\" | \"failed\" | \"cancelled\";\n error?: { code: string; message: string; remediation: string };\n}",
616
- "line": 356,
651
+ "line": 386,
617
652
  "fields": [
618
653
  "status",
619
654
  "error"
@@ -623,7 +658,7 @@
623
658
  "name": "ComputeService",
624
659
  "kind": "InterfaceDeclaration",
625
660
  "signature": "export interface ComputeService {\n createTexture(input: ComputeTextureInput): ComputeTextureHandle;\n resolveTexture(id: string): ComputeTextureHandle;\n describeTexture(texture: ComputeTextureHandle): Readonly<ComputeTextureSize & { id: string; format: \"rgba32float\"; revision: number }>;\n readTexture(texture: ComputeTextureHandle): readonly Vec4[];\n writeTexture(texture: ComputeTextureHandle, data: readonly Vec4[], region?: ComputeTextureSize & { x: number; y: number }): void;\n releaseTexture(texture: ComputeTextureHandle): void;\n createBuffer(input: ComputeBufferInput): ComputeBufferHandle;\n resolve(id: string): ComputeBufferHandle;\n describeBuffer(buffer: ComputeBufferHandle): Readonly<{ id: string; type: GraphType; count: number; revision: number }>;\n /** Last committed GPU result; detached CPU data, never a GPU object. */\n readBuffer(buffer: ComputeBufferHandle): readonly GraphValue[];\n writeBuffer(buffer: ComputeBufferHandle, values: readonly GraphValue[], offset?: number): void;\n releaseBuffer(buffer: ComputeBufferHandle): void;\n dispatch(kernel: ComputeDefinition | string, input: ComputeDispatchInput): ComputeTaskHandle;\n task(task: ComputeTaskHandle): Readonly<ComputeTaskState>;\n tasks(): readonly { handle: ComputeTaskHandle; state: ComputeTaskState }[];\n cancel(task: ComputeTaskHandle): void;\n releaseTask(task: ComputeTaskHandle): void;\n}",
626
- "line": 360,
661
+ "line": 390,
627
662
  "fields": [
628
663
  "createTexture",
629
664
  "resolveTexture",
@@ -648,7 +683,7 @@
648
683
  "name": "InputService",
649
684
  "kind": "InterfaceDeclaration",
650
685
  "signature": "export interface InputService {\n held(action: string): boolean;\n pressed(action: string): boolean;\n released(action: string): boolean;\n axis(negative: string, positive: string): number;\n}",
651
- "line": 380,
686
+ "line": 410,
652
687
  "fields": [
653
688
  "held",
654
689
  "pressed",
@@ -660,7 +695,7 @@
660
695
  "name": "PhysicsService",
661
696
  "kind": "InterfaceDeclaration",
662
697
  "signature": "export interface PhysicsService {\n moveCharacter(entity: string, displacement: Vec3): void;\n grounded(entity: string): boolean;\n velocity(entity: string): Vec3;\n /** World-space rigid-body center of mass, including collider offsets. */\n centerOfMass(entity: string): Vec3;\n setVelocity(entity: string, velocity: Vec3): void;\n impulse(entity: string, impulse: Vec3): void;\n /** Angular velocity in world-space radians per second. */\n angularVelocity(entity: string): Vec3;\n setAngularVelocity(entity: string, velocity: Vec3): void;\n /** Instantaneous world-space angular impulse, in angular-momentum units. */\n torqueImpulse(entity: string, impulse: Vec3): void;\n /** Apply world-space impulse at a world-space point, changing linear and angular motion. */\n impulseAtPoint(entity: string, impulse: Vec3, point: Vec3): void;\n raycast(\n origin: Vec3,\n direction: Vec3,\n maxDistance: number,\n options?: { exclude?: readonly string[]; includeTriggers?: boolean },\n ): { entity: string; distance: number; point: Vec3; normal: Vec3 } | null;\n}",
663
- "line": 386,
698
+ "line": 416,
664
699
  "fields": [
665
700
  "moveCharacter",
666
701
  "grounded",
@@ -679,7 +714,7 @@
679
714
  "name": "AnimationService",
680
715
  "kind": "InterfaceDeclaration",
681
716
  "signature": "export interface AnimationService {\n play(\n entity: string,\n clip: string,\n options?: { fade?: number; speed?: number; loop?: boolean },\n ): void;\n state(entity: string): {\n clip: string | null;\n time: number;\n playing: boolean;\n };\n}",
682
- "line": 408,
717
+ "line": 438,
683
718
  "fields": [
684
719
  "play",
685
720
  "state"
@@ -689,7 +724,7 @@
689
724
  "name": "CameraService",
690
725
  "kind": "InterfaceDeclaration",
691
726
  "signature": "export interface CameraService {\n follow(\n entity: string,\n options?: {\n distance?: number;\n height?: number;\n lookHeight?: number;\n yaw?: number;\n smoothing?: number;\n },\n ): void;\n orbit(yaw: number): void;\n}",
692
- "line": 420,
727
+ "line": 450,
693
728
  "fields": [
694
729
  "follow",
695
730
  "orbit"
@@ -699,7 +734,7 @@
699
734
  "name": "UIService",
700
735
  "kind": "InterfaceDeclaration",
701
736
  "signature": "export interface UIService {\n setText(id: string, text: string): void;\n setProgress(id: string, value: number): void;\n setVisible(id: string, visible: boolean): void;\n}",
702
- "line": 433,
737
+ "line": 463,
703
738
  "fields": [
704
739
  "setText",
705
740
  "setProgress",
@@ -710,7 +745,7 @@
710
745
  "name": "AudioService",
711
746
  "kind": "InterfaceDeclaration",
712
747
  "signature": "export interface AudioService {\n play(\n id: string,\n options?: { volume?: number; loop?: boolean; entity?: string; bus?: string; priority?: number },\n ): string;\n stop(voice: string): void;\n /** Pause/resume are idempotent; an unknown valid voice id is a no-op. Playback time follows fixed simulation ticks, even while audio is locked. */\n pause(voice: string): void;\n resume(voice: string): void;\n volume(value: number): void;\n /** Set a declared bus gain, independently of master and voice gain. */\n busVolume(id: string, value: number): void;\n /** Fade a declared bus over fixed-tick seconds; busVolume or another fade replaces it. */\n fadeBus(id: string, target: number, duration: number): void;\n}",
713
- "line": 438,
748
+ "line": 468,
714
749
  "fields": [
715
750
  "play",
716
751
  "stop",
@@ -725,7 +760,7 @@
725
760
  "name": "StorageService",
726
761
  "kind": "InterfaceDeclaration",
727
762
  "signature": "export interface StorageService {\n save(slot: string): void;\n load(slot: string): void;\n status(): {\n state: \"idle\" | \"saving\" | \"loading\" | \"saved\" | \"loaded\" | \"failed\";\n slot: string | null;\n error: string | null;\n };\n}",
728
- "line": 453,
763
+ "line": 483,
729
764
  "fields": [
730
765
  "save",
731
766
  "load",
@@ -736,7 +771,7 @@
736
771
  "name": "SceneService",
737
772
  "kind": "InterfaceDeclaration",
738
773
  "signature": "export interface SceneService {\n current(): string;\n load(id: string): void;\n}",
739
- "line": 462,
774
+ "line": 492,
740
775
  "fields": [
741
776
  "current",
742
777
  "load"
@@ -746,7 +781,7 @@
746
781
  "name": "ModelDefinition",
747
782
  "kind": "InterfaceDeclaration",
748
783
  "signature": "export interface ModelDefinition {\n /** Optional whole-model material override; omitted keeps the asset's original materials. */\n material?: MaterialDefinition | string;\n /** Replace all asset material slots with the given exact material name. Mutually exclusive with material. */\n materialSlots?: Record<string, MaterialDefinition | string>;\n castShadow?: boolean;\n receiveShadow?: boolean;\n asset: AssetDefinition | string;\n scale?: number;\n offset?: Vec3;\n rotation?: Vec3;\n animation?: { clip: string; speed?: number; loop?: boolean };\n}",
749
- "line": 466,
784
+ "line": 496,
750
785
  "fields": [
751
786
  "material",
752
787
  "materialSlots",
@@ -763,7 +798,7 @@
763
798
  "name": "RigidBodyDefinition",
764
799
  "kind": "InterfaceDeclaration",
765
800
  "signature": "export interface RigidBodyDefinition {\n type: \"fixed\" | \"dynamic\" | \"kinematic\";\n collider: {\n shape: \"box\" | \"sphere\" | \"capsule\";\n size?: Vec3;\n radius?: number;\n halfHeight?: number;\n offset?: Vec3;\n };\n mass?: number;\n friction?: number;\n restitution?: number;\n trigger?: boolean;\n}",
766
- "line": 479,
801
+ "line": 509,
767
802
  "fields": [
768
803
  "type",
769
804
  "collider",
@@ -777,7 +812,7 @@
777
812
  "name": "CharacterDefinition",
778
813
  "kind": "InterfaceDeclaration",
779
814
  "signature": "export interface CharacterDefinition {\n radius: number;\n height: number;\n speed: number;\n jumpSpeed?: number;\n /** Downward acceleration magnitude in world units/s^2; defaults to 9.81. Scene.gravity is a signed vector. */\n gravity?: number;\n}",
780
- "line": 493,
815
+ "line": 523,
781
816
  "fields": [
782
817
  "radius",
783
818
  "height",
@@ -790,7 +825,7 @@
790
825
  "name": "UIElementDefinition",
791
826
  "kind": "InterfaceDeclaration",
792
827
  "signature": "export interface UIElementDefinition {\n id: string;\n kind: \"text\" | \"bar\" | \"button\" | \"input\";\n text?: string;\n value?: number;\n visible?: boolean;\n anchor?: \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\" | \"center\";\n x?: number;\n y?: number;\n width?: number;\n color?: string;\n world?: { entity: string; offset?: Vec3; occlude?: boolean };\n}",
793
- "line": 501,
828
+ "line": 531,
794
829
  "fields": [
795
830
  "id",
796
831
  "kind",
@@ -809,7 +844,7 @@
809
844
  "name": "SoundDefinition",
810
845
  "kind": "InterfaceDeclaration",
811
846
  "signature": "export interface SoundDefinition {\n id: string;\n asset: AssetDefinition | string;\n volume?: number;\n loop?: boolean;\n bus?: string;\n}",
812
- "line": 514,
847
+ "line": 544,
813
848
  "fields": [
814
849
  "id",
815
850
  "asset",
@@ -822,7 +857,7 @@
822
857
  "name": "AudioBusDefinition",
823
858
  "kind": "InterfaceDeclaration",
824
859
  "signature": "export interface AudioBusDefinition {\n id: string;\n volume?: number;\n}",
825
- "line": 521,
860
+ "line": 551,
826
861
  "fields": [
827
862
  "id",
828
863
  "volume"
@@ -832,43 +867,43 @@
832
867
  "name": "SYSTEM_PHASES",
833
868
  "kind": "constant",
834
869
  "signature": "SYSTEM_PHASES = [\n \"input\",\n \"prePhysics\",\n \"physics\",\n \"postPhysics\",\n \"update\",\n \"presentation\",\n] as const",
835
- "line": 525
870
+ "line": 555
836
871
  },
837
872
  {
838
873
  "name": "SystemPhase",
839
874
  "kind": "TypeAliasDeclaration",
840
875
  "signature": "export type SystemPhase = (typeof SYSTEM_PHASES)[number];",
841
- "line": 533
876
+ "line": 563
842
877
  },
843
878
  {
844
879
  "name": "Geometry",
845
880
  "kind": "TypeAliasDeclaration",
846
881
  "signature": "export type Geometry =\n | { kind: \"box\"; size?: Vec3 }\n | { kind: \"sphere\"; radius?: number; segments?: number }\n | { kind: \"plane\"; size?: readonly [number, number] };",
847
- "line": 534
882
+ "line": 564
848
883
  },
849
884
  {
850
885
  "name": "GRAPH_TYPES",
851
886
  "kind": "constant",
852
887
  "signature": "GRAPH_TYPES = [\"float\", \"vec2\", \"vec3\", \"vec4\", \"bool\"] as const",
853
- "line": 538
888
+ "line": 568
854
889
  },
855
890
  {
856
891
  "name": "GraphType",
857
892
  "kind": "TypeAliasDeclaration",
858
893
  "signature": "export type GraphType = typeof GRAPH_TYPES[number];",
859
- "line": 539
894
+ "line": 569
860
895
  },
861
896
  {
862
897
  "name": "GraphValue",
863
898
  "kind": "TypeAliasDeclaration",
864
899
  "signature": "export type GraphValue = number | boolean | Vec2 | Vec3 | Vec4;",
865
- "line": 540
900
+ "line": 570
866
901
  },
867
902
  {
868
903
  "name": "GraphParameter",
869
904
  "kind": "InterfaceDeclaration",
870
905
  "signature": "export interface GraphParameter {\n name: string;\n type: GraphType;\n default: GraphValue;\n}",
871
- "line": 541,
906
+ "line": 571,
872
907
  "fields": [
873
908
  "name",
874
909
  "type",
@@ -879,31 +914,31 @@
879
914
  "name": "GRAPH_INPUT_TYPES",
880
915
  "kind": "constant",
881
916
  "signature": "GRAPH_INPUT_TYPES = {\n uv: \"vec2\", uv1: \"vec2\", positionWorld: \"vec3\", normalWorld: \"vec3\",\n viewDirectionWorld: \"vec3\", vertexColor: \"vec4\", index: \"float\",\n screenSize: \"vec2\", texelSize: \"vec2\",\n pixelCoord: \"vec2\", outputSize: \"vec2\",\n positionLocal: \"vec3\", normalLocal: \"vec3\", vertexIndex: \"float\", instanceIndex: \"float\",\n} as const",
882
- "line": 546
917
+ "line": 576
883
918
  },
884
919
  {
885
920
  "name": "GraphInputName",
886
921
  "kind": "TypeAliasDeclaration",
887
922
  "signature": "export type GraphInputName = keyof typeof GRAPH_INPUT_TYPES;",
888
- "line": 553
923
+ "line": 583
889
924
  },
890
925
  {
891
926
  "name": "GRAPH_OPERATIONS",
892
927
  "kind": "constant",
893
928
  "signature": "GRAPH_OPERATIONS = {\n unary: [\"sin\", \"cos\", \"abs\", \"floor\", \"ceil\", \"fract\", \"negate\", \"saturate\", \"normalize\", \"length\", \"safeSqrt\"] as const,\n binary: [\"add\", \"subtract\", \"multiply\", \"safeDivide\", \"min\", \"max\", \"dot\", \"cross\", \"step\", \"lessThan\", \"lessEqual\", \"greaterThan\", \"greaterEqual\", \"equal\", \"and\", \"or\"] as const,\n ternary: [\"mix\", \"clamp\", \"smoothstep\", \"select\"] as const,\n} as const",
894
- "line": 554
929
+ "line": 584
895
930
  },
896
931
  {
897
932
  "name": "GraphNode",
898
933
  "kind": "TypeAliasDeclaration",
899
934
  "signature": "export type GraphNode =\n | { id: string; op: \"float\"; value: number }\n | { id: string; op: \"bool\"; value: boolean }\n | { id: string; op: \"vec2\"; value: Vec2 }\n | { id: string; op: \"vec3\"; value: Vec3 }\n | { id: string; op: \"vec4\"; value: Vec4 }\n | { id: string; op: \"time\" }\n | { id: string; op: \"input\"; name: GraphInputName }\n | { id: string; op: \"parameter\"; name: string }\n | { id: string; op: typeof GRAPH_OPERATIONS.unary[number] | \"not\"; inputs: readonly [string] }\n | { id: string; op: typeof GRAPH_OPERATIONS.binary[number]; inputs: readonly [string, string] }\n | { id: string; op: typeof GRAPH_OPERATIONS.ternary[number]; inputs: readonly [string, string, string] }\n | { id: string; op: \"compose2\"; inputs: readonly [string, string] }\n | { id: string; op: \"compose3\"; inputs: readonly [string, string, string] }\n | { id: string; op: \"compose4\"; inputs: readonly [string, string, string, string] }\n | { id: string; op: \"swizzle\"; inputs: readonly [string]; components: string }\n | { id: string; op: \"sampleTexture\"; inputs: readonly [string]; texture: AssetDefinition | string }\n | { id: string; op: \"readBuffer\"; inputs: readonly [string]; buffer: string }\n | { id: string; op: \"sampleFrame\"; inputs: readonly [string]; channel: string }\n | { id: string; op: \"sampleHistory\"; inputs: readonly [string]; channel: string };",
900
- "line": 559
935
+ "line": 589
901
936
  },
902
937
  {
903
938
  "name": "Graph",
904
939
  "kind": "InterfaceDeclaration",
905
940
  "signature": "export interface Graph {\n nodes: readonly GraphNode[];\n output: string;\n parameters?: readonly GraphParameter[];\n}",
906
- "line": 579,
941
+ "line": 609,
907
942
  "fields": [
908
943
  "nodes",
909
944
  "output",
@@ -914,7 +949,7 @@
914
949
  "name": "MaterialGraphs",
915
950
  "kind": "InterfaceDeclaration",
916
951
  "signature": "export interface MaterialGraphs {\n baseColor?: Graph;\n emissive?: Graph;\n roughness?: Graph;\n metalness?: Graph;\n opacity?: Graph;\n /** Absolute, unsided world-space normal; engine applies material boundary orientation. */\n normalWorld?: Graph;\n}",
917
- "line": 584,
952
+ "line": 614,
918
953
  "fields": [
919
954
  "baseColor",
920
955
  "emissive",
@@ -928,7 +963,7 @@
928
963
  "name": "VertexGraphs",
929
964
  "kind": "InterfaceDeclaration",
930
965
  "signature": "export interface VertexGraphs {\n /** Absolute object-local position after built-in morph, skin and instance transforms. */\n position?: Graph;\n /** Unsided object-local normal in the same domain; zero keeps the normalized input normal. */\n normal?: Graph;\n}",
931
- "line": 593,
966
+ "line": 623,
932
967
  "fields": [
933
968
  "position",
934
969
  "normal"
@@ -938,7 +973,7 @@
938
973
  "name": "MaterialInput",
939
974
  "kind": "InterfaceDeclaration",
940
975
  "signature": "export interface MaterialInput {\n id: string;\n color?: string;\n roughness?: number;\n metalness?: number;\n texture?: AssetDefinition | string;\n graph?: Graph;\n graphs?: MaterialGraphs;\n vertex?: VertexGraphs;\n buffers?: readonly MaterialBufferInput[];\n textures?: readonly MaterialTextureInput[];\n emissive?: string;\n emissiveIntensity?: number;\n opacity?: number;\n alphaTest?: number;\n side?: \"front\" | \"back\" | \"double\";\n /** Closed-volume dielectric fraction; opacity remains independent stochastic coverage. */\n transmission?: number;\n ior?: number;\n /** Nontransmissive dielectric specular strength in [0,1]. Defaults to 1. */\n specularIntensity?: number;\n /** Nontransmissive dielectric specular color, a hex or named sRGB color. Defaults to white. */\n specularColor?: string;\n attenuationColor?: string;\n /** World-space distance for Beer absorption; omitted means no absorption. */\n attenuationDistance?: number;\n}",
941
- "line": 599,
976
+ "line": 629,
942
977
  "fields": [
943
978
  "id",
944
979
  "color",
@@ -967,7 +1002,7 @@
967
1002
  "name": "MaterialDefinition",
968
1003
  "kind": "InterfaceDeclaration",
969
1004
  "signature": "export interface MaterialDefinition extends MaterialInput {\n readonly kind: \"material\";\n}",
970
- "line": 626,
1005
+ "line": 656,
971
1006
  "fields": [
972
1007
  "kind"
973
1008
  ]
@@ -976,7 +1011,7 @@
976
1011
  "name": "PostProcessInput",
977
1012
  "kind": "InterfaceDeclaration",
978
1013
  "signature": "export interface PostProcessInput {\n id: string;\n buffers?: readonly MaterialBufferInput[];\n textures?: readonly MaterialTextureInput[];\n /** Linear HDR vec4 output. Frame channels: scene.color, scene.normal, scene.depth, or an earlier pass ID. */\n graph: Graph;\n enabled?: boolean;\n}",
979
- "line": 629,
1014
+ "line": 659,
980
1015
  "fields": [
981
1016
  "id",
982
1017
  "buffers",
@@ -989,7 +1024,7 @@
989
1024
  "name": "PostProcessDefinition",
990
1025
  "kind": "InterfaceDeclaration",
991
1026
  "signature": "export interface PostProcessDefinition extends PostProcessInput {\n readonly kind: \"postprocess\";\n}",
992
- "line": 637,
1027
+ "line": 667,
993
1028
  "fields": [
994
1029
  "kind"
995
1030
  ]
@@ -998,7 +1033,7 @@
998
1033
  "name": "ComputeInput",
999
1034
  "kind": "InterfaceDeclaration",
1000
1035
  "signature": "export interface ComputeInput {\n id: string;\n graph: Graph;\n outputType: GraphType;\n count: number;\n workgroupSize?: number;\n buffers?: readonly { name: string; type: GraphType }[];\n textures?: readonly ComputeTextureBinding[];\n}",
1001
- "line": 640,
1036
+ "line": 670,
1002
1037
  "fields": [
1003
1038
  "id",
1004
1039
  "graph",
@@ -1013,7 +1048,7 @@
1013
1048
  "name": "ComputeDefinition",
1014
1049
  "kind": "InterfaceDeclaration",
1015
1050
  "signature": "export interface ComputeDefinition extends ComputeInput {\n readonly kind: \"compute\";\n}",
1016
- "line": 649,
1051
+ "line": 679,
1017
1052
  "fields": [
1018
1053
  "kind"
1019
1054
  ]
@@ -1022,7 +1057,7 @@
1022
1057
  "name": "AssetInput",
1023
1058
  "kind": "InterfaceDeclaration",
1024
1059
  "signature": "export interface AssetInput {\n id: string;\n path: string;\n type: \"texture\" | \"binary\" | \"model\" | \"audio\";\n source?: string;\n license?: string;\n attribution?: string;\n /** Texture imports only; defaults to sRGB color. Data/normal/ORM textures use linear. */\n colorSpace?: \"srgb\" | \"linear\";\n}",
1025
- "line": 652,
1060
+ "line": 682,
1026
1061
  "fields": [
1027
1062
  "id",
1028
1063
  "path",
@@ -1037,7 +1072,7 @@
1037
1072
  "name": "AssetDefinition",
1038
1073
  "kind": "InterfaceDeclaration",
1039
1074
  "signature": "export interface AssetDefinition extends AssetInput {\n readonly kind: \"asset\";\n}",
1040
- "line": 662,
1075
+ "line": 692,
1041
1076
  "fields": [
1042
1077
  "kind"
1043
1078
  ]
@@ -1046,7 +1081,7 @@
1046
1081
  "name": "MeshDefinition",
1047
1082
  "kind": "InterfaceDeclaration",
1048
1083
  "signature": "export interface MeshDefinition {\n geometry: Geometry;\n material: MaterialDefinition | string;\n castShadow?: boolean;\n receiveShadow?: boolean;\n}",
1049
- "line": 665,
1084
+ "line": 695,
1050
1085
  "fields": [
1051
1086
  "geometry",
1052
1087
  "material",
@@ -1058,7 +1093,7 @@
1058
1093
  "name": "LightDefinition",
1059
1094
  "kind": "InterfaceDeclaration",
1060
1095
  "signature": "export interface LightDefinition {\n kind: \"directional\" | \"point\";\n color?: string;\n intensity?: number;\n castShadow?: boolean;\n target?: Vec3;\n shadow?: {\n mapSize?: number;\n extent?: number;\n bias?: number;\n normalBias?: number;\n near?: number;\n far?: number;\n };\n}",
1061
- "line": 671,
1096
+ "line": 701,
1062
1097
  "fields": [
1063
1098
  "kind",
1064
1099
  "color",
@@ -1072,7 +1107,7 @@
1072
1107
  "name": "EntityInput",
1073
1108
  "kind": "InterfaceDeclaration",
1074
1109
  "signature": "export interface EntityInput {\n id: string;\n prefab?: PrefabDefinition | string;\n parent?: string;\n transform?: TransformPatch;\n mesh?: MeshDefinition;\n light?: LightDefinition;\n model?: ModelDefinition;\n rigidBody?: RigidBodyDefinition;\n character?: CharacterDefinition;\n components?: readonly ComponentInstance[];\n}",
1075
- "line": 686,
1110
+ "line": 716,
1076
1111
  "fields": [
1077
1112
  "id",
1078
1113
  "prefab",
@@ -1090,7 +1125,7 @@
1090
1125
  "name": "PrefabInput",
1091
1126
  "kind": "InterfaceDeclaration",
1092
1127
  "signature": "export interface PrefabInput extends Omit<EntityInput, \"prefab\" | \"parent\"> {\n extends?: PrefabDefinition | string;\n}",
1093
- "line": 698,
1128
+ "line": 728,
1094
1129
  "fields": [
1095
1130
  "extends"
1096
1131
  ]
@@ -1099,7 +1134,7 @@
1099
1134
  "name": "PrefabDefinition",
1100
1135
  "kind": "InterfaceDeclaration",
1101
1136
  "signature": "export interface PrefabDefinition extends PrefabInput {\n readonly kind: \"prefab\";\n}",
1102
- "line": 701,
1137
+ "line": 731,
1103
1138
  "fields": [
1104
1139
  "kind"
1105
1140
  ]
@@ -1108,7 +1143,7 @@
1108
1143
  "name": "SceneInput",
1109
1144
  "kind": "InterfaceDeclaration",
1110
1145
  "signature": "export interface SceneInput {\n id: string;\n camera?: {\n position: Vec3;\n target: Vec3;\n fov?: number;\n near?: number;\n far?: number;\n };\n environment?: {\n background?: string;\n ambientIntensity?: number;\n lighting?: \"none\" | \"studio\";\n };\n follow?: {\n entity: string;\n distance?: number;\n height?: number;\n lookHeight?: number;\n yaw?: number;\n smoothing?: number;\n };\n gravity?: Vec3;\n entities: readonly EntityInput[];\n}",
1111
- "line": 704,
1146
+ "line": 734,
1112
1147
  "fields": [
1113
1148
  "id",
1114
1149
  "camera",
@@ -1122,7 +1157,7 @@
1122
1157
  "name": "SceneDefinition",
1123
1158
  "kind": "InterfaceDeclaration",
1124
1159
  "signature": "export interface SceneDefinition extends SceneInput {\n readonly kind: \"scene\";\n}",
1125
- "line": 729,
1160
+ "line": 759,
1126
1161
  "fields": [
1127
1162
  "kind"
1128
1163
  ]
@@ -1131,7 +1166,7 @@
1131
1166
  "name": "SystemInput",
1132
1167
  "kind": "InterfaceDeclaration",
1133
1168
  "signature": "export interface SystemInput {\n id: string;\n phase?: SystemPhase;\n before?: readonly string[];\n after?: readonly string[];\n reads?: readonly string[];\n writes?: readonly string[];\n structural?: boolean;\n run: (engine: SystemContext, dt: number) => void;\n}",
1134
- "line": 732,
1169
+ "line": 762,
1135
1170
  "fields": [
1136
1171
  "id",
1137
1172
  "phase",
@@ -1147,7 +1182,7 @@
1147
1182
  "name": "SystemDefinition",
1148
1183
  "kind": "InterfaceDeclaration",
1149
1184
  "signature": "export interface SystemDefinition extends SystemInput {\n readonly kind: \"system\";\n}",
1150
- "line": 742,
1185
+ "line": 772,
1151
1186
  "fields": [
1152
1187
  "kind"
1153
1188
  ]
@@ -1156,7 +1191,7 @@
1156
1191
  "name": "GameInput",
1157
1192
  "kind": "InterfaceDeclaration",
1158
1193
  "signature": "export interface GameInput {\n id: string;\n scene: SceneDefinition;\n systems?: readonly SystemDefinition[];\n components?: readonly ComponentDefinition[];\n prefabs?: readonly PrefabDefinition[];\n materials?: readonly MaterialDefinition[];\n computes?: readonly ComputeDefinition[];\n computeBuffers?: readonly ComputeBufferInput[];\n computeTextures?: readonly ComputeTextureInput[];\n assets?: readonly AssetDefinition[];\n scenes?: readonly SceneDefinition[];\n input?: Readonly<Record<string, readonly string[]>>;\n ui?: readonly UIElementDefinition[];\n sounds?: readonly SoundDefinition[];\n audioBuses?: readonly AudioBusDefinition[];\n render?: Partial<RenderSettings>;\n postProcesses?: readonly PostProcessDefinition[];\n}",
1159
- "line": 745,
1194
+ "line": 775,
1160
1195
  "fields": [
1161
1196
  "id",
1162
1197
  "scene",
@@ -1181,7 +1216,7 @@
1181
1216
  "name": "GameDefinition",
1182
1217
  "kind": "InterfaceDeclaration",
1183
1218
  "signature": "export interface GameDefinition extends GameInput {\n readonly kind: \"game\";\n}",
1184
- "line": 764,
1219
+ "line": 794,
1185
1220
  "fields": [
1186
1221
  "kind"
1187
1222
  ]
@@ -1190,7 +1225,7 @@
1190
1225
  "name": "GameInstance",
1191
1226
  "kind": "InterfaceDeclaration",
1192
1227
  "signature": "export interface GameInstance {\n update(dt: number): void;\n dispose(): void;\n}",
1193
- "line": 767,
1228
+ "line": 797,
1194
1229
  "fields": [
1195
1230
  "update",
1196
1231
  "dispose"
@@ -1200,61 +1235,61 @@
1200
1235
  "name": "defineComponent",
1201
1236
  "kind": "FunctionDeclaration",
1202
1237
  "signature": "export function defineComponent<const S extends ComponentSchema>(input: {\n id: string;\n schema: S;\n}): ComponentDefinition<S>;",
1203
- "line": 771
1238
+ "line": 801
1204
1239
  },
1205
1240
  {
1206
1241
  "name": "defineMaterial",
1207
1242
  "kind": "FunctionDeclaration",
1208
1243
  "signature": "export function defineMaterial(input: MaterialInput): MaterialDefinition;",
1209
- "line": 777
1244
+ "line": 807
1210
1245
  },
1211
1246
  {
1212
1247
  "name": "definePostProcess",
1213
1248
  "kind": "FunctionDeclaration",
1214
1249
  "signature": "export function definePostProcess(input: PostProcessInput): PostProcessDefinition;",
1215
- "line": 780
1250
+ "line": 810
1216
1251
  },
1217
1252
  {
1218
1253
  "name": "defineCompute",
1219
1254
  "kind": "FunctionDeclaration",
1220
1255
  "signature": "export function defineCompute(input: ComputeInput): ComputeDefinition;",
1221
- "line": 783
1256
+ "line": 813
1222
1257
  },
1223
1258
  {
1224
1259
  "name": "defineAsset",
1225
1260
  "kind": "FunctionDeclaration",
1226
1261
  "signature": "export function defineAsset(input: AssetInput): AssetDefinition;",
1227
- "line": 786
1262
+ "line": 816
1228
1263
  },
1229
1264
  {
1230
1265
  "name": "definePrefab",
1231
1266
  "kind": "FunctionDeclaration",
1232
1267
  "signature": "export function definePrefab(input: PrefabInput): PrefabDefinition;",
1233
- "line": 789
1268
+ "line": 819
1234
1269
  },
1235
1270
  {
1236
1271
  "name": "defineScene",
1237
1272
  "kind": "FunctionDeclaration",
1238
1273
  "signature": "export function defineScene(input: SceneInput): SceneDefinition;",
1239
- "line": 792
1274
+ "line": 822
1240
1275
  },
1241
1276
  {
1242
1277
  "name": "defineSystem",
1243
1278
  "kind": "FunctionDeclaration",
1244
1279
  "signature": "export function defineSystem(input: SystemInput): SystemDefinition;",
1245
- "line": 795
1280
+ "line": 825
1246
1281
  },
1247
1282
  {
1248
1283
  "name": "defineGame",
1249
1284
  "kind": "FunctionDeclaration",
1250
1285
  "signature": "export function defineGame(input: GameInput): GameDefinition;",
1251
- "line": 798
1286
+ "line": 828
1252
1287
  },
1253
1288
  {
1254
1289
  "name": "instantiateGame",
1255
1290
  "kind": "FunctionDeclaration",
1256
1291
  "signature": "export function instantiateGame(\n game: GameDefinition,\n engine: EngineFacade,\n): GameInstance;",
1257
- "line": 802
1292
+ "line": 832
1258
1293
  }
1259
1294
  ],
1260
1295
  "installedDeclarations": "lib/sdk/index.d.ts",