@needle-tools/engine 2.35.4-pre → 2.36.0-pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/needle-engine.d.ts +213 -144
  3. package/dist/needle-engine.js +414 -358
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +99 -43
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/lib/engine/api.d.ts +3 -0
  8. package/lib/engine/api.js +3 -0
  9. package/lib/engine/api.js.map +1 -1
  10. package/lib/engine/debug/debug.d.ts +3 -0
  11. package/lib/engine/debug/debug.js +8 -0
  12. package/lib/engine/debug/debug.js.map +1 -0
  13. package/lib/engine/debug/debug_overlay.d.ts +7 -0
  14. package/lib/engine/debug/debug_overlay.js +213 -0
  15. package/lib/engine/debug/debug_overlay.js.map +1 -0
  16. package/lib/engine/engine.js +1 -1
  17. package/lib/engine/engine.js.map +1 -1
  18. package/lib/engine/engine_element_loading.js +1 -1
  19. package/lib/engine/engine_element_loading.js.map +1 -1
  20. package/lib/engine/engine_gameobject.d.ts +1 -0
  21. package/lib/engine/engine_gameobject.js +13 -1
  22. package/lib/engine/engine_gameobject.js.map +1 -1
  23. package/lib/engine/engine_gltf_builtin_components.js +4 -0
  24. package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
  25. package/lib/engine/engine_mainloop_utils.d.ts +1 -1
  26. package/lib/engine/engine_mainloop_utils.js +7 -3
  27. package/lib/engine/engine_mainloop_utils.js.map +1 -1
  28. package/lib/engine/engine_physics.d.ts +29 -28
  29. package/lib/engine/engine_physics.js +85 -86
  30. package/lib/engine/engine_physics.js.map +1 -1
  31. package/lib/engine/engine_serialization_core.js +43 -0
  32. package/lib/engine/engine_serialization_core.js.map +1 -1
  33. package/lib/engine/engine_setup.js +1 -1
  34. package/lib/engine/engine_setup.js.map +1 -1
  35. package/lib/engine/engine_time.d.ts +1 -0
  36. package/lib/engine/engine_time.js +1 -0
  37. package/lib/engine/engine_time.js.map +1 -1
  38. package/lib/engine/engine_types.d.ts +6 -1
  39. package/lib/engine/engine_types.js.map +1 -1
  40. package/lib/engine/engine_typestore.d.ts +1 -0
  41. package/lib/engine/engine_typestore.js +1 -0
  42. package/lib/engine/engine_typestore.js.map +1 -1
  43. package/lib/engine/engine_utils.js +1 -1
  44. package/lib/engine/engine_utils.js.map +1 -1
  45. package/lib/engine/extensions/NEEDLE_animator_controller_model.js.map +1 -1
  46. package/lib/engine/extensions/NEEDLE_render_objects.d.ts +2 -2
  47. package/lib/engine/extensions/NEEDLE_render_objects.js +2 -2
  48. package/lib/engine/extensions/NEEDLE_render_objects.js.map +1 -1
  49. package/lib/engine/extensions/NEEDLE_techniques_webgl.js +5 -0
  50. package/lib/engine/extensions/NEEDLE_techniques_webgl.js.map +1 -1
  51. package/lib/engine-components/Animation.d.ts +5 -1
  52. package/lib/engine-components/Animation.js +21 -0
  53. package/lib/engine-components/Animation.js.map +1 -1
  54. package/lib/engine-components/AnimatorController.d.ts +1 -0
  55. package/lib/engine-components/AnimatorController.js +14 -7
  56. package/lib/engine-components/AnimatorController.js.map +1 -1
  57. package/lib/engine-components/AudioSource.d.ts +1 -1
  58. package/lib/engine-components/AudioSource.js +2 -2
  59. package/lib/engine-components/AudioSource.js.map +1 -1
  60. package/lib/engine-components/BoxHelperComponent.d.ts +2 -2
  61. package/lib/engine-components/BoxHelperComponent.js +27 -9
  62. package/lib/engine-components/BoxHelperComponent.js.map +1 -1
  63. package/lib/engine-components/Component.d.ts +2 -1
  64. package/lib/engine-components/Component.js +11 -5
  65. package/lib/engine-components/Component.js.map +1 -1
  66. package/lib/engine-components/GroundProjection.d.ts +2 -0
  67. package/lib/engine-components/GroundProjection.js +18 -6
  68. package/lib/engine-components/GroundProjection.js.map +1 -1
  69. package/lib/engine-components/ReflectionProbe.d.ts +22 -0
  70. package/lib/engine-components/ReflectionProbe.js +134 -0
  71. package/lib/engine-components/ReflectionProbe.js.map +1 -0
  72. package/lib/engine-components/Renderer.d.ts +16 -4
  73. package/lib/engine-components/Renderer.js +96 -45
  74. package/lib/engine-components/Renderer.js.map +1 -1
  75. package/lib/engine-components/WebARSessionRoot.d.ts +7 -7
  76. package/lib/engine-components/WebARSessionRoot.js +7 -7
  77. package/lib/engine-components/WebARSessionRoot.js.map +1 -1
  78. package/lib/engine-components/WebXR.d.ts +9 -8
  79. package/lib/engine-components/WebXR.js +40 -24
  80. package/lib/engine-components/WebXR.js.map +1 -1
  81. package/lib/engine-components/WebXRAvatar.d.ts +4 -5
  82. package/lib/engine-components/WebXRAvatar.js +9 -8
  83. package/lib/engine-components/WebXRAvatar.js.map +1 -1
  84. package/lib/engine-components/WebXRController.d.ts +21 -21
  85. package/lib/engine-components/WebXRController.js +83 -63
  86. package/lib/engine-components/WebXRController.js.map +1 -1
  87. package/lib/engine-components/WebXRGrabRendering.d.ts +3 -3
  88. package/lib/engine-components/WebXRGrabRendering.js +2 -2
  89. package/lib/engine-components/WebXRGrabRendering.js.map +1 -1
  90. package/lib/engine-components/WebXRSync.d.ts +8 -8
  91. package/lib/engine-components/WebXRSync.js +15 -15
  92. package/lib/engine-components/WebXRSync.js.map +1 -1
  93. package/lib/engine-components/codegen/components.d.ts +1 -0
  94. package/lib/engine-components/codegen/components.js +1 -0
  95. package/lib/engine-components/codegen/components.js.map +1 -1
  96. package/lib/engine-components/js-extensions/ExtensionUtils.js +1 -1
  97. package/lib/engine-components/js-extensions/ExtensionUtils.js.map +1 -1
  98. package/lib/engine-components/ui/EventSystem.d.ts +1 -0
  99. package/lib/engine-components/ui/EventSystem.js +21 -1
  100. package/lib/engine-components/ui/EventSystem.js.map +1 -1
  101. package/package.json +1 -1
  102. package/src/engine/api.ts +3 -0
  103. package/src/engine/codegen/register_types.js +293 -0
  104. package/src/engine/debug/debug.ts +9 -0
  105. package/src/engine/debug/debug_overlay.ts +224 -0
  106. package/src/engine/engine.ts +1 -1
  107. package/src/engine/engine_element_loading.ts +1 -1
  108. package/src/engine/engine_gameobject.ts +17 -4
  109. package/src/engine/engine_gltf_builtin_components.ts +5 -1
  110. package/src/engine/engine_mainloop_utils.ts +7 -3
  111. package/src/engine/engine_physics.ts +130 -130
  112. package/src/engine/engine_serialization_core.ts +41 -0
  113. package/src/engine/engine_setup.ts +1 -1
  114. package/src/engine/engine_time.ts +2 -0
  115. package/src/engine/engine_types.ts +7 -1
  116. package/src/engine/engine_typestore.ts +2 -0
  117. package/src/engine/engine_utils.ts +3 -2
  118. package/src/engine/extensions/EXT_texture_exr.js +1 -1
  119. package/src/engine/extensions/NEEDLE_animator_controller_model.ts +2 -1
  120. package/src/engine/extensions/NEEDLE_render_objects.ts +4 -4
  121. package/src/engine/extensions/NEEDLE_techniques_webgl.ts +7 -0
  122. package/src/engine-components/Animation.ts +16 -1
  123. package/src/engine-components/AnimatorController.ts +19 -9
  124. package/src/engine-components/AudioSource.ts +3 -3
  125. package/src/engine-components/BoxHelperComponent.ts +29 -9
  126. package/src/engine-components/Component.ts +11 -5
  127. package/src/engine-components/GroundProjection.ts +22 -7
  128. package/src/engine-components/ReflectionProbe.ts +141 -0
  129. package/src/engine-components/Renderer.ts +116 -54
  130. package/src/engine-components/WebARSessionRoot.ts +16 -16
  131. package/src/engine-components/WebXR.ts +53 -48
  132. package/src/engine-components/WebXRAvatar.ts +16 -16
  133. package/src/engine-components/WebXRController.ts +133 -107
  134. package/src/engine-components/WebXRGrabRendering.ts +6 -6
  135. package/src/engine-components/WebXRSync.ts +20 -20
  136. package/src/engine-components/codegen/components.ts +1 -0
  137. package/src/engine-components/js-extensions/ExtensionUtils.ts +1 -1
  138. package/src/engine-components/ui/EventSystem.ts +26 -3
  139. package/lib/engine/debug/error_overlay.d.ts +0 -1
  140. package/lib/engine/debug/error_overlay.js +0 -114
  141. package/lib/engine/debug/error_overlay.js.map +0 -1
  142. package/src/engine/debug/error_overlay.ts +0 -126
@@ -100,8 +100,13 @@ declare module "engine/engine_types" {
100
100
  intensity: number;
101
101
  color: Color;
102
102
  }
103
+ export interface ISharedMaterials {
104
+ [num: number]: Material;
105
+ get length(): number;
106
+ }
103
107
  export interface IRenderer extends IComponent {
104
- material: Material;
108
+ sharedMaterial: Material;
109
+ get sharedMaterials(): ISharedMaterials;
105
110
  }
106
111
  export interface ICollider extends IComponent {
107
112
  get isCollider(): any;
@@ -195,6 +200,7 @@ declare module "engine/engine_typestore" {
195
200
  add(key: any, type: any): void;
196
201
  get(key: any): any;
197
202
  }
203
+ export const $BuiltInTypeFlag: unique symbol;
198
204
  export const TypeStore: _TypeStore;
199
205
  }
200
206
  declare module "engine/extensions/NEEDLE_persistent_assets" {
@@ -210,6 +216,45 @@ declare module "engine/extensions/NEEDLE_persistent_assets" {
210
216
  resolve(parser: GLTFParser, path: string): Promise<void> | null | any;
211
217
  }
212
218
  }
219
+ declare module "engine/engine_networking_utils" {
220
+ export function isLocalNetwork(hostname?: string): boolean;
221
+ export function isHostedOnGlitch(): boolean;
222
+ }
223
+ declare module "engine/engine_element_overlay" {
224
+ import { Context } from "engine/engine_setup";
225
+ export const arContainerClassName = "ar";
226
+ export const quitARClassName = "quit-ar";
227
+ export class AROverlayHandler {
228
+ get ARContainer(): HTMLElement | null;
229
+ constructor();
230
+ private arContainer;
231
+ closeARCallback: any;
232
+ currentSession: THREE.XRSession | null;
233
+ registeredCloseEventElements: Element[];
234
+ private _createdAROnlyElements;
235
+ private _reparentedObjects;
236
+ requestEndAR(): void;
237
+ onBegin(context: Context, overlayContainer: HTMLElement, session: THREE.XRSession): void;
238
+ onEnd(_context: Context): void;
239
+ findOrCreateARContainer(element: HTMLElement): HTMLElement;
240
+ private onRequestedEndAR;
241
+ private createFallbackCloseARButton;
242
+ }
243
+ }
244
+ declare module "engine/debug/debug_overlay" {
245
+ export enum LogType {
246
+ Log = 0,
247
+ Warn = 1,
248
+ Error = 2
249
+ }
250
+ export function makeErrorsVisibleForDevelopment(): void;
251
+ export function addLog(type: LogType, message: string | any[], _file?: string | null, _line?: number | null): void;
252
+ }
253
+ declare module "engine/debug/debug" {
254
+ import { LogType } from "engine/debug/debug_overlay";
255
+ export { LogType };
256
+ export function showBalloonMessage(text: string, logType?: LogType): void;
257
+ }
213
258
  declare module "engine/engine_serialization_core" {
214
259
  import { GLTF } from "three/examples/jsm/loaders/GLTFLoader";
215
260
  import { Object3D } from "three";
@@ -515,7 +560,7 @@ declare module "engine/engine_mainloop_utils" {
515
560
  export function processStart(context: Context, object?: Object3D): void;
516
561
  export function addScriptToArrays(script: any, context: Context): void;
517
562
  export function removeScriptFromContext(script: any, context: Context): void;
518
- export function updateIsActive(): void;
563
+ export function updateIsActive(obj?: Object3D): void;
519
564
  export function updateActiveInHierarchyWithoutEventCall(go: THREE.Object3D): void;
520
565
  }
521
566
  declare module "engine/engine_networking_types" {
@@ -630,6 +675,7 @@ declare module "engine/engine_gameobject" {
630
675
  context?: Context | undefined;
631
676
  }
632
677
  export function isActiveSelf(go: Object3D): boolean;
678
+ export function setActive(go: Object3D, active: boolean, setVisible?: boolean): void;
633
679
  export function isActiveInHierarchy(go: Object3D): boolean;
634
680
  export function markAsInstancedRendered(go: THREE.Object3D, instanced: boolean): void;
635
681
  export function isUsingInstancing(instance: THREE.Object3D): boolean;
@@ -639,10 +685,11 @@ declare module "engine/engine_gameobject" {
639
685
  export function instantiate(instance: GameObject | Object3D | null, opts?: InstantiateOptions | null): GameObject | null;
640
686
  }
641
687
  declare module "engine/engine_physics" {
642
- import * as CANNON from 'cannon-es';
643
- import * as THREE from 'three';
688
+ import { Body, Constraint } from 'cannon-es';
689
+ import { Camera, Intersection, Layers, Object3D, Ray, Raycaster, Vector2, Vector3 } from 'three';
644
690
  import { Context } from "engine/engine_setup";
645
691
  import { IGameObject as GameObject, ICollider, IRigidbody as Rigidbody } from "engine/engine_types";
692
+ import { Shape } from 'cannon-es';
646
693
  export class BodyOptions {
647
694
  mass: number;
648
695
  kinematic: boolean;
@@ -652,27 +699,27 @@ declare module "engine/engine_physics" {
652
699
  sleepThreshold: number;
653
700
  }
654
701
  export class RaycastOptions {
655
- ray: THREE.Ray | undefined;
656
- cam: THREE.Camera | undefined | null;
657
- screenPoint: THREE.Vector2 | undefined;
658
- raycaster: THREE.Raycaster | undefined;
659
- results: Array<THREE.Intersection> | undefined;
660
- targets: Array<THREE.Object3D> | undefined;
702
+ ray: Ray | undefined;
703
+ cam: Camera | undefined | null;
704
+ screenPoint: Vector2 | undefined;
705
+ raycaster: Raycaster | undefined;
706
+ results: Array<Intersection> | undefined;
707
+ targets: Array<Object3D> | undefined;
661
708
  recursive: boolean | undefined;
662
709
  minDistance: number | undefined;
663
710
  maxDistance: number | undefined;
664
711
  lineThreshold: number | undefined;
665
- layerMask: THREE.Layers | number | undefined;
666
- ignore: THREE.Object3D[] | undefined;
712
+ layerMask: Layers | number | undefined;
713
+ ignore: Object3D[] | undefined;
667
714
  screenPointFromOffset(ox: number, oy: number): void;
668
715
  setMask(mask: number): void;
669
716
  static AllLayers: number;
670
717
  }
671
- export class SphereIntersection implements THREE.Intersection {
718
+ export class SphereIntersection implements Intersection {
672
719
  distance: number;
673
- point: THREE.Vector3;
674
- object: THREE.Object3D;
675
- constructor(object: THREE.Object3D, distance: number, point: THREE.Vector3);
720
+ point: Vector3;
721
+ object: Object3D;
722
+ constructor(object: Object3D, distance: number, point: Vector3);
676
723
  }
677
724
  export class Physics {
678
725
  private readonly raycaster;
@@ -681,11 +728,11 @@ declare module "engine/engine_physics" {
681
728
  private readonly defaultThresholds;
682
729
  private sphereResults;
683
730
  private sphereMask;
684
- sphereOverlap(spherePos: THREE.Vector3, radius: number): Array<THREE.Intersection>;
731
+ sphereOverlap(spherePos: Vector3, radius: number, traverseChildsAfterHit?: boolean): Array<Intersection>;
685
732
  private tempBoundingBox;
686
733
  private onSphereOverlap;
687
- raycastFromRay(ray: THREE.Ray, options?: RaycastOptions | null): Array<THREE.Intersection>;
688
- raycast(options?: RaycastOptions | null): Array<THREE.Intersection>;
734
+ raycastFromRay(ray: Ray, options?: RaycastOptions | null): Array<Intersection>;
735
+ raycast(options?: RaycastOptions | null): Array<Intersection>;
689
736
  get isUpdating(): boolean;
690
737
  private _isUpdatingPhysicsWorld;
691
738
  private context;
@@ -696,16 +743,16 @@ declare module "engine/engine_physics" {
696
743
  constructor(context: Context);
697
744
  addPreStepListener(listener: (evt: any) => void): void;
698
745
  addPostStepListener(listener: (evt: any) => void): void;
699
- addConstraint(constraint: CANNON.Constraint): void;
700
- setGravity(vec: THREE.Vector3): void;
701
- multiplyGravity(vec: THREE.Vector3): void;
702
- addBody(go: GameObject, body: CANNON.Body): void;
703
- removeBody(go: GameObject, body: CANNON.Body, removeCompletely?: boolean): void;
704
- removeShape(obj: THREE.Object3D, shape: CANNON.Shape): void;
705
- createBody(obj: THREE.Object3D, settings: BodyOptions): CANNON.Body;
706
- addBoxCollider(obj: THREE.Object3D, trigger: boolean, center: THREE.Vector3, size: THREE.Vector3, rb: Rigidbody | null): CANNON.Shape;
707
- addSphereCollider(obj: THREE.Object3D, center: THREE.Vector3, radius: number, rb: Rigidbody | null): CANNON.Shape;
708
- addMeshCollider(_obj: THREE.Object3D): void;
746
+ addConstraint(constraint: Constraint): void;
747
+ setGravity(vec: Vector3): void;
748
+ multiplyGravity(vec: Vector3): void;
749
+ addBody(go: GameObject, body: Body): void;
750
+ removeBody(go: GameObject, body: Body, removeCompletely?: boolean): void;
751
+ removeShape(obj: Object3D, shape: Shape): void;
752
+ createBody(obj: Object3D, settings: BodyOptions): Body;
753
+ addBoxCollider(obj: Object3D, trigger: boolean, center: Vector3, size: Vector3, rb: Rigidbody | null): Shape;
754
+ addSphereCollider(obj: Object3D, center: Vector3, radius: number, rb: Rigidbody | null): Shape;
755
+ addMeshCollider(_obj: Object3D): void;
709
756
  private isAlreadyRegistered;
710
757
  private readonly tempMat1;
711
758
  private readonly tempMat2;
@@ -723,7 +770,7 @@ declare module "engine/engine_physics" {
723
770
  private onEndContact;
724
771
  }
725
772
  export interface IColliderProvider {
726
- getCollider(obj: THREE.Object3D): ICollider;
773
+ getCollider(obj: Object3D): ICollider;
727
774
  }
728
775
  export function registerColliderProvider(prov: IColliderProvider): void;
729
776
  }
@@ -731,6 +778,7 @@ declare module "engine/engine_time" {
731
778
  export class Time {
732
779
  deltaTime: number;
733
780
  time: number;
781
+ /** same as frameCount */
734
782
  frame: number;
735
783
  get realtimeSinceStartup(): number;
736
784
  get frameCount(): number;
@@ -820,10 +868,6 @@ declare module "engine/engine_networking_peer" {
820
868
  private trySetupClient;
821
869
  }
822
870
  }
823
- declare module "engine/engine_networking_utils" {
824
- export function isLocalNetwork(hostname?: string): boolean;
825
- export function isHostedOnGlitch(): boolean;
826
- }
827
871
  declare module "engine/engine_networking" {
828
872
  import { Context } from "engine/engine_setup";
829
873
  import * as flatbuffers from 'flatbuffers';
@@ -1110,7 +1154,7 @@ declare module "engine-components/Component" {
1110
1154
  import { InstantiateOptions, HideFlags } from "engine/engine_gameobject";
1111
1155
  abstract class GameObject extends THREE.Object3D implements THREE.Object3D, IGameObject {
1112
1156
  guid: string | undefined;
1113
- static setActive(go: THREE.Object3D, active: boolean, processStart?: boolean): void;
1157
+ static setActive(go: THREE.Object3D, active: boolean, processStart?: boolean, setVisible?: boolean): void;
1114
1158
  static isActiveSelf(go: THREE.Object3D): boolean;
1115
1159
  static isActiveInHierarchy(go: THREE.Object3D): boolean;
1116
1160
  static markAsInstancedRendered(go: THREE.Object3D, instanced: boolean): void;
@@ -1204,6 +1248,7 @@ declare module "engine-components/Component" {
1204
1248
  protected __didEnable: boolean;
1205
1249
  protected __isEnabled: boolean | undefined;
1206
1250
  private __destroyed;
1251
+ get __internalDidAwakeAndStart(): boolean;
1207
1252
  __internalNewInstanceCreated(): void;
1208
1253
  __internalAwake(): void;
1209
1254
  __internalStart(): void;
@@ -1704,27 +1749,6 @@ declare module "engine/engine_setup" {
1704
1749
  private executeCoroutines;
1705
1750
  }
1706
1751
  }
1707
- declare module "engine/engine_element_overlay" {
1708
- import { Context } from "engine/engine_setup";
1709
- export const arContainerClassName = "ar";
1710
- export const quitARClassName = "quit-ar";
1711
- export class AROverlayHandler {
1712
- get ARContainer(): HTMLElement | null;
1713
- constructor();
1714
- private arContainer;
1715
- closeARCallback: any;
1716
- currentSession: THREE.XRSession | null;
1717
- registeredCloseEventElements: Element[];
1718
- private _createdAROnlyElements;
1719
- private _reparentedObjects;
1720
- requestEndAR(): void;
1721
- onBegin(context: Context, overlayContainer: HTMLElement, session: THREE.XRSession): void;
1722
- onEnd(_context: Context): void;
1723
- findOrCreateARContainer(element: HTMLElement): HTMLElement;
1724
- private onRequestedEndAR;
1725
- private createFallbackCloseARButton;
1726
- }
1727
- }
1728
1752
  declare module "engine/engine_element_loading" {
1729
1753
  import { LoadingProgressArgs } from "engine/engine_setup";
1730
1754
  export class LoadingElementOptions {
@@ -1909,6 +1933,7 @@ declare module "engine-components/AnimatorController" {
1909
1933
  private updateActiveStates;
1910
1934
  private setStartTransition;
1911
1935
  private evaluateTransitions;
1936
+ private getState;
1912
1937
  private transitionTo;
1913
1938
  private createAction;
1914
1939
  private evaluateCondition;
@@ -1981,7 +2006,7 @@ declare module "engine-components/Animator" {
1981
2006
  declare module "engine-components/Animation" {
1982
2007
  import { Behaviour } from "engine-components/Component";
1983
2008
  import * as THREE from 'three';
1984
- import { AnimationAction, AnimationClip } from "three";
2009
+ import { AnimationAction, AnimationClip, Vector2 } from "three";
1985
2010
  export class PlayOptions {
1986
2011
  fadeDuration?: number;
1987
2012
  loop?: boolean;
@@ -1989,10 +2014,14 @@ declare module "engine-components/Animation" {
1989
2014
  startTime?: number;
1990
2015
  endTime?: number;
1991
2016
  clampWhenFinished?: boolean;
2017
+ minMaxSpeed?: Vector2;
2018
+ minMaxOffsetNormalized?: Vector2;
1992
2019
  }
1993
2020
  export class Animation extends Behaviour {
1994
2021
  playAutomatically: boolean;
1995
2022
  randomStartTime: boolean;
2023
+ minMaxSpeed?: Vector2;
2024
+ minMaxOffsetNormalized?: Vector2;
1996
2025
  private _tempAnimationClipBeforeGameObjectExisted;
1997
2026
  get clip(): AnimationClip | null;
1998
2027
  set clip(val: AnimationClip | null);
@@ -2081,10 +2110,10 @@ declare module "engine/extensions/NEEDLE_gameobject_data" {
2081
2110
  declare module "engine/extensions/NEEDLE_render_objects" {
2082
2111
  import { SourceIdentifier } from "engine/engine_types";
2083
2112
  import { GLTF, GLTFLoaderPlugin, GLTFParser } from "three/examples/jsm/loaders/GLTFLoader";
2084
- import { IRenderer as Renderer } from "engine/engine_types";
2113
+ import { IRenderer } from "engine/engine_types";
2085
2114
  export class NEEDLE_render_objects implements GLTFLoaderPlugin {
2086
2115
  private static stencils;
2087
- static applyStencil(obj?: Renderer | null): void;
2116
+ static applyStencil(obj?: IRenderer | null): void;
2088
2117
  private parser;
2089
2118
  private source;
2090
2119
  constructor(parser: GLTFParser, source: SourceIdentifier);
@@ -2288,6 +2317,9 @@ declare module "engine/api" {
2288
2317
  export { InstancingUtil } from "engine/engine_instancing";
2289
2318
  export * from "engine/engine_gameobject";
2290
2319
  export * from "engine/engine_components";
2320
+ export { AssetReference } from "engine/engine_addressables";
2321
+ export { FrameEvent } from "engine/engine_setup";
2322
+ export * from "engine/debug/debug";
2291
2323
  }
2292
2324
  declare module "engine-components/AlignmentConstraint" {
2293
2325
  import { Behaviour } from "engine-components/Component";
@@ -2332,7 +2364,7 @@ declare module "engine-components/AudioSource" {
2332
2364
  static registerWaitForAllowAudio(cb: Function): void;
2333
2365
  private static _userInteractionRegistered;
2334
2366
  private static _beginWaitForUserInteraction;
2335
- private clip;
2367
+ clip: string;
2336
2368
  playOnAwake: boolean;
2337
2369
  get loop(): boolean;
2338
2370
  set loop(val: boolean);
@@ -2482,11 +2514,11 @@ declare module "engine-components/BoxHelperComponent" {
2482
2514
  import * as THREE from "three";
2483
2515
  export class BoxHelperComponent extends Behaviour {
2484
2516
  private box;
2485
- private testBox;
2517
+ private static testBox;
2486
2518
  private _lastMatrixUpdateFrame;
2487
2519
  private static _position;
2488
2520
  private static _size;
2489
- isInBox(obj: THREE.Object3D): boolean | undefined;
2521
+ isInBox(obj: THREE.Object3D, scaleFactor?: number): boolean | undefined;
2490
2522
  intersects(box: THREE.Box3): boolean;
2491
2523
  updateBox(force?: boolean): THREE.Box3;
2492
2524
  private _helper;
@@ -2707,6 +2739,36 @@ declare module "engine-components/Voip" {
2707
2739
  static HasMicrophonePermissions(): Promise<boolean>;
2708
2740
  }
2709
2741
  }
2742
+ declare module "engine-components/WebARSessionRoot" {
2743
+ import { Behaviour } from "engine-components/Component";
2744
+ import { XRSession } from 'three';
2745
+ import { Matrix4, Object3D, XRPose } from "three";
2746
+ import { WebAR } from "engine-components/WebXR";
2747
+ export class WebARSessionRoot extends Behaviour {
2748
+ webAR: WebAR | null;
2749
+ get rig(): Object3D | undefined;
2750
+ invertForward: boolean;
2751
+ get arScale(): number;
2752
+ set arScale(val: number);
2753
+ private readonly _initalMatrix;
2754
+ private readonly _selectStartFn;
2755
+ private readonly _selectEndFn;
2756
+ start(): void;
2757
+ private _arScale;
2758
+ private _rig;
2759
+ private _startPose;
2760
+ private _placementPose;
2761
+ private _isTouching;
2762
+ private _rigStartPose;
2763
+ onBegin(session: XRSession): void;
2764
+ onUpdate(rig: Object3D | null, _session: XRSession, pose: XRPose | null | undefined): boolean;
2765
+ placeAt(rig: Object3D | null, mat: Matrix4): void;
2766
+ onEnd(rig: Object3D | null, _session: XRSession): void;
2767
+ private onSelectStart;
2768
+ private onSelectEnd;
2769
+ private setScale;
2770
+ }
2771
+ }
2710
2772
  declare module "engine-components/XRFlag" {
2711
2773
  import { Behaviour } from "engine-components/Component";
2712
2774
  export enum XRStateFlag {
@@ -2798,23 +2860,23 @@ declare module "engine-components/WebXRSync" {
2798
2860
  import { Behaviour } from "engine-components/Component";
2799
2861
  import { NetworkConnection } from "engine/engine_networking";
2800
2862
  import { WebXR } from "engine-components/WebXR";
2801
- import * as THREE from "three";
2863
+ import { Group, Quaternion, Vector3, Vector4 } from "three";
2802
2864
  import { Builder } from "flatbuffers";
2803
2865
  import { VrUserStateBuffer } from "engine-schemes/vr-user-state-buffer";
2804
2866
  export class VRUserState {
2805
2867
  guid: string;
2806
2868
  time: number;
2807
2869
  avatarId: string;
2808
- position: THREE.Vector3;
2809
- rotation: THREE.Vector4;
2870
+ position: Vector3;
2871
+ rotation: Vector4;
2810
2872
  scale: number;
2811
- posLeftHand: THREE.Vector3;
2812
- posRightHand: THREE.Vector3;
2813
- rotLeftHand: THREE.Quaternion;
2814
- rotRightHand: THREE.Quaternion;
2873
+ posLeftHand: Vector3;
2874
+ posRightHand: Vector3;
2875
+ rotLeftHand: Quaternion;
2876
+ rotRightHand: Quaternion;
2815
2877
  constructor(guid: string);
2816
2878
  private static invertRotation;
2817
- update(rig: THREE.Group, pos: DOMPointReadOnly, rot: DOMPointReadOnly, webXR: WebXR, avatarId: string): void;
2879
+ update(rig: Group, pos: DOMPointReadOnly, rot: DOMPointReadOnly, webXR: WebXR, avatarId: string): void;
2818
2880
  private static quat0;
2819
2881
  private static quat1;
2820
2882
  sendAsBuffer(builder: Builder, net: NetworkConnection): void;
@@ -2853,7 +2915,6 @@ declare module "engine-components/WebXRSync" {
2853
2915
  declare module "engine-components/WebXRAvatar" {
2854
2916
  import { Behaviour } from "engine-components/Component";
2855
2917
  import { WebXR } from "engine-components/WebXR";
2856
- import * as THREE from "three";
2857
2918
  import { XRFlag } from "engine-components/XRFlag";
2858
2919
  import { Context } from "engine/engine_setup";
2859
2920
  import { Object3D } from "three";
@@ -2871,7 +2932,7 @@ declare module "engine-components/WebXRAvatar" {
2871
2932
  private static _onNewAvatarMarkerAdded;
2872
2933
  private static _onAvatarMarkerDestroyed;
2873
2934
  connectionId: string;
2874
- avatar?: WebXRAvatar | THREE.Object3D;
2935
+ avatar?: WebXRAvatar | Object3D;
2875
2936
  awake(): void;
2876
2937
  onDestroy(): void;
2877
2938
  isLocalAvatar(): boolean;
@@ -2885,9 +2946,9 @@ declare module "engine-components/WebXRAvatar" {
2885
2946
  /** the user id */
2886
2947
  guid: string;
2887
2948
  private root;
2888
- head: THREE.Object3D | null;
2889
- handLeft: THREE.Object3D | null;
2890
- handRight: THREE.Object3D | null;
2949
+ head: Object3D | null;
2950
+ handLeft: Object3D | null;
2951
+ handRight: Object3D | null;
2891
2952
  lastUpdate: number;
2892
2953
  isLocalAvatar: boolean;
2893
2954
  flags: XRFlag[] | null;
@@ -3063,6 +3124,7 @@ declare module "engine-components/ui/EventSystem" {
3063
3124
  private objectsHoveredThisFrame;
3064
3125
  private objectsHoveredLastFrame;
3065
3126
  private raisedPointerDownEvents;
3127
+ private raisedPointerDownObjects;
3066
3128
  private _didMove;
3067
3129
  onBeforeUpdate(): void;
3068
3130
  private _tempComponentsArray;
@@ -3108,12 +3170,42 @@ declare module "engine-components/RendererLightmap" {
3108
3170
  private setLightmapDebugMaterial;
3109
3171
  }
3110
3172
  }
3173
+ declare module "engine-components/ReflectionProbe" {
3174
+ import { Behaviour } from "engine-components/Component";
3175
+ import { Object3D, Texture, Vector3 } from "three";
3176
+ import { Context } from "engine/engine_setup";
3177
+ import { IRenderer } from "engine/engine_types";
3178
+ export const debug: string | boolean;
3179
+ export class ReflectionProbe extends Behaviour {
3180
+ private static _probes;
3181
+ static get(object: Object3D | null | undefined, context: Context, isAnchor: boolean): ReflectionProbe | null;
3182
+ private _texture;
3183
+ set texture(tex: Texture);
3184
+ get texture(): Texture;
3185
+ center?: Vector3;
3186
+ size?: Vector3;
3187
+ private _boxHelper?;
3188
+ private isInBox;
3189
+ constructor();
3190
+ awake(): void;
3191
+ onDestroy(): void;
3192
+ private static _rendererMaterialsCache;
3193
+ onSet(_rend: IRenderer): void;
3194
+ onUnset(_rend: IRenderer): void;
3195
+ }
3196
+ }
3111
3197
  declare module "engine-components/Renderer" {
3112
3198
  import { Behaviour } from "engine-components/Component";
3113
3199
  import * as THREE from "three";
3114
- import { Mesh, Texture } from "three";
3115
- import { IRenderer } from "engine/engine_types";
3200
+ import { Mesh, Object3D, Texture } from "three";
3201
+ import { IRenderer, ISharedMaterials } from "engine/engine_types";
3116
3202
  export { InstancingUtil } from "engine/engine_instancing";
3203
+ export enum ReflectionProbeUsage {
3204
+ Off = 0,
3205
+ BlendProbes = 1,
3206
+ BlendProbesAndSkybox = 2,
3207
+ Simple = 3
3208
+ }
3117
3209
  export class FieldWithDefault {
3118
3210
  path: string | null;
3119
3211
  asset: object | null;
@@ -3124,7 +3216,8 @@ declare module "engine-components/Renderer" {
3124
3216
  Back = 1,
3125
3217
  Front = 2
3126
3218
  }
3127
- class SharedMaterialArray {
3219
+ class SharedMaterialArray implements ISharedMaterials {
3220
+ [num: number]: THREE.Material;
3128
3221
  private _renderer;
3129
3222
  private _targets;
3130
3223
  is(renderer: Renderer): boolean;
@@ -3141,6 +3234,8 @@ declare module "engine-components/Renderer" {
3141
3234
  enableInstancing: boolean[] | undefined;
3142
3235
  renderOrder: number[] | undefined;
3143
3236
  allowOcclusionWhenDynamic: boolean;
3237
+ probeAnchor?: Object3D;
3238
+ reflectionProbeUsage: ReflectionProbeUsage;
3144
3239
  private _lightmaps?;
3145
3240
  get sharedMesh(): Mesh | undefined;
3146
3241
  get sharedMaterial(): THREE.Material;
@@ -3167,10 +3262,13 @@ declare module "engine-components/Renderer" {
3167
3262
  onDisable(): void;
3168
3263
  onDestroy(): void;
3169
3264
  applyStencil(): void;
3170
- onBeforeRenderThree(_renderer: any, _scene: any, _camera: any, _geometry: any, material: any, _group: any): void;
3265
+ static envmap: THREE.Texture | null;
3171
3266
  onBeforeRender(): void;
3267
+ onBeforeRenderThree(_renderer: any, _scene: any, _camera: any, _geometry: any, material: any, _group: any): void;
3172
3268
  onAfterRender(): void;
3173
3269
  private applySettings;
3270
+ private _reflectionProbe;
3271
+ private updateReflectionProbe;
3174
3272
  }
3175
3273
  export class MeshRenderer extends Renderer {
3176
3274
  }
@@ -3225,13 +3323,12 @@ declare module "engine-components/ui/RaycastUtils" {
3225
3323
  }
3226
3324
  }
3227
3325
  declare module "engine-components/WebXRController" {
3326
+ import { Group, Intersection, Mesh, Object3D, Quaternion, Ray, Vector3, XRInputSource, XRSession } from "three";
3327
+ import { OculusHandPointerModel } from 'three/examples/jsm/webxr/OculusHandPointerModel.js';
3328
+ import { XRControllerModel, XRControllerModelFactory } from 'three/examples/jsm/webxr/XRControllerModelFactory.js';
3228
3329
  import { Behaviour, GameObject } from "engine-components/Component";
3229
- import { WebXR } from "engine-components/WebXR";
3230
- import * as THREE from "three";
3231
3330
  import { SyncedTransform } from "engine-components/SyncedTransform";
3232
- import { XRControllerModel, XRControllerModelFactory } from 'three/examples/jsm/webxr/XRControllerModelFactory.js';
3233
- import { OculusHandPointerModel } from 'three/examples/jsm/webxr/OculusHandPointerModel.js';
3234
- import { XRSession } from "three";
3331
+ import { WebXR } from "engine-components/WebXR";
3235
3332
  export enum ControllerType {
3236
3333
  PhysicalDevice = 0,
3237
3334
  Touch = 1
@@ -3258,17 +3355,17 @@ declare module "engine-components/WebXRController" {
3258
3355
  webXR: WebXR;
3259
3356
  index: number;
3260
3357
  controllerModel: XRControllerModel;
3261
- controller: THREE.Group;
3262
- controllerGrip: THREE.Group;
3263
- hand: THREE.Group;
3358
+ controller: Group;
3359
+ controllerGrip: Group;
3360
+ hand: Group;
3264
3361
  handPointerModel: OculusHandPointerModel;
3265
3362
  grabbed: AttachedObject | null;
3266
- input: THREE.XRInputSource | null;
3363
+ input: XRInputSource | null;
3267
3364
  type: ControllerType;
3268
3365
  get isUsingHands(): boolean;
3269
- get wrist(): THREE.Object3D | null;
3366
+ get wrist(): Object3D | null;
3270
3367
  private _wristQuaternion;
3271
- getWristQuaternion(): THREE.Quaternion | null;
3368
+ getWristQuaternion(): Quaternion | null;
3272
3369
  private movementVector;
3273
3370
  private worldRot;
3274
3371
  private joystick;
@@ -3288,7 +3385,7 @@ declare module "engine-components/WebXRController" {
3288
3385
  get selectionUp(): boolean;
3289
3386
  get selectionPressed(): boolean;
3290
3387
  get selectionClick(): boolean;
3291
- get raycastHitPoint(): THREE.Object3D | null;
3388
+ get raycastHitPoint(): Object3D | null;
3292
3389
  private _selectionPressed;
3293
3390
  private _selectionPressedLastFrame;
3294
3391
  private _selectionStartTime;
@@ -3303,7 +3400,7 @@ declare module "engine-components/WebXRController" {
3303
3400
  private onSourceConnected;
3304
3401
  private onSourceDisconnected;
3305
3402
  private createPointerEvent;
3306
- rayRotation: THREE.Quaternion;
3403
+ rayRotation: Quaternion;
3307
3404
  update(): void;
3308
3405
  private _pinchStartTime;
3309
3406
  onUpdate(session: XRSession): void;
@@ -3319,9 +3416,10 @@ declare module "engine-components/WebXRController" {
3319
3416
  private onSelectEnd;
3320
3417
  private testIsVisible;
3321
3418
  private setControllerLayers;
3322
- getRay(): THREE.Ray;
3323
- overlap(): THREE.Intersection[];
3324
- raycast(): THREE.Intersection[];
3419
+ getRay(): Ray;
3420
+ private closeGrabBoundingBoxHelper?;
3421
+ overlap(): Intersection[];
3422
+ raycast(): Intersection[];
3325
3423
  }
3326
3424
  export enum AttachedObjectEvents {
3327
3425
  WillTake = "WillTake",
@@ -3338,11 +3436,11 @@ declare module "engine-components/WebXRController" {
3338
3436
  static Current: AttachedObject[];
3339
3437
  private static Register;
3340
3438
  private static Remove;
3341
- static TryTake(controller: WebXRController, candidate: THREE.Object3D, intersection: THREE.Intersection, closeGrab: boolean): AttachedObject | null;
3439
+ static TryTake(controller: WebXRController, candidate: Object3D, intersection: Intersection, closeGrab: boolean): AttachedObject | null;
3342
3440
  sync: SyncedTransform | null;
3343
- selected: THREE.Object3D | null;
3344
- selectedParent: THREE.Object3D | null;
3345
- selectedMesh: THREE.Mesh | null;
3441
+ selected: Object3D | null;
3442
+ selectedParent: Object3D | null;
3443
+ selectedMesh: Mesh | null;
3346
3444
  controller: WebXRController | null;
3347
3445
  grabTime: number;
3348
3446
  grabUUID: string;
@@ -3356,7 +3454,7 @@ declare module "engine-components/WebXRController" {
3356
3454
  private positionSource;
3357
3455
  private Take;
3358
3456
  free(): void;
3359
- grabPoint: THREE.Vector3;
3457
+ grabPoint: Vector3;
3360
3458
  private localPositionOffsetToGrab;
3361
3459
  private localPositionOffsetToGrab_worldSpace;
3362
3460
  private localQuaternionToGrab;
@@ -3372,36 +3470,6 @@ declare module "engine-components/WebXRController" {
3372
3470
  update(): void;
3373
3471
  }
3374
3472
  }
3375
- declare module "engine-components/WebARSessionRoot" {
3376
- import { Behaviour } from "engine-components/Component";
3377
- import * as THREE from 'three';
3378
- import { Matrix4, XRPose } from "three";
3379
- import { WebAR } from "engine-components/WebXR";
3380
- export class WebARSessionRoot extends Behaviour {
3381
- webAR: WebAR | null;
3382
- get rig(): THREE.Object3D | undefined;
3383
- invertForward: boolean;
3384
- get arScale(): number;
3385
- set arScale(val: number);
3386
- private readonly _initalMatrix;
3387
- private readonly _selectStartFn;
3388
- private readonly _selectEndFn;
3389
- start(): void;
3390
- private _arScale;
3391
- private _rig;
3392
- private _startPose;
3393
- private _placementPose;
3394
- private _isTouching;
3395
- private _rigStartPose;
3396
- onBegin(session: THREE.XRSession): void;
3397
- onUpdate(rig: THREE.Object3D | null, _session: THREE.XRSession, pose: XRPose | null | undefined): boolean;
3398
- placeAt(rig: THREE.Object3D | null, mat: Matrix4): void;
3399
- onEnd(rig: THREE.Object3D | null, _session: THREE.XRSession): void;
3400
- private onSelectStart;
3401
- private onSelectEnd;
3402
- private setScale;
3403
- }
3404
- }
3405
3473
  declare module "engine-components/WebXRRig" {
3406
3474
  import { Behaviour } from "engine-components/Component";
3407
3475
  export class XRRig extends Behaviour {
@@ -3409,10 +3477,10 @@ declare module "engine-components/WebXRRig" {
3409
3477
  }
3410
3478
  }
3411
3479
  declare module "engine-components/WebXR" {
3480
+ import { Object3D, Quaternion, XRFrame, XRSession, XRViewerPose } from 'three';
3481
+ import { AssetReference } from "engine/engine_addressables";
3412
3482
  import { Behaviour } from "engine-components/Component";
3413
- import * as THREE from 'three';
3414
3483
  import { WebXRController } from "engine-components/WebXRController";
3415
- import { AssetReference } from "engine/engine_addressables";
3416
3484
  export function detectARSupport(): Promise<boolean>;
3417
3485
  export function detectVRSupport(): Promise<boolean>;
3418
3486
  export enum WebXREvent {
@@ -3428,6 +3496,7 @@ declare module "engine-components/WebXR" {
3428
3496
  enableVR: boolean;
3429
3497
  enableAR: boolean;
3430
3498
  defaultAvatar?: AssetReference;
3499
+ handModelPath: string;
3431
3500
  createVRButton: boolean;
3432
3501
  createARButton: boolean;
3433
3502
  private static _isInXr;
@@ -3442,7 +3511,7 @@ declare module "engine-components/WebXR" {
3442
3511
  static createARButton(webXR: WebXR, opts?: CreateButtonOptions): HTMLButtonElement;
3443
3512
  static resetButtonStyles(button: any): void;
3444
3513
  endSession(): void;
3445
- get Rig(): THREE.Object3D;
3514
+ get Rig(): Object3D;
3446
3515
  private controllers;
3447
3516
  get Controllers(): WebXRController[];
3448
3517
  get LeftController(): WebXRController | null;
@@ -3463,9 +3532,9 @@ declare module "engine-components/WebXR" {
3463
3532
  awake(): void;
3464
3533
  onEnable(): void;
3465
3534
  private _transformOrientation;
3466
- get TransformOrientation(): THREE.Quaternion;
3535
+ get TransformOrientation(): Quaternion;
3467
3536
  private _currentHeadPose;
3468
- get HeadPose(): THREE.XRViewerPose | null;
3537
+ get HeadPose(): XRViewerPose | null;
3469
3538
  onBeforeRender(frame: any): void;
3470
3539
  private onClickedARButton;
3471
3540
  private onClickedVRButton;
@@ -3500,9 +3569,9 @@ declare module "engine-components/WebXR" {
3500
3569
  private didPlaceARSessionRoot;
3501
3570
  getAROverlayContainer(): HTMLElement | null;
3502
3571
  setReticleActive(active: boolean): void;
3503
- onBegin(session: THREE.XRSession): Promise<void>;
3504
- onEnd(session: THREE.XRSession): void;
3505
- onUpdate(session: THREE.XRSession, frame: THREE.XRFrame): void;
3572
+ onBegin(session: XRSession): Promise<void>;
3573
+ onEnd(session: XRSession): void;
3574
+ onUpdate(session: XRSession, frame: XRFrame): void;
3506
3575
  }
3507
3576
  }
3508
3577
  declare module "engine-components/DragControls" {
@@ -3706,7 +3775,9 @@ declare module "engine-components/GroundProjection" {
3706
3775
  private env?;
3707
3776
  private _watcher?;
3708
3777
  onEnable(): void;
3778
+ start(): void;
3709
3779
  onDisable(): void;
3780
+ private updateAndCreate;
3710
3781
  updateProjection(): void;
3711
3782
  }
3712
3783
  }
@@ -4476,7 +4547,7 @@ declare module "engine-components/Volume" {
4476
4547
  }
4477
4548
  declare module "engine-components/WebXRGrabRendering" {
4478
4549
  import { Behaviour } from "engine-components/Component";
4479
- import * as THREE from "three";
4550
+ import { Object3D, Vector3 } from "three";
4480
4551
  import { Context } from "engine/engine_setup";
4481
4552
  import { IModel } from "engine/engine_networking_types";
4482
4553
  export class XRGrabModel implements IModel {
@@ -4494,10 +4565,10 @@ declare module "engine-components/WebXRGrabRendering" {
4494
4565
  z: number;
4495
4566
  };
4496
4567
  target: string | undefined;
4497
- update(context: Context, point: THREE.Vector3, source: THREE.Vector3, target?: string | undefined): void;
4568
+ update(context: Context, point: Vector3, source: Vector3, target?: string | undefined): void;
4498
4569
  }
4499
4570
  export class XRGrabRendering extends Behaviour {
4500
- prefab: THREE.Object3D | null;
4571
+ prefab: Object3D | null;
4501
4572
  private _grabModels;
4502
4573
  private _grabModelsUpdateTime;
4503
4574
  private _addOrUpdateSub;
@@ -5266,6 +5337,7 @@ declare module "engine-components/codegen/components" {
5266
5337
  export { EmissionModule } from "engine-components/ParticleSystemModules";
5267
5338
  export { ShapeModule } from "engine-components/ParticleSystemModules";
5268
5339
  export { PlayerColor } from "engine-components/PlayerColor";
5340
+ export { ReflectionProbe } from "engine-components/ReflectionProbe";
5269
5341
  export { FieldWithDefault } from "engine-components/Renderer";
5270
5342
  export { Renderer } from "engine-components/Renderer";
5271
5343
  export { MeshRenderer } from "engine-components/Renderer";
@@ -5364,9 +5436,6 @@ declare module "needle-engine" {
5364
5436
  export * from "engine-components/codegen/components";
5365
5437
  export * from "engine-components/js-extensions/Object3D";
5366
5438
  }
5367
- declare module "engine/debug/error_overlay" {
5368
- export function makeErrorsVisibleForDevelopment(): void;
5369
- }
5370
5439
  declare module "engine/engine" {
5371
5440
  import * as engine_setup from "engine/engine_setup";
5372
5441
  import * as engine_scenetools from "engine/engine_scenetools";