@needle-tools/engine 2.35.0-pre → 2.35.2-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 (68) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/needle-engine.d.ts +202 -181
  3. package/dist/needle-engine.js +234 -3338
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +41 -36
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/lib/engine/engine_components.d.ts +12 -11
  8. package/lib/engine/engine_components.js +48 -24
  9. package/lib/engine/engine_components.js.map +1 -1
  10. package/lib/engine/engine_element.js +2 -1
  11. package/lib/engine/engine_element.js.map +1 -1
  12. package/lib/engine/engine_element_loading.js +4 -1
  13. package/lib/engine/engine_element_loading.js.map +1 -1
  14. package/lib/engine/engine_gltf_builtin_components.d.ts +1 -0
  15. package/lib/engine/engine_gltf_builtin_components.js +5 -0
  16. package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
  17. package/lib/engine/engine_networking.d.ts +5 -0
  18. package/lib/engine/engine_networking.js +6 -4
  19. package/lib/engine/engine_networking.js.map +1 -1
  20. package/lib/engine/engine_physics.d.ts +6 -1
  21. package/lib/engine/engine_physics.js +12 -2
  22. package/lib/engine/engine_physics.js.map +1 -1
  23. package/lib/engine/engine_types.d.ts +7 -2
  24. package/lib/engine/engine_types.js +6 -5
  25. package/lib/engine/engine_types.js.map +1 -1
  26. package/lib/engine-components/Collider.d.ts +3 -1
  27. package/lib/engine-components/Collider.js +11 -0
  28. package/lib/engine-components/Collider.js.map +1 -1
  29. package/lib/engine-components/Component.d.ts +7 -7
  30. package/lib/engine-components/Component.js +8 -8
  31. package/lib/engine-components/Component.js.map +1 -1
  32. package/lib/engine-components/Networking.d.ts +3 -1
  33. package/lib/engine-components/Networking.js +3 -0
  34. package/lib/engine-components/Networking.js.map +1 -1
  35. package/lib/engine-components/OrbitControls.js +16 -4
  36. package/lib/engine-components/OrbitControls.js.map +1 -1
  37. package/lib/engine-components/Renderer.d.ts +2 -1
  38. package/lib/engine-components/Renderer.js +11 -2
  39. package/lib/engine-components/Renderer.js.map +1 -1
  40. package/lib/engine-components/WebXR.js +5 -1
  41. package/lib/engine-components/WebXR.js.map +1 -1
  42. package/lib/engine-components/js-extensions/Object3D.js +13 -11
  43. package/lib/engine-components/js-extensions/Object3D.js.map +1 -1
  44. package/lib/engine-components/ui/EventSystem.js +2 -2
  45. package/lib/engine-components/ui/EventSystem.js.map +1 -1
  46. package/lib/engine-components/ui/RaycastUtils.js +0 -1
  47. package/lib/engine-components/ui/RaycastUtils.js.map +1 -1
  48. package/lib/needle-engine.d.ts +0 -1
  49. package/lib/needle-engine.js +0 -1
  50. package/lib/needle-engine.js.map +1 -1
  51. package/package.json +1 -1
  52. package/src/engine/engine_components.ts +50 -27
  53. package/src/engine/engine_element.ts +2 -1
  54. package/src/engine/engine_element_loading.ts +5 -1
  55. package/src/engine/engine_gltf_builtin_components.ts +4 -0
  56. package/src/engine/engine_networking.ts +12 -4
  57. package/src/engine/engine_physics.ts +34 -4
  58. package/src/engine/engine_types.ts +14 -6
  59. package/src/engine-components/Collider.ts +17 -2
  60. package/src/engine-components/Component.ts +21 -22
  61. package/src/engine-components/Networking.ts +6 -1
  62. package/src/engine-components/OrbitControls.ts +20 -7
  63. package/src/engine-components/Renderer.ts +13 -3
  64. package/src/engine-components/WebXR.ts +4 -1
  65. package/src/engine-components/js-extensions/Object3D.ts +17 -15
  66. package/src/engine-components/ui/EventSystem.ts +2 -2
  67. package/src/engine-components/ui/RaycastUtils.ts +0 -1
  68. package/src/needle-engine.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,20 @@ All notable changes to this package will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [2.35.2-pre] - 2022-10-20
8
+ - Add ``Renderer.mesh`` getter property
9
+ - Change: ``Renderer.material`` now returns first entry in ``sharedMaterials`` array so it automatically works in cases where a Renderer is actually a multi-material object
10
+ - Change: warn when trying to access components using string name instead of type
11
+ - Change: update needle gltf-transform-extensions to 0.6.2
12
+ - Fix: remove log from UIRaycastUtil
13
+ - Fix: move TypeStore import in builtin engine again to not break cases where ``import @needle-engine`` was never used
14
+ - Fix: React3Fiber template and AR overlay container access when using react
15
+
16
+ ## [2.35.1-pre] - 2022-10-19
17
+ - Change: unify component access methods, first argument is now always the object with the component type as second argument
18
+ - Fix physics collision events throwing caused by refactoring in last version
19
+ - Fix loading screen css
20
+
7
21
  ## [2.35.0-pre] - 2022-10-19
8
22
  - Change: First pass of reducing circular dependencies
9
23
  - Change: Update @needle-tools/gltf-transform-extensions version
@@ -78,6 +78,7 @@ declare module "engine/engine_types" {
78
78
  onTriggerExit?(col: Collision): any;
79
79
  __internalHandleCollision(col: Collision, isTriggerCollision: boolean): any;
80
80
  __internalHandleExitCollisionEvent(obj: Object3D, isTriggerCollision: boolean): any;
81
+ get forward(): Vector3;
81
82
  }
82
83
  export interface ICamera extends IComponent {
83
84
  applyClearFlagsIfIsActiveCamera(): unknown;
@@ -99,7 +100,7 @@ declare module "engine/engine_types" {
99
100
  }
100
101
  export interface ICollider extends IComponent {
101
102
  get isCollider(): any;
102
- attachedRigidbody: IRigidbody;
103
+ attachedRigidbody: IRigidbody | null;
103
104
  isTrigger: boolean;
104
105
  }
105
106
  export interface IRigidbody extends IComponent {
@@ -113,19 +114,23 @@ declare module "engine/engine_types" {
113
114
  target: Body;
114
115
  type: string;
115
116
  };
117
+ export type ICollisionContext = {
118
+ getCollider(obj: Object3D): ICollider;
119
+ };
116
120
  export class Collision {
117
121
  get __internalCollision(): CannonCollision;
118
122
  get __internalInvertedSourceReceiver(): boolean;
119
123
  private readonly invert;
120
124
  private readonly collision;
121
125
  private readonly targetBody;
126
+ private readonly context;
122
127
  readonly me: Object3D;
123
128
  private _normal?;
124
129
  get normal(): Vector3;
125
130
  private _collider?;
126
131
  get collider(): ICollider;
127
132
  get gameObject(): Object3D;
128
- constructor(obj: Object3D, collision: CannonCollision, invert?: boolean);
133
+ constructor(obj: Object3D, collision: CannonCollision, context: ICollisionContext, invert?: boolean);
129
134
  }
130
135
  }
131
136
  declare module "engine/engine_utils" {
@@ -569,22 +574,23 @@ declare module "engine-components/js-extensions/ExtensionUtils" {
569
574
  }
570
575
  }
571
576
  declare module "engine/engine_components" {
572
- import { Object3D } from "three";
577
+ import { Object3D, Scene } from "three";
573
578
  import { Constructor, ConstructorConcrete, IComponent } from "engine/engine_types";
574
579
  export function removeComponent(go: Object3D, componentInstance: IComponent): void;
575
580
  export function getOrAddComponent<T extends IComponent>(go: Object3D, typeName: ConstructorConcrete<T>): T;
576
581
  export function addNewComponentInstance<T extends IComponent>(obj: Object3D, componentInstance: T, callAwake?: boolean): IComponent;
577
- export function moveComponentInstance(componentInstance: IComponent, obj: Object3D): void;
582
+ export function moveComponentInstance(obj: Object3D, componentInstance: IComponent): void;
578
583
  export function destroyComponentInstance(componentInstance: IComponent): void;
579
- export function onGetComponent<T>(componentType: Constructor<T>, obj: Object3D, arr?: IComponent[]): any;
580
- export function getComponent<T>(componentType: Constructor<T>, obj: any): any;
581
- export function getComponents(componentType: any, obj: any, arr: any): any;
582
- export function getComponentInChildren(componentType: any, obj: any, includeInactive?: boolean): any;
583
- export function getComponentsInChildren<T extends IComponent>(componentType: Constructor<T>, obj: Object3D, arr?: T[]): T[];
584
- export function getComponentInParent(componentType: any, obj: any): any;
585
- export function getComponentsInParent(componentType: any, obj: any, arr: any): any;
586
- export function findObjectOfType(type: any, contextOrScene: any, includeInactive: any): any;
587
- export function findObjectsOfType(type: any, array: any, contextOrScene: any): any;
584
+ export function getComponent<T>(obj: Object3D, componentType: Constructor<T>): any;
585
+ export function getComponents<T>(obj: Object3D, componentType: Constructor<T>, arr?: T[] | null): T[];
586
+ export function getComponentInChildren<T>(obj: Object3D, componentType: Constructor<T>, includeInactive?: boolean): any;
587
+ export function getComponentsInChildren<T>(obj: Object3D, componentType: Constructor<T>, arr?: T[]): T[];
588
+ export function getComponentInParent<T>(obj: Object3D, componentType: Constructor<T>): any;
589
+ export function getComponentsInParent<T>(obj: Object3D, componentType: Constructor<T>, arr?: T[] | null): T[];
590
+ export function findObjectOfType<T>(type: Constructor<T>, contextOrScene: Object3D | {
591
+ scene: Scene;
592
+ }, includeInactive: any): any;
593
+ export function findObjectsOfType<T>(type: Constructor<T>, array: T[], contextOrScene: any): T[];
588
594
  }
589
595
  declare module "engine-components/js-extensions/Object3D" {
590
596
  import { Object3D } from "three";
@@ -629,7 +635,7 @@ declare module "engine/engine_physics" {
629
635
  import * as CANNON from 'cannon-es';
630
636
  import * as THREE from 'three';
631
637
  import { Context } from "engine/engine_setup";
632
- import { IGameObject as GameObject, IRigidbody as Rigidbody } from "engine/engine_types";
638
+ import { IGameObject as GameObject, ICollider, IRigidbody as Rigidbody } from "engine/engine_types";
633
639
  export class BodyOptions {
634
640
  mass: number;
635
641
  kinematic: boolean;
@@ -705,9 +711,14 @@ declare module "engine/engine_physics" {
705
711
  private registerCollisionEvents;
706
712
  private unregisterCollisionEvents;
707
713
  private onBeginContact;
714
+ private readonly collisionContext;
708
715
  private raiseCollisionEvents;
709
716
  private onEndContact;
710
717
  }
718
+ export interface IColliderProvider {
719
+ getCollider(obj: THREE.Object3D): ICollider;
720
+ }
721
+ export function registerColliderProvider(prov: IColliderProvider): void;
711
722
  }
712
723
  declare module "engine/engine_time" {
713
724
  export class Time {
@@ -724,170 +735,6 @@ declare module "engine/engine_time" {
724
735
  update(): void;
725
736
  }
726
737
  }
727
- declare module "engine-components/Component" {
728
- import * as THREE from "three";
729
- import { Context, FrameEvent } from "engine/engine_setup";
730
- import { Object3D } from "three";
731
- import { ConstructorConcrete, SourceIdentifier, IComponent, IGameObject, Constructor, GuidsMap, Collision } from "engine/engine_types";
732
- import { InstantiateOptions, HideFlags } from "engine/engine_gameobject";
733
- abstract class GameObject extends THREE.Object3D implements THREE.Object3D, IGameObject {
734
- guid: string | undefined;
735
- static setActive(go: THREE.Object3D, active: boolean, processStart?: boolean): void;
736
- static isActiveSelf(go: THREE.Object3D): boolean;
737
- static isActiveInHierarchy(go: THREE.Object3D): boolean;
738
- static markAsInstancedRendered(go: THREE.Object3D, instanced: boolean): void;
739
- static isUsingInstancing(instance: THREE.Object3D): boolean;
740
- static foreachComponent(instance: THREE.Object3D, cb: (comp: Component) => any, recursive?: boolean): any;
741
- static instantiateSynced(instance: GameObject | Object3D | null, opts: InstantiateOptions): GameObject | null;
742
- static instantiate(instance: GameObject | Object3D | null, opts?: InstantiateOptions | null): GameObject | null;
743
- static destroySynced(instance: THREE.Object3D | Component, context?: Context, recursive?: boolean): void;
744
- static destroy(instance: THREE.Object3D | Component, recursive?: boolean, isRoot?: boolean): void;
745
- /**
746
- * Add an object to parent and also ensure all components are being registered
747
- */
748
- static add(instance: THREE.Object3D | null | undefined, parent: THREE.Object3D, context?: Context): void;
749
- /**
750
- * Removes the object from its parent and deactivates all of its components
751
- */
752
- static remove(instance: THREE.Object3D | null | undefined): void;
753
- static invokeOnChildren(go: THREE.Object3D | null | undefined, functionName: string, ...args: any): void;
754
- static invoke(go: THREE.Object3D | null | undefined, functionName: string, children?: boolean, ...args: any): void;
755
- static addNewComponent<T extends Behaviour>(go: GameObject | THREE.Object3D, type: ConstructorConcrete<T>, callAwake?: boolean): T;
756
- static addComponent(go: GameObject, instance: Component): void;
757
- static removeComponent(instance: Component): Component;
758
- static getOrAddComponent<T extends IComponent>(go: GameObject | THREE.Object3D, typeName: ConstructorConcrete<T>): T;
759
- static getComponent<T>(go: GameObject | THREE.Object3D | null, typeName: Constructor<T> | null): T | null;
760
- static getComponents<T>(go: GameObject | THREE.Object3D | null, typeName: Constructor<T> | null, arr?: T[] | null): T[];
761
- static findByGuid(guid: string, hierarchy: THREE.Object3D): GameObject | Component | null | undefined;
762
- static findObjectOfType<T>(typeName: Constructor<T> | string, context?: Context | THREE.Object3D, includeInactive?: boolean): T | null;
763
- static findObjectsOfType<T>(typeName: Constructor<T>, context?: Context | THREE.Object3D): Array<T>;
764
- static getComponentInChildren<T>(go: GameObject | THREE.Object3D, typeName: Constructor<T> | null): T | null;
765
- static getComponentsInChildren<T extends IComponent>(go: GameObject | THREE.Object3D, typeName: Constructor<T>, arr?: T[] | null): Array<T>;
766
- static getComponentInParent<T>(go: GameObject | THREE.Object3D | Array<Object3D>, typeName: Constructor<T>): T | null;
767
- static getComponentsInParent<T>(go: GameObject | THREE.Object3D, typeName: Constructor<T>, arr?: Array<T> | null): Array<T>;
768
- static getAllComponents(go: GameObject | THREE.Object3D): Behaviour[];
769
- static iterateComponents(go: GameObject | THREE.Object3D): Generator<any, void, unknown>;
770
- abstract addNewComponent<T>(type: Constructor<T>): T | null;
771
- abstract removeComponent(comp: Component): Component;
772
- abstract getOrAddComponent<T>(go: GameObject | THREE.Object3D, typeName: Constructor<T> | null): T;
773
- abstract getComponent<T>(type: Constructor<T>): T | null;
774
- abstract getComponents<T>(type: Constructor<T>, arr?: T[]): Array<T>;
775
- abstract getComponentInChildren<T>(type: Constructor<T>): T | null;
776
- abstract getComponentsInChildren<T>(type: Constructor<T>, arr?: T[]): Array<T>;
777
- abstract getComponentInParent<T>(type: Constructor<T>): T | null;
778
- abstract getComponentsInParent<T>(type: Constructor<T>, arr?: T[]): Array<T>;
779
- }
780
- class Component implements IComponent, EventTarget {
781
- get isComponent(): boolean;
782
- private __context;
783
- get context(): Context;
784
- set context(context: Context);
785
- get scene(): THREE.Scene;
786
- get layer(): number;
787
- get name(): string;
788
- private __name?;
789
- set name(str: string);
790
- get tag(): string;
791
- set tag(str: string);
792
- get static(): any;
793
- get hideFlags(): HideFlags;
794
- get activeAndEnabled(): boolean;
795
- private get __isActive();
796
- private get __isActiveInHierarchy();
797
- private set __isActiveInHierarchy(value);
798
- gameObject: GameObject;
799
- guid: string;
800
- sourceId?: SourceIdentifier;
801
- /** called on a component with a map of old to new guids (e.g. when instantiate generated new guids and e.g. timeline track bindings needs to remape them) */
802
- resolveGuids?(guidsMap: GuidsMap): void;
803
- awake(): void;
804
- onEnable(): void;
805
- onDisable(): void;
806
- onDestroy(): void;
807
- start?(): void;
808
- earlyUpdate?(): void;
809
- update?(): void;
810
- lateUpdate?(): void;
811
- onBeforeRender?(frame: THREE.XRFrame | null): void;
812
- onAfterRender?(): void;
813
- onCollisionEnter?(col: Collision): any;
814
- onCollisionExit?(col: Collision): any;
815
- onCollisionExitRaw?(col: Collision): any;
816
- onCollisionStay?(col: Collision): any;
817
- onTriggerEnter?(col: Collision): any;
818
- onTriggerStay?(col: Collision): any;
819
- onTriggerExit?(col: Collision): any;
820
- startCoroutine(routine: Generator, evt?: FrameEvent): Generator;
821
- stopCoroutine(routine: Generator, evt?: FrameEvent): void;
822
- get destroyed(): boolean;
823
- destroy(): void;
824
- protected __didAwake: boolean;
825
- private __didStart;
826
- protected __didEnable: boolean;
827
- protected __isEnabled: boolean | undefined;
828
- private __destroyed;
829
- __internalNewInstanceCreated(): void;
830
- __internalAwake(): void;
831
- __internalStart(): void;
832
- __internalEnable(): boolean;
833
- __internalDisable(): void;
834
- __internalDestroy(): void;
835
- get enabled(): boolean;
836
- set enabled(val: boolean);
837
- constructor();
838
- private _collisionExitRoutine;
839
- private _collisions;
840
- private _triggerExitRoutine;
841
- private _triggerCollisions;
842
- get collisionsCount(): number;
843
- private __internalResetsCachedPhysicsData;
844
- __internalHandleCollision(col: Collision, isTriggerCollision: boolean): void;
845
- __internalHandleExitCollisionEvent(obj: Object3D, isTriggerCollision: boolean): void;
846
- private __waitForCollisionExit;
847
- private static _worldPositionBuffer;
848
- private static _worldQuaternionBuffer;
849
- private static _worldEulerBuffer;
850
- private _worldPosition;
851
- private _worldQuaternion;
852
- private static _tempQuaternionBuffer2;
853
- private _worldEuler;
854
- private _worldRotation;
855
- get worldPosition(): THREE.Vector3;
856
- set worldPosition(val: THREE.Vector3);
857
- setWorldPosition(x: number, y: number, z: number): void;
858
- get worldQuaternion(): THREE.Quaternion;
859
- set worldQuaternion(val: THREE.Quaternion);
860
- setWorldQuaternion(x: number, y: number, z: number, w: number): void;
861
- get worldEuler(): THREE.Euler;
862
- set worldEuler(val: THREE.Euler);
863
- get worldRotation(): THREE.Vector3;
864
- set worldRotation(val: THREE.Vector3);
865
- setWorldRotation(x: number, y: number, z: number, degrees?: boolean): void;
866
- private static _forward;
867
- get forward(): THREE.Vector3;
868
- private _eventListeners;
869
- addEventListener(type: string, listener: EventListener): void;
870
- removeEventListener(type: string, listener: EventListener): void;
871
- dispatchEvent(evt: Event): boolean;
872
- }
873
- class Behaviour extends Component {
874
- }
875
- export { Behaviour, Component, GameObject };
876
- }
877
- declare module "engine/engine_networking_utils" {
878
- export function isLocalNetwork(hostname?: string): boolean;
879
- }
880
- declare module "engine-components/Networking" {
881
- import { Behaviour } from "engine-components/Component";
882
- export class Networking extends Behaviour {
883
- url: string | null;
884
- urlParameterName: string | null;
885
- localhost: string | null;
886
- getWebsocketUrl(): string | null;
887
- static GetUrl(url: string, localhostFallback?: string | null): string;
888
- static IsLocalNetwork(hostname?: string): boolean;
889
- }
890
- }
891
738
  declare module "engine-schemes/vec3" {
892
739
  import * as flatbuffers from 'flatbuffers';
893
740
  export class Vec3 {
@@ -973,6 +820,9 @@ declare module "engine/engine_networking" {
973
820
  import { IModel, INetworkConnection, SendQueue } from "engine/engine_networking_types";
974
821
  export const debugNet: boolean;
975
822
  export const debugOwner: boolean;
823
+ export interface INetworkingWebsocketUrlProvider {
824
+ getWebsocketUrl(): string | null;
825
+ }
976
826
  export interface IConnectionData {
977
827
  id: string;
978
828
  }
@@ -1067,6 +917,8 @@ declare module "engine/engine_networking" {
1067
917
  stopListening(key: string | OwnershipEvent, callback: Function | null): void;
1068
918
  beginListenBinrary(identifier: string, callback: BinaryCallback): BinaryCallback;
1069
919
  stopListenBinary(identifier: string, callback: any): void;
920
+ private netWebSocketUrlProvider?;
921
+ registerProvider(prov: INetworkingWebsocketUrlProvider): void;
1070
922
  connect(): void;
1071
923
  private _listeners;
1072
924
  private _listenersBinary;
@@ -1239,6 +1091,156 @@ declare module "engine/engine_assetdatabase" {
1239
1091
  private _textures;
1240
1092
  }
1241
1093
  }
1094
+ declare module "engine-components/Component" {
1095
+ import * as THREE from "three";
1096
+ import { Context, FrameEvent } from "engine/engine_setup";
1097
+ import { Object3D } from "three";
1098
+ import { ConstructorConcrete, SourceIdentifier, IComponent, IGameObject, Constructor, GuidsMap, Collision } from "engine/engine_types";
1099
+ import { InstantiateOptions, HideFlags } from "engine/engine_gameobject";
1100
+ abstract class GameObject extends THREE.Object3D implements THREE.Object3D, IGameObject {
1101
+ guid: string | undefined;
1102
+ static setActive(go: THREE.Object3D, active: boolean, processStart?: boolean): void;
1103
+ static isActiveSelf(go: THREE.Object3D): boolean;
1104
+ static isActiveInHierarchy(go: THREE.Object3D): boolean;
1105
+ static markAsInstancedRendered(go: THREE.Object3D, instanced: boolean): void;
1106
+ static isUsingInstancing(instance: THREE.Object3D): boolean;
1107
+ static foreachComponent(instance: THREE.Object3D, cb: (comp: Component) => any, recursive?: boolean): any;
1108
+ static instantiateSynced(instance: GameObject | Object3D | null, opts: InstantiateOptions): GameObject | null;
1109
+ static instantiate(instance: GameObject | Object3D | null, opts?: InstantiateOptions | null): GameObject | null;
1110
+ static destroySynced(instance: THREE.Object3D | Component, context?: Context, recursive?: boolean): void;
1111
+ static destroy(instance: THREE.Object3D | Component, recursive?: boolean, isRoot?: boolean): void;
1112
+ /**
1113
+ * Add an object to parent and also ensure all components are being registered
1114
+ */
1115
+ static add(instance: THREE.Object3D | null | undefined, parent: THREE.Object3D, context?: Context): void;
1116
+ /**
1117
+ * Removes the object from its parent and deactivates all of its components
1118
+ */
1119
+ static remove(instance: THREE.Object3D | null | undefined): void;
1120
+ static invokeOnChildren(go: THREE.Object3D | null | undefined, functionName: string, ...args: any): void;
1121
+ static invoke(go: THREE.Object3D | null | undefined, functionName: string, children?: boolean, ...args: any): void;
1122
+ static addNewComponent<T>(go: GameObject | THREE.Object3D, type: ConstructorConcrete<T>, callAwake?: boolean): T;
1123
+ static addComponent(go: GameObject, instance: Component): void;
1124
+ static removeComponent(instance: Component): Component;
1125
+ static getOrAddComponent<T>(go: GameObject | THREE.Object3D, typeName: ConstructorConcrete<T>): T;
1126
+ static getComponent<T>(go: GameObject | THREE.Object3D | null, typeName: Constructor<T> | null): T | null;
1127
+ static getComponents<T>(go: GameObject | THREE.Object3D | null, typeName: Constructor<T>, arr?: T[] | null): T[];
1128
+ static findByGuid(guid: string, hierarchy: THREE.Object3D): GameObject | Component | null | undefined;
1129
+ static findObjectOfType<T>(typeName: Constructor<T>, context?: Context | THREE.Object3D, includeInactive?: boolean): T | null;
1130
+ static findObjectsOfType<T>(typeName: Constructor<T>, context?: Context | THREE.Object3D): Array<T>;
1131
+ static getComponentInChildren<T>(go: GameObject | THREE.Object3D, typeName: Constructor<T>): T | null;
1132
+ static getComponentsInChildren<T>(go: GameObject | THREE.Object3D, typeName: Constructor<T>, arr?: T[] | null): Array<T>;
1133
+ static getComponentInParent<T>(go: GameObject | THREE.Object3D, typeName: Constructor<T>): T | null;
1134
+ static getComponentsInParent<T>(go: GameObject | THREE.Object3D, typeName: Constructor<T>, arr?: Array<T> | null): Array<T>;
1135
+ static getAllComponents(go: GameObject | THREE.Object3D): Behaviour[];
1136
+ static iterateComponents(go: GameObject | THREE.Object3D): Generator<any, void, unknown>;
1137
+ abstract addNewComponent<T>(type: Constructor<T>): T | null;
1138
+ abstract removeComponent(comp: Component): Component;
1139
+ abstract getOrAddComponent<T>(go: GameObject | THREE.Object3D, typeName: Constructor<T> | null): T;
1140
+ abstract getComponent<T>(type: Constructor<T>): T | null;
1141
+ abstract getComponents<T>(type: Constructor<T>, arr?: T[]): Array<T>;
1142
+ abstract getComponentInChildren<T>(type: Constructor<T>): T | null;
1143
+ abstract getComponentsInChildren<T>(type: Constructor<T>, arr?: T[]): Array<T>;
1144
+ abstract getComponentInParent<T>(type: Constructor<T>): T | null;
1145
+ abstract getComponentsInParent<T>(type: Constructor<T>, arr?: T[]): Array<T>;
1146
+ }
1147
+ class Component implements IComponent, EventTarget {
1148
+ get isComponent(): boolean;
1149
+ private __context;
1150
+ get context(): Context;
1151
+ set context(context: Context);
1152
+ get scene(): THREE.Scene;
1153
+ get layer(): number;
1154
+ get name(): string;
1155
+ private __name?;
1156
+ set name(str: string);
1157
+ get tag(): string;
1158
+ set tag(str: string);
1159
+ get static(): any;
1160
+ get hideFlags(): HideFlags;
1161
+ get activeAndEnabled(): boolean;
1162
+ private get __isActive();
1163
+ private get __isActiveInHierarchy();
1164
+ private set __isActiveInHierarchy(value);
1165
+ gameObject: GameObject;
1166
+ guid: string;
1167
+ sourceId?: SourceIdentifier;
1168
+ /** called on a component with a map of old to new guids (e.g. when instantiate generated new guids and e.g. timeline track bindings needs to remape them) */
1169
+ resolveGuids?(guidsMap: GuidsMap): void;
1170
+ awake(): void;
1171
+ onEnable(): void;
1172
+ onDisable(): void;
1173
+ onDestroy(): void;
1174
+ start?(): void;
1175
+ earlyUpdate?(): void;
1176
+ update?(): void;
1177
+ lateUpdate?(): void;
1178
+ onBeforeRender?(frame: THREE.XRFrame | null): void;
1179
+ onAfterRender?(): void;
1180
+ onCollisionEnter?(col: Collision): any;
1181
+ onCollisionExit?(col: Collision): any;
1182
+ onCollisionExitRaw?(col: Collision): any;
1183
+ onCollisionStay?(col: Collision): any;
1184
+ onTriggerEnter?(col: Collision): any;
1185
+ onTriggerStay?(col: Collision): any;
1186
+ onTriggerExit?(col: Collision): any;
1187
+ startCoroutine(routine: Generator, evt?: FrameEvent): Generator;
1188
+ stopCoroutine(routine: Generator, evt?: FrameEvent): void;
1189
+ get destroyed(): boolean;
1190
+ destroy(): void;
1191
+ protected __didAwake: boolean;
1192
+ private __didStart;
1193
+ protected __didEnable: boolean;
1194
+ protected __isEnabled: boolean | undefined;
1195
+ private __destroyed;
1196
+ __internalNewInstanceCreated(): void;
1197
+ __internalAwake(): void;
1198
+ __internalStart(): void;
1199
+ __internalEnable(): boolean;
1200
+ __internalDisable(): void;
1201
+ __internalDestroy(): void;
1202
+ get enabled(): boolean;
1203
+ set enabled(val: boolean);
1204
+ constructor();
1205
+ private _collisionExitRoutine;
1206
+ private _collisions;
1207
+ private _triggerExitRoutine;
1208
+ private _triggerCollisions;
1209
+ get collisionsCount(): number;
1210
+ private __internalResetsCachedPhysicsData;
1211
+ __internalHandleCollision(col: Collision, isTriggerCollision: boolean): void;
1212
+ __internalHandleExitCollisionEvent(obj: Object3D, isTriggerCollision: boolean): void;
1213
+ private __waitForCollisionExit;
1214
+ private static _worldPositionBuffer;
1215
+ private static _worldQuaternionBuffer;
1216
+ private static _worldEulerBuffer;
1217
+ private _worldPosition;
1218
+ private _worldQuaternion;
1219
+ private static _tempQuaternionBuffer2;
1220
+ private _worldEuler;
1221
+ private _worldRotation;
1222
+ get worldPosition(): THREE.Vector3;
1223
+ set worldPosition(val: THREE.Vector3);
1224
+ setWorldPosition(x: number, y: number, z: number): void;
1225
+ get worldQuaternion(): THREE.Quaternion;
1226
+ set worldQuaternion(val: THREE.Quaternion);
1227
+ setWorldQuaternion(x: number, y: number, z: number, w: number): void;
1228
+ get worldEuler(): THREE.Euler;
1229
+ set worldEuler(val: THREE.Euler);
1230
+ get worldRotation(): THREE.Vector3;
1231
+ set worldRotation(val: THREE.Vector3);
1232
+ setWorldRotation(x: number, y: number, z: number, degrees?: boolean): void;
1233
+ private static _forward;
1234
+ get forward(): THREE.Vector3;
1235
+ private _eventListeners;
1236
+ addEventListener(type: string, listener: EventListener): void;
1237
+ removeEventListener(type: string, listener: EventListener): void;
1238
+ dispatchEvent(evt: Event): boolean;
1239
+ }
1240
+ class Behaviour extends Component {
1241
+ }
1242
+ export { Behaviour, Component, GameObject };
1243
+ }
1242
1244
  declare module "engine/engine_lightdata" {
1243
1245
  import { LightmapType } from "engine/extensions/NEEDLE_lightmaps";
1244
1246
  import { Texture } from "three";
@@ -2313,7 +2315,9 @@ declare module "engine-components/Collider" {
2313
2315
  import { Behaviour } from "engine-components/Component";
2314
2316
  import { Rigidbody } from "engine-components/RigidBody";
2315
2317
  import { Shape } from "cannon-es";
2316
- export class Collider extends Behaviour {
2318
+ import { ICollider } from "engine/engine_types";
2319
+ export class Collider extends Behaviour implements ICollider {
2320
+ get isCollider(): any;
2317
2321
  attachedRigidbody: Rigidbody | null;
2318
2322
  isTrigger: boolean;
2319
2323
  protected _shape: Shape | null;
@@ -2980,7 +2984,7 @@ declare module "engine/extensions/NEEDLE_deferred_texture" {
2980
2984
  declare module "engine-components/Renderer" {
2981
2985
  import { Behaviour } from "engine-components/Component";
2982
2986
  import * as THREE from "three";
2983
- import { Texture } from "three";
2987
+ import { Mesh, Texture } from "three";
2984
2988
  import { IRenderer } from "engine/engine_types";
2985
2989
  export { InstancingUtil } from "engine/engine_instancing";
2986
2990
  export class FieldWithDefault {
@@ -3011,6 +3015,7 @@ declare module "engine-components/Renderer" {
3011
3015
  renderOrder: number[] | undefined;
3012
3016
  allowOcclusionWhenDynamic: boolean;
3013
3017
  private _lightmaps?;
3018
+ get mesh(): Mesh | undefined;
3014
3019
  get material(): THREE.Material;
3015
3020
  set material(mat: THREE.Material);
3016
3021
  private _sharedMaterials;
@@ -3414,6 +3419,22 @@ declare module "engine-components/DragControls" {
3414
3419
  private onDragEnd;
3415
3420
  }
3416
3421
  }
3422
+ declare module "engine/engine_networking_utils" {
3423
+ export function isLocalNetwork(hostname?: string): boolean;
3424
+ }
3425
+ declare module "engine-components/Networking" {
3426
+ import { INetworkingWebsocketUrlProvider } from "engine/engine_networking";
3427
+ import { Behaviour } from "engine-components/Component";
3428
+ export class Networking extends Behaviour implements INetworkingWebsocketUrlProvider {
3429
+ url: string | null;
3430
+ urlParameterName: string | null;
3431
+ localhost: string | null;
3432
+ awake(): void;
3433
+ getWebsocketUrl(): string | null;
3434
+ static GetUrl(url: string, localhostFallback?: string | null): string;
3435
+ static IsLocalNetwork(hostname?: string): boolean;
3436
+ }
3437
+ }
3417
3438
  declare module "engine-components/DropListener" {
3418
3439
  import { Behaviour } from "engine-components/Component";
3419
3440
  export enum DropListenerEvents {
@@ -5208,7 +5229,6 @@ declare module "engine-components/codegen/components" {
5208
5229
  declare module "needle-engine" {
5209
5230
  import "engine/engine_element";
5210
5231
  import "engine/engine_setup";
5211
- import "./engine/codegen/register_types";
5212
5232
  export { GameObject, Behaviour } from "engine-components/Component";
5213
5233
  export { serializeable } from "engine/engine_serialization_decorator";
5214
5234
  export { Collision } from "engine/engine_types";
@@ -5279,6 +5299,7 @@ declare module "engine/extensions/extensions" {
5279
5299
  export function registerExtensions(loader: GLTFLoader, context: Context, sourceId: SourceIdentifier): void;
5280
5300
  }
5281
5301
  declare module "engine/engine_gltf_builtin_components" {
5302
+ import "./codegen/register_types";
5282
5303
  import { Component } from "engine-components/Component";
5283
5304
  import { Context } from "engine/engine_setup";
5284
5305
  import { SerializationContext } from "engine/engine_serialization_core";