pelican-engine 0.3.21 → 0.3.22

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.21",
4
+ "engineVersion": "0.3.22",
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.21\"",
11
+ "signature": "SDK_VERSION = \"0.3.22\"",
12
12
  "line": 2
13
13
  },
14
14
  {
@@ -370,7 +370,7 @@
370
370
  {
371
371
  "name": "ClothDefinition",
372
372
  "kind": "InterfaceDeclaration",
373
- "signature": "export interface ClothDefinition {\n id: string;\n points: readonly Vec3[];\n triangles: readonly ClothTriangle[];\n /** Kilograms per movable particle. */\n mass: number;\n radius?: number;\n fixedDt?: number;\n autoStep?: boolean;\n substeps?: number;\n iterations?: number;\n damping?: number;\n gravity?: Vec3;\n /** Distance-based bending approximation across shared triangle edges; defaults to true. */\n bending?: boolean;\n anchors?: readonly { index: number; position: Vec3 }[];\n visual?: ClothVisualOptions;\n /** Discrete non-adjacent particle self-contact; defaults to true for new cloth. */\n selfCollisions?: boolean;\n}",
373
+ "signature": "export interface ClothDefinition {\n id: string;\n points: readonly Vec3[];\n triangles: readonly ClothTriangle[];\n /** Kilograms per movable particle. */\n mass: number;\n radius?: number;\n fixedDt?: number;\n autoStep?: boolean;\n substeps?: number;\n iterations?: number;\n damping?: number;\n gravity?: Vec3;\n /** Distance-based bending approximation across shared triangle edges; defaults to true. */\n bending?: boolean;\n anchors?: readonly { index: number; position: Vec3 }[];\n visual?: ClothVisualOptions;\n /** Discrete non-adjacent particle self-contact; defaults to true for new cloth. */\n selfCollisions?: boolean;\n /** Sphere triangle-surface contacts; defaults to true for new cloth. */\n surfaceCollisions?: boolean;\n}",
374
374
  "line": 237,
375
375
  "fields": [
376
376
  "id",
@@ -387,14 +387,15 @@
387
387
  "bending",
388
388
  "anchors",
389
389
  "visual",
390
- "selfCollisions"
390
+ "selfCollisions",
391
+ "surfaceCollisions"
391
392
  ]
392
393
  },
393
394
  {
394
395
  "name": "ClothContact",
395
396
  "kind": "InterfaceDeclaration",
396
397
  "signature": "export interface ClothContact { tick: number; particle: number; colliderId: string; penetration: number }",
397
- "line": 257,
398
+ "line": 259,
398
399
  "fields": [
399
400
  "tick",
400
401
  "particle",
@@ -406,7 +407,7 @@
406
407
  "name": "ClothSelfContact",
407
408
  "kind": "InterfaceDeclaration",
408
409
  "signature": "export interface ClothSelfContact { tick: number; firstParticle: number; secondParticle: number; penetration: number }",
409
- "line": 258,
410
+ "line": 260,
410
411
  "fields": [
411
412
  "tick",
412
413
  "firstParticle",
@@ -414,22 +415,37 @@
414
415
  "penetration"
415
416
  ]
416
417
  },
418
+ {
419
+ "name": "ClothSurfaceContact",
420
+ "kind": "InterfaceDeclaration",
421
+ "signature": "export interface ClothSurfaceContact { tick: number; triangle: number; colliderId: string; penetration: number; barycentric: [number, number, number] }",
422
+ "line": 261,
423
+ "fields": [
424
+ "tick",
425
+ "triangle",
426
+ "colliderId",
427
+ "penetration",
428
+ "barycentric"
429
+ ]
430
+ },
417
431
  {
418
432
  "name": "ClothState",
419
433
  "kind": "InterfaceDeclaration",
420
- "signature": "export interface ClothState {\n tick: number; simulatedSeconds: number; disposed: boolean; selfCollisions: boolean;\n positions: Vec3[]; velocities: Vec3[]; triangles: ClothTriangle[];\n anchors: { index: number; position: Vec3 }[];\n contacts: ClothContact[]; selfContacts: ClothSelfContact[];\n maxDistanceError: number;\n resources: { particles: number; triangles: number; constraints: number; anchors: number; colliders: number };\n}",
421
- "line": 259,
434
+ "signature": "export interface ClothState {\n tick: number; simulatedSeconds: number; disposed: boolean; selfCollisions: boolean; surfaceCollisions: boolean;\n positions: Vec3[]; velocities: Vec3[]; triangles: ClothTriangle[];\n anchors: { index: number; position: Vec3 }[];\n contacts: ClothContact[]; selfContacts: ClothSelfContact[]; surfaceContacts: ClothSurfaceContact[];\n maxDistanceError: number;\n resources: { particles: number; triangles: number; constraints: number; anchors: number; colliders: number };\n}",
435
+ "line": 262,
422
436
  "fields": [
423
437
  "tick",
424
438
  "simulatedSeconds",
425
439
  "disposed",
426
440
  "selfCollisions",
441
+ "surfaceCollisions",
427
442
  "positions",
428
443
  "velocities",
429
444
  "triangles",
430
445
  "anchors",
431
446
  "contacts",
432
447
  "selfContacts",
448
+ "surfaceContacts",
433
449
  "maxDistanceError",
434
450
  "resources"
435
451
  ]
@@ -438,7 +454,7 @@
438
454
  "name": "ClothVisualState",
439
455
  "kind": "InterfaceDeclaration",
440
456
  "signature": "export interface ClothVisualState {\n id: string; material: string; positions: Vec3[]; triangles: ClothTriangle[];\n uvs: Vec2[]; castShadow: boolean; receiveShadow: boolean;\n}",
441
- "line": 267,
457
+ "line": 270,
442
458
  "fields": [
443
459
  "id",
444
460
  "material",
@@ -453,7 +469,7 @@
453
469
  "name": "ClothService",
454
470
  "kind": "InterfaceDeclaration",
455
471
  "signature": "export interface ClothService {\n create(definition: ClothDefinition): void;\n /** Explicit ticks for manual cloth only; automatic cloth rejects this call. */\n step(id: string, ticks?: number): ClothState;\n inspect(id: string): ClothState;\n visuals(): readonly ClothVisualState[];\n setColliders(id: string, colliders: readonly ClothCollider[]): 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}",
456
- "line": 271,
472
+ "line": 274,
457
473
  "fields": [
458
474
  "create",
459
475
  "step",
@@ -471,7 +487,7 @@
471
487
  "name": "NavigationCell",
472
488
  "kind": "InterfaceDeclaration",
473
489
  "signature": "export interface NavigationCell { readonly x: number; readonly y: number }",
474
- "line": 287,
490
+ "line": 290,
475
491
  "fields": [
476
492
  "x",
477
493
  "y"
@@ -481,7 +497,7 @@
481
497
  "name": "NavigationObstacleUpdate",
482
498
  "kind": "InterfaceDeclaration",
483
499
  "signature": "export interface NavigationObstacleUpdate { readonly cell: NavigationCell; readonly blocked: boolean }",
484
- "line": 289,
500
+ "line": 292,
485
501
  "fields": [
486
502
  "cell",
487
503
  "blocked"
@@ -491,7 +507,7 @@
491
507
  "name": "NavigationGrid",
492
508
  "kind": "InterfaceDeclaration",
493
509
  "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}",
494
- "line": 290,
510
+ "line": 293,
495
511
  "fields": [
496
512
  "id",
497
513
  "owner",
@@ -505,7 +521,7 @@
505
521
  "name": "NavigationService",
506
522
  "kind": "InterfaceDeclaration",
507
523
  "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}",
508
- "line": 299,
524
+ "line": 302,
509
525
  "fields": [
510
526
  "createGrid",
511
527
  "getGrid",
@@ -521,13 +537,13 @@
521
537
  "name": "RenderMode",
522
538
  "kind": "TypeAliasDeclaration",
523
539
  "signature": "export type RenderMode = \"raster\" | \"hybrid\" | \"path\";",
524
- "line": 311
540
+ "line": 314
525
541
  },
526
542
  {
527
543
  "name": "RenderCapabilities",
528
544
  "kind": "InterfaceDeclaration",
529
545
  "signature": "export interface RenderCapabilities {\n backend: \"webgpu\" | \"webgl2\" | \"uninitialized\";\n compute: boolean;\n availableModes: readonly RenderMode[];\n}",
530
- "line": 312,
546
+ "line": 315,
531
547
  "fields": [
532
548
  "backend",
533
549
  "compute",
@@ -538,7 +554,7 @@
538
554
  "name": "RenderSettings",
539
555
  "kind": "InterfaceDeclaration",
540
556
  "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}",
541
- "line": 317,
557
+ "line": 320,
542
558
  "fields": [
543
559
  "mode",
544
560
  "samplesPerFrame",
@@ -555,7 +571,7 @@
555
571
  "name": "RenderService",
556
572
  "kind": "InterfaceDeclaration",
557
573
  "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}",
558
- "line": 328,
574
+ "line": 331,
559
575
  "fields": [
560
576
  "configure",
561
577
  "state",
@@ -571,7 +587,7 @@
571
587
  "name": "MaterialBufferInput",
572
588
  "kind": "InterfaceDeclaration",
573
589
  "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}",
574
- "line": 338,
590
+ "line": 341,
575
591
  "fields": [
576
592
  "name",
577
593
  "type",
@@ -583,7 +599,7 @@
583
599
  "name": "RenderBufferReference",
584
600
  "kind": "InterfaceDeclaration",
585
601
  "signature": "export interface RenderBufferReference {\n id: string;\n type: GraphType;\n count: number;\n}",
586
- "line": 347,
602
+ "line": 350,
587
603
  "fields": [
588
604
  "id",
589
605
  "type",
@@ -594,7 +610,7 @@
594
610
  "name": "RenderBufferBindings",
595
611
  "kind": "InterfaceDeclaration",
596
612
  "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}",
597
- "line": 352,
613
+ "line": 355,
598
614
  "fields": [
599
615
  "bind",
600
616
  "unbind",
@@ -605,7 +621,7 @@
605
621
  "name": "MaterialTextureInput",
606
622
  "kind": "InterfaceDeclaration",
607
623
  "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}",
608
- "line": 357,
624
+ "line": 360,
609
625
  "fields": [
610
626
  "texture",
611
627
  "width",
@@ -616,7 +632,7 @@
616
632
  "name": "RenderTextureReference",
617
633
  "kind": "InterfaceDeclaration",
618
634
  "signature": "export interface RenderTextureReference extends ComputeTextureSize {\n id: string;\n format: \"rgba32float\";\n}",
619
- "line": 363,
635
+ "line": 366,
620
636
  "fields": [
621
637
  "id",
622
638
  "format"
@@ -626,7 +642,7 @@
626
642
  "name": "RenderTextureBindings",
627
643
  "kind": "InterfaceDeclaration",
628
644
  "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}",
629
- "line": 367,
645
+ "line": 370,
630
646
  "fields": [
631
647
  "bind",
632
648
  "unbind",
@@ -637,7 +653,7 @@
637
653
  "name": "PostProcessState",
638
654
  "kind": "InterfaceDeclaration",
639
655
  "signature": "export interface PostProcessState {\n id: string;\n enabled: boolean;\n parameters: Readonly<Record<string, GraphValue>>;\n}",
640
- "line": 372,
656
+ "line": 375,
641
657
  "fields": [
642
658
  "id",
643
659
  "enabled",
@@ -648,7 +664,7 @@
648
664
  "name": "PostProcessService",
649
665
  "kind": "InterfaceDeclaration",
650
666
  "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}",
651
- "line": 377,
667
+ "line": 380,
652
668
  "fields": [
653
669
  "buffers",
654
670
  "textures",
@@ -662,7 +678,7 @@
662
678
  "name": "ComputeBufferHandle",
663
679
  "kind": "InterfaceDeclaration",
664
680
  "signature": "export interface ComputeBufferHandle {\n readonly owner: number;\n readonly index: number;\n readonly generation: number;\n}",
665
- "line": 387,
681
+ "line": 390,
666
682
  "fields": [
667
683
  "owner",
668
684
  "index",
@@ -673,7 +689,7 @@
673
689
  "name": "ComputeTaskHandle",
674
690
  "kind": "InterfaceDeclaration",
675
691
  "signature": "export interface ComputeTaskHandle {\n readonly owner: number;\n readonly id: number;\n}",
676
- "line": 392,
692
+ "line": 395,
677
693
  "fields": [
678
694
  "owner",
679
695
  "id"
@@ -683,7 +699,7 @@
683
699
  "name": "ComputeBufferInput",
684
700
  "kind": "InterfaceDeclaration",
685
701
  "signature": "export interface ComputeBufferInput {\n id: string;\n type: GraphType;\n count: number;\n data?: readonly GraphValue[];\n}",
686
- "line": 396,
702
+ "line": 399,
687
703
  "fields": [
688
704
  "id",
689
705
  "type",
@@ -695,7 +711,7 @@
695
711
  "name": "ComputeTextureHandle",
696
712
  "kind": "InterfaceDeclaration",
697
713
  "signature": "export interface ComputeTextureHandle {\n readonly owner: number;\n readonly index: number;\n readonly generation: number;\n readonly kind: \"texture\";\n}",
698
- "line": 402,
714
+ "line": 405,
699
715
  "fields": [
700
716
  "owner",
701
717
  "index",
@@ -707,7 +723,7 @@
707
723
  "name": "ComputeTextureSize",
708
724
  "kind": "InterfaceDeclaration",
709
725
  "signature": "export interface ComputeTextureSize {\n width: number;\n height: number;\n}",
710
- "line": 408,
726
+ "line": 411,
711
727
  "fields": [
712
728
  "width",
713
729
  "height"
@@ -717,7 +733,7 @@
717
733
  "name": "ComputeTextureDataInput",
718
734
  "kind": "InterfaceDeclaration",
719
735
  "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}",
720
- "line": 412,
736
+ "line": 415,
721
737
  "fields": [
722
738
  "id",
723
739
  "data",
@@ -728,7 +744,7 @@
728
744
  "name": "ComputeTextureAssetInput",
729
745
  "kind": "InterfaceDeclaration",
730
746
  "signature": "export interface ComputeTextureAssetInput {\n id: string;\n asset: AssetDefinition | string;\n width?: never;\n height?: never;\n data?: never;\n}",
731
- "line": 418,
747
+ "line": 421,
732
748
  "fields": [
733
749
  "id",
734
750
  "asset",
@@ -741,13 +757,13 @@
741
757
  "name": "ComputeTextureInput",
742
758
  "kind": "TypeAliasDeclaration",
743
759
  "signature": "export type ComputeTextureInput = ComputeTextureDataInput | ComputeTextureAssetInput;",
744
- "line": 425
760
+ "line": 428
745
761
  },
746
762
  {
747
763
  "name": "ComputeTextureBinding",
748
764
  "kind": "InterfaceDeclaration",
749
765
  "signature": "export interface ComputeTextureBinding {\n name: string;\n filter?: \"nearest\" | \"linear\";\n wrapU?: \"clamp\" | \"repeat\" | \"mirror\";\n wrapV?: \"clamp\" | \"repeat\" | \"mirror\";\n}",
750
- "line": 426,
766
+ "line": 429,
751
767
  "fields": [
752
768
  "name",
753
769
  "filter",
@@ -759,7 +775,7 @@
759
775
  "name": "ComputeDispatchInput",
760
776
  "kind": "InterfaceDeclaration",
761
777
  "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}",
762
- "line": 432,
778
+ "line": 435,
763
779
  "fields": [
764
780
  "output",
765
781
  "bindings",
@@ -773,7 +789,7 @@
773
789
  "name": "ComputeTaskState",
774
790
  "kind": "InterfaceDeclaration",
775
791
  "signature": "export interface ComputeTaskState {\n status: \"queued\" | \"running\" | \"succeeded\" | \"failed\" | \"cancelled\";\n error?: { code: string; message: string; remediation: string };\n}",
776
- "line": 444,
792
+ "line": 447,
777
793
  "fields": [
778
794
  "status",
779
795
  "error"
@@ -783,7 +799,7 @@
783
799
  "name": "ComputeService",
784
800
  "kind": "InterfaceDeclaration",
785
801
  "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}",
786
- "line": 448,
802
+ "line": 451,
787
803
  "fields": [
788
804
  "createTexture",
789
805
  "resolveTexture",
@@ -808,7 +824,7 @@
808
824
  "name": "InputService",
809
825
  "kind": "InterfaceDeclaration",
810
826
  "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}",
811
- "line": 468,
827
+ "line": 471,
812
828
  "fields": [
813
829
  "held",
814
830
  "pressed",
@@ -820,7 +836,7 @@
820
836
  "name": "PhysicsService",
821
837
  "kind": "InterfaceDeclaration",
822
838
  "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}",
823
- "line": 474,
839
+ "line": 477,
824
840
  "fields": [
825
841
  "moveCharacter",
826
842
  "grounded",
@@ -839,7 +855,7 @@
839
855
  "name": "AnimationService",
840
856
  "kind": "InterfaceDeclaration",
841
857
  "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}",
842
- "line": 496,
858
+ "line": 499,
843
859
  "fields": [
844
860
  "play",
845
861
  "state"
@@ -849,7 +865,7 @@
849
865
  "name": "CameraService",
850
866
  "kind": "InterfaceDeclaration",
851
867
  "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}",
852
- "line": 508,
868
+ "line": 511,
853
869
  "fields": [
854
870
  "follow",
855
871
  "orbit"
@@ -859,7 +875,7 @@
859
875
  "name": "UIService",
860
876
  "kind": "InterfaceDeclaration",
861
877
  "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}",
862
- "line": 521,
878
+ "line": 524,
863
879
  "fields": [
864
880
  "setText",
865
881
  "setProgress",
@@ -870,7 +886,7 @@
870
886
  "name": "AudioService",
871
887
  "kind": "InterfaceDeclaration",
872
888
  "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}",
873
- "line": 526,
889
+ "line": 529,
874
890
  "fields": [
875
891
  "play",
876
892
  "stop",
@@ -885,7 +901,7 @@
885
901
  "name": "StorageService",
886
902
  "kind": "InterfaceDeclaration",
887
903
  "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}",
888
- "line": 541,
904
+ "line": 544,
889
905
  "fields": [
890
906
  "save",
891
907
  "load",
@@ -896,7 +912,7 @@
896
912
  "name": "SceneService",
897
913
  "kind": "InterfaceDeclaration",
898
914
  "signature": "export interface SceneService {\n current(): string;\n load(id: string): void;\n}",
899
- "line": 550,
915
+ "line": 553,
900
916
  "fields": [
901
917
  "current",
902
918
  "load"
@@ -906,7 +922,7 @@
906
922
  "name": "ModelDefinition",
907
923
  "kind": "InterfaceDeclaration",
908
924
  "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}",
909
- "line": 554,
925
+ "line": 557,
910
926
  "fields": [
911
927
  "material",
912
928
  "materialSlots",
@@ -923,7 +939,7 @@
923
939
  "name": "RigidBodyDefinition",
924
940
  "kind": "InterfaceDeclaration",
925
941
  "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}",
926
- "line": 567,
942
+ "line": 570,
927
943
  "fields": [
928
944
  "type",
929
945
  "collider",
@@ -937,7 +953,7 @@
937
953
  "name": "CharacterDefinition",
938
954
  "kind": "InterfaceDeclaration",
939
955
  "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}",
940
- "line": 581,
956
+ "line": 584,
941
957
  "fields": [
942
958
  "radius",
943
959
  "height",
@@ -950,7 +966,7 @@
950
966
  "name": "UIElementDefinition",
951
967
  "kind": "InterfaceDeclaration",
952
968
  "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}",
953
- "line": 589,
969
+ "line": 592,
954
970
  "fields": [
955
971
  "id",
956
972
  "kind",
@@ -969,7 +985,7 @@
969
985
  "name": "SoundDefinition",
970
986
  "kind": "InterfaceDeclaration",
971
987
  "signature": "export interface SoundDefinition {\n id: string;\n asset: AssetDefinition | string;\n volume?: number;\n loop?: boolean;\n bus?: string;\n}",
972
- "line": 602,
988
+ "line": 605,
973
989
  "fields": [
974
990
  "id",
975
991
  "asset",
@@ -982,7 +998,7 @@
982
998
  "name": "AudioBusDefinition",
983
999
  "kind": "InterfaceDeclaration",
984
1000
  "signature": "export interface AudioBusDefinition {\n id: string;\n volume?: number;\n}",
985
- "line": 609,
1001
+ "line": 612,
986
1002
  "fields": [
987
1003
  "id",
988
1004
  "volume"
@@ -992,43 +1008,43 @@
992
1008
  "name": "SYSTEM_PHASES",
993
1009
  "kind": "constant",
994
1010
  "signature": "SYSTEM_PHASES = [\n \"input\",\n \"prePhysics\",\n \"physics\",\n \"postPhysics\",\n \"update\",\n \"presentation\",\n] as const",
995
- "line": 613
1011
+ "line": 616
996
1012
  },
997
1013
  {
998
1014
  "name": "SystemPhase",
999
1015
  "kind": "TypeAliasDeclaration",
1000
1016
  "signature": "export type SystemPhase = (typeof SYSTEM_PHASES)[number];",
1001
- "line": 621
1017
+ "line": 624
1002
1018
  },
1003
1019
  {
1004
1020
  "name": "Geometry",
1005
1021
  "kind": "TypeAliasDeclaration",
1006
1022
  "signature": "export type Geometry =\n | { kind: \"box\"; size?: Vec3 }\n | { kind: \"sphere\"; radius?: number; segments?: number }\n | { kind: \"plane\"; size?: readonly [number, number] };",
1007
- "line": 622
1023
+ "line": 625
1008
1024
  },
1009
1025
  {
1010
1026
  "name": "GRAPH_TYPES",
1011
1027
  "kind": "constant",
1012
1028
  "signature": "GRAPH_TYPES = [\"float\", \"vec2\", \"vec3\", \"vec4\", \"bool\"] as const",
1013
- "line": 626
1029
+ "line": 629
1014
1030
  },
1015
1031
  {
1016
1032
  "name": "GraphType",
1017
1033
  "kind": "TypeAliasDeclaration",
1018
1034
  "signature": "export type GraphType = typeof GRAPH_TYPES[number];",
1019
- "line": 627
1035
+ "line": 630
1020
1036
  },
1021
1037
  {
1022
1038
  "name": "GraphValue",
1023
1039
  "kind": "TypeAliasDeclaration",
1024
1040
  "signature": "export type GraphValue = number | boolean | Vec2 | Vec3 | Vec4;",
1025
- "line": 628
1041
+ "line": 631
1026
1042
  },
1027
1043
  {
1028
1044
  "name": "GraphParameter",
1029
1045
  "kind": "InterfaceDeclaration",
1030
1046
  "signature": "export interface GraphParameter {\n name: string;\n type: GraphType;\n default: GraphValue;\n}",
1031
- "line": 629,
1047
+ "line": 632,
1032
1048
  "fields": [
1033
1049
  "name",
1034
1050
  "type",
@@ -1039,31 +1055,31 @@
1039
1055
  "name": "GRAPH_INPUT_TYPES",
1040
1056
  "kind": "constant",
1041
1057
  "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",
1042
- "line": 634
1058
+ "line": 637
1043
1059
  },
1044
1060
  {
1045
1061
  "name": "GraphInputName",
1046
1062
  "kind": "TypeAliasDeclaration",
1047
1063
  "signature": "export type GraphInputName = keyof typeof GRAPH_INPUT_TYPES;",
1048
- "line": 641
1064
+ "line": 644
1049
1065
  },
1050
1066
  {
1051
1067
  "name": "GRAPH_OPERATIONS",
1052
1068
  "kind": "constant",
1053
1069
  "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",
1054
- "line": 642
1070
+ "line": 645
1055
1071
  },
1056
1072
  {
1057
1073
  "name": "GraphNode",
1058
1074
  "kind": "TypeAliasDeclaration",
1059
1075
  "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 };",
1060
- "line": 647
1076
+ "line": 650
1061
1077
  },
1062
1078
  {
1063
1079
  "name": "Graph",
1064
1080
  "kind": "InterfaceDeclaration",
1065
1081
  "signature": "export interface Graph {\n nodes: readonly GraphNode[];\n output: string;\n parameters?: readonly GraphParameter[];\n}",
1066
- "line": 667,
1082
+ "line": 670,
1067
1083
  "fields": [
1068
1084
  "nodes",
1069
1085
  "output",
@@ -1074,7 +1090,7 @@
1074
1090
  "name": "MaterialGraphs",
1075
1091
  "kind": "InterfaceDeclaration",
1076
1092
  "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}",
1077
- "line": 672,
1093
+ "line": 675,
1078
1094
  "fields": [
1079
1095
  "baseColor",
1080
1096
  "emissive",
@@ -1088,7 +1104,7 @@
1088
1104
  "name": "VertexGraphs",
1089
1105
  "kind": "InterfaceDeclaration",
1090
1106
  "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}",
1091
- "line": 681,
1107
+ "line": 684,
1092
1108
  "fields": [
1093
1109
  "position",
1094
1110
  "normal"
@@ -1098,7 +1114,7 @@
1098
1114
  "name": "MaterialInput",
1099
1115
  "kind": "InterfaceDeclaration",
1100
1116
  "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}",
1101
- "line": 687,
1117
+ "line": 690,
1102
1118
  "fields": [
1103
1119
  "id",
1104
1120
  "color",
@@ -1127,7 +1143,7 @@
1127
1143
  "name": "MaterialDefinition",
1128
1144
  "kind": "InterfaceDeclaration",
1129
1145
  "signature": "export interface MaterialDefinition extends MaterialInput {\n readonly kind: \"material\";\n}",
1130
- "line": 714,
1146
+ "line": 717,
1131
1147
  "fields": [
1132
1148
  "kind"
1133
1149
  ]
@@ -1136,7 +1152,7 @@
1136
1152
  "name": "PostProcessInput",
1137
1153
  "kind": "InterfaceDeclaration",
1138
1154
  "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}",
1139
- "line": 717,
1155
+ "line": 720,
1140
1156
  "fields": [
1141
1157
  "id",
1142
1158
  "buffers",
@@ -1149,7 +1165,7 @@
1149
1165
  "name": "PostProcessDefinition",
1150
1166
  "kind": "InterfaceDeclaration",
1151
1167
  "signature": "export interface PostProcessDefinition extends PostProcessInput {\n readonly kind: \"postprocess\";\n}",
1152
- "line": 725,
1168
+ "line": 728,
1153
1169
  "fields": [
1154
1170
  "kind"
1155
1171
  ]
@@ -1158,7 +1174,7 @@
1158
1174
  "name": "ComputeInput",
1159
1175
  "kind": "InterfaceDeclaration",
1160
1176
  "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}",
1161
- "line": 728,
1177
+ "line": 731,
1162
1178
  "fields": [
1163
1179
  "id",
1164
1180
  "graph",
@@ -1173,7 +1189,7 @@
1173
1189
  "name": "ComputeDefinition",
1174
1190
  "kind": "InterfaceDeclaration",
1175
1191
  "signature": "export interface ComputeDefinition extends ComputeInput {\n readonly kind: \"compute\";\n}",
1176
- "line": 737,
1192
+ "line": 740,
1177
1193
  "fields": [
1178
1194
  "kind"
1179
1195
  ]
@@ -1182,7 +1198,7 @@
1182
1198
  "name": "AssetInput",
1183
1199
  "kind": "InterfaceDeclaration",
1184
1200
  "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}",
1185
- "line": 740,
1201
+ "line": 743,
1186
1202
  "fields": [
1187
1203
  "id",
1188
1204
  "path",
@@ -1197,7 +1213,7 @@
1197
1213
  "name": "AssetDefinition",
1198
1214
  "kind": "InterfaceDeclaration",
1199
1215
  "signature": "export interface AssetDefinition extends AssetInput {\n readonly kind: \"asset\";\n}",
1200
- "line": 750,
1216
+ "line": 753,
1201
1217
  "fields": [
1202
1218
  "kind"
1203
1219
  ]
@@ -1206,7 +1222,7 @@
1206
1222
  "name": "MeshDefinition",
1207
1223
  "kind": "InterfaceDeclaration",
1208
1224
  "signature": "export interface MeshDefinition {\n geometry: Geometry;\n material: MaterialDefinition | string;\n castShadow?: boolean;\n receiveShadow?: boolean;\n}",
1209
- "line": 753,
1225
+ "line": 756,
1210
1226
  "fields": [
1211
1227
  "geometry",
1212
1228
  "material",
@@ -1218,7 +1234,7 @@
1218
1234
  "name": "LightDefinition",
1219
1235
  "kind": "InterfaceDeclaration",
1220
1236
  "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}",
1221
- "line": 759,
1237
+ "line": 762,
1222
1238
  "fields": [
1223
1239
  "kind",
1224
1240
  "color",
@@ -1232,7 +1248,7 @@
1232
1248
  "name": "EntityInput",
1233
1249
  "kind": "InterfaceDeclaration",
1234
1250
  "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}",
1235
- "line": 774,
1251
+ "line": 777,
1236
1252
  "fields": [
1237
1253
  "id",
1238
1254
  "prefab",
@@ -1250,7 +1266,7 @@
1250
1266
  "name": "PrefabInput",
1251
1267
  "kind": "InterfaceDeclaration",
1252
1268
  "signature": "export interface PrefabInput extends Omit<EntityInput, \"prefab\" | \"parent\"> {\n extends?: PrefabDefinition | string;\n}",
1253
- "line": 786,
1269
+ "line": 789,
1254
1270
  "fields": [
1255
1271
  "extends"
1256
1272
  ]
@@ -1259,7 +1275,7 @@
1259
1275
  "name": "PrefabDefinition",
1260
1276
  "kind": "InterfaceDeclaration",
1261
1277
  "signature": "export interface PrefabDefinition extends PrefabInput {\n readonly kind: \"prefab\";\n}",
1262
- "line": 789,
1278
+ "line": 792,
1263
1279
  "fields": [
1264
1280
  "kind"
1265
1281
  ]
@@ -1268,7 +1284,7 @@
1268
1284
  "name": "SceneInput",
1269
1285
  "kind": "InterfaceDeclaration",
1270
1286
  "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}",
1271
- "line": 792,
1287
+ "line": 795,
1272
1288
  "fields": [
1273
1289
  "id",
1274
1290
  "camera",
@@ -1282,7 +1298,7 @@
1282
1298
  "name": "SceneDefinition",
1283
1299
  "kind": "InterfaceDeclaration",
1284
1300
  "signature": "export interface SceneDefinition extends SceneInput {\n readonly kind: \"scene\";\n}",
1285
- "line": 817,
1301
+ "line": 820,
1286
1302
  "fields": [
1287
1303
  "kind"
1288
1304
  ]
@@ -1291,7 +1307,7 @@
1291
1307
  "name": "SystemInput",
1292
1308
  "kind": "InterfaceDeclaration",
1293
1309
  "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}",
1294
- "line": 820,
1310
+ "line": 823,
1295
1311
  "fields": [
1296
1312
  "id",
1297
1313
  "phase",
@@ -1307,7 +1323,7 @@
1307
1323
  "name": "SystemDefinition",
1308
1324
  "kind": "InterfaceDeclaration",
1309
1325
  "signature": "export interface SystemDefinition extends SystemInput {\n readonly kind: \"system\";\n}",
1310
- "line": 830,
1326
+ "line": 833,
1311
1327
  "fields": [
1312
1328
  "kind"
1313
1329
  ]
@@ -1316,7 +1332,7 @@
1316
1332
  "name": "GameInput",
1317
1333
  "kind": "InterfaceDeclaration",
1318
1334
  "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}",
1319
- "line": 833,
1335
+ "line": 836,
1320
1336
  "fields": [
1321
1337
  "id",
1322
1338
  "scene",
@@ -1341,7 +1357,7 @@
1341
1357
  "name": "GameDefinition",
1342
1358
  "kind": "InterfaceDeclaration",
1343
1359
  "signature": "export interface GameDefinition extends GameInput {\n readonly kind: \"game\";\n}",
1344
- "line": 852,
1360
+ "line": 855,
1345
1361
  "fields": [
1346
1362
  "kind"
1347
1363
  ]
@@ -1350,7 +1366,7 @@
1350
1366
  "name": "GameInstance",
1351
1367
  "kind": "InterfaceDeclaration",
1352
1368
  "signature": "export interface GameInstance {\n update(dt: number): void;\n dispose(): void;\n}",
1353
- "line": 855,
1369
+ "line": 858,
1354
1370
  "fields": [
1355
1371
  "update",
1356
1372
  "dispose"
@@ -1360,61 +1376,61 @@
1360
1376
  "name": "defineComponent",
1361
1377
  "kind": "FunctionDeclaration",
1362
1378
  "signature": "export function defineComponent<const S extends ComponentSchema>(input: {\n id: string;\n schema: S;\n}): ComponentDefinition<S>;",
1363
- "line": 859
1379
+ "line": 862
1364
1380
  },
1365
1381
  {
1366
1382
  "name": "defineMaterial",
1367
1383
  "kind": "FunctionDeclaration",
1368
1384
  "signature": "export function defineMaterial(input: MaterialInput): MaterialDefinition;",
1369
- "line": 865
1385
+ "line": 868
1370
1386
  },
1371
1387
  {
1372
1388
  "name": "definePostProcess",
1373
1389
  "kind": "FunctionDeclaration",
1374
1390
  "signature": "export function definePostProcess(input: PostProcessInput): PostProcessDefinition;",
1375
- "line": 868
1391
+ "line": 871
1376
1392
  },
1377
1393
  {
1378
1394
  "name": "defineCompute",
1379
1395
  "kind": "FunctionDeclaration",
1380
1396
  "signature": "export function defineCompute(input: ComputeInput): ComputeDefinition;",
1381
- "line": 871
1397
+ "line": 874
1382
1398
  },
1383
1399
  {
1384
1400
  "name": "defineAsset",
1385
1401
  "kind": "FunctionDeclaration",
1386
1402
  "signature": "export function defineAsset(input: AssetInput): AssetDefinition;",
1387
- "line": 874
1403
+ "line": 877
1388
1404
  },
1389
1405
  {
1390
1406
  "name": "definePrefab",
1391
1407
  "kind": "FunctionDeclaration",
1392
1408
  "signature": "export function definePrefab(input: PrefabInput): PrefabDefinition;",
1393
- "line": 877
1409
+ "line": 880
1394
1410
  },
1395
1411
  {
1396
1412
  "name": "defineScene",
1397
1413
  "kind": "FunctionDeclaration",
1398
1414
  "signature": "export function defineScene(input: SceneInput): SceneDefinition;",
1399
- "line": 880
1415
+ "line": 883
1400
1416
  },
1401
1417
  {
1402
1418
  "name": "defineSystem",
1403
1419
  "kind": "FunctionDeclaration",
1404
1420
  "signature": "export function defineSystem(input: SystemInput): SystemDefinition;",
1405
- "line": 883
1421
+ "line": 886
1406
1422
  },
1407
1423
  {
1408
1424
  "name": "defineGame",
1409
1425
  "kind": "FunctionDeclaration",
1410
1426
  "signature": "export function defineGame(input: GameInput): GameDefinition;",
1411
- "line": 886
1427
+ "line": 889
1412
1428
  },
1413
1429
  {
1414
1430
  "name": "instantiateGame",
1415
1431
  "kind": "FunctionDeclaration",
1416
1432
  "signature": "export function instantiateGame(\n game: GameDefinition,\n engine: EngineFacade,\n): GameInstance;",
1417
- "line": 890
1433
+ "line": 893
1418
1434
  }
1419
1435
  ],
1420
1436
  "installedDeclarations": "lib/sdk/index.d.ts",