@needle-tools/engine 2.35.5-pre → 2.37.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 (168) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/needle-engine.d.ts +312 -232
  3. package/dist/needle-engine.js +456 -437
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +81 -76
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/lib/engine/api.d.ts +1 -0
  8. package/lib/engine/api.js +1 -0
  9. package/lib/engine/api.js.map +1 -1
  10. package/lib/engine/debug/debug.d.ts +1 -0
  11. package/lib/engine/debug/debug.js +3 -0
  12. package/lib/engine/debug/debug.js.map +1 -1
  13. package/lib/engine/debug/debug_overlay.js +12 -1
  14. package/lib/engine/debug/debug_overlay.js.map +1 -1
  15. package/lib/engine/engine_element_loading.js +1 -1
  16. package/lib/engine/engine_element_loading.js.map +1 -1
  17. package/lib/engine/engine_gameobject.d.ts +1 -0
  18. package/lib/engine/engine_gameobject.js +15 -2
  19. package/lib/engine/engine_gameobject.js.map +1 -1
  20. package/lib/engine/engine_gltf_builtin_components.js +4 -0
  21. package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
  22. package/lib/engine/engine_mainloop_utils.d.ts +1 -1
  23. package/lib/engine/engine_mainloop_utils.js +7 -3
  24. package/lib/engine/engine_mainloop_utils.js.map +1 -1
  25. package/lib/engine/engine_physics.d.ts +49 -57
  26. package/lib/engine/engine_physics.js +464 -417
  27. package/lib/engine/engine_physics.js.map +1 -1
  28. package/lib/engine/engine_physics.types.d.ts +16 -0
  29. package/lib/engine/engine_physics.types.js +19 -0
  30. package/lib/engine/engine_physics.types.js.map +1 -0
  31. package/lib/engine/engine_serialization_core.d.ts +3 -0
  32. package/lib/engine/engine_serialization_core.js +19 -6
  33. package/lib/engine/engine_serialization_core.js.map +1 -1
  34. package/lib/engine/engine_setup.js +4 -2
  35. package/lib/engine/engine_setup.js.map +1 -1
  36. package/lib/engine/engine_time.d.ts +1 -0
  37. package/lib/engine/engine_time.js +1 -0
  38. package/lib/engine/engine_time.js.map +1 -1
  39. package/lib/engine/engine_types.d.ts +46 -26
  40. package/lib/engine/engine_types.js +24 -37
  41. package/lib/engine/engine_types.js.map +1 -1
  42. package/lib/engine/engine_typestore.d.ts +1 -0
  43. package/lib/engine/engine_typestore.js +1 -0
  44. package/lib/engine/engine_typestore.js.map +1 -1
  45. package/lib/engine/engine_util_decorator.d.ts +6 -0
  46. package/lib/engine/engine_util_decorator.js +54 -0
  47. package/lib/engine/engine_util_decorator.js.map +1 -0
  48. package/lib/engine/engine_utils.d.ts +1 -1
  49. package/lib/engine/engine_utils.js +2 -2
  50. package/lib/engine/engine_utils.js.map +1 -1
  51. package/lib/engine/extensions/NEEDLE_animator_controller_model.js.map +1 -1
  52. package/lib/engine/extensions/NEEDLE_gameobject_data.js +2 -0
  53. package/lib/engine/extensions/NEEDLE_gameobject_data.js.map +1 -1
  54. package/lib/engine/extensions/NEEDLE_techniques_webgl.js +5 -0
  55. package/lib/engine/extensions/NEEDLE_techniques_webgl.js.map +1 -1
  56. package/lib/engine-components/Animation.d.ts +5 -0
  57. package/lib/engine-components/Animation.js +14 -0
  58. package/lib/engine-components/Animation.js.map +1 -1
  59. package/lib/engine-components/AnimatorController.d.ts +1 -0
  60. package/lib/engine-components/AnimatorController.js +14 -7
  61. package/lib/engine-components/AnimatorController.js.map +1 -1
  62. package/lib/engine-components/BoxHelperComponent.d.ts +2 -2
  63. package/lib/engine-components/BoxHelperComponent.js +28 -9
  64. package/lib/engine-components/BoxHelperComponent.js.map +1 -1
  65. package/lib/engine-components/Collider.d.ts +7 -2
  66. package/lib/engine-components/Collider.js +27 -15
  67. package/lib/engine-components/Collider.js.map +1 -1
  68. package/lib/engine-components/Component.d.ts +8 -16
  69. package/lib/engine-components/Component.js +18 -117
  70. package/lib/engine-components/Component.js.map +1 -1
  71. package/lib/engine-components/DragControls.js +9 -6
  72. package/lib/engine-components/DragControls.js.map +1 -1
  73. package/lib/engine-components/GroundProjection.d.ts +2 -0
  74. package/lib/engine-components/GroundProjection.js +18 -6
  75. package/lib/engine-components/GroundProjection.js.map +1 -1
  76. package/lib/engine-components/NavMesh.d.ts +0 -5
  77. package/lib/engine-components/NavMesh.js +100 -10
  78. package/lib/engine-components/NavMesh.js.map +1 -1
  79. package/lib/engine-components/NestedGltf.js +2 -0
  80. package/lib/engine-components/NestedGltf.js.map +1 -1
  81. package/lib/engine-components/ReflectionProbe.d.ts +22 -0
  82. package/lib/engine-components/ReflectionProbe.js +134 -0
  83. package/lib/engine-components/ReflectionProbe.js.map +1 -0
  84. package/lib/engine-components/Renderer.d.ts +13 -2
  85. package/lib/engine-components/Renderer.js +96 -45
  86. package/lib/engine-components/Renderer.js.map +1 -1
  87. package/lib/engine-components/RigidBody.d.ts +40 -25
  88. package/lib/engine-components/RigidBody.js +253 -142
  89. package/lib/engine-components/RigidBody.js.map +1 -1
  90. package/lib/engine-components/SpatialTrigger.js +1 -1
  91. package/lib/engine-components/SpatialTrigger.js.map +1 -1
  92. package/lib/engine-components/SpectatorCamera.d.ts +1 -0
  93. package/lib/engine-components/SpectatorCamera.js +9 -2
  94. package/lib/engine-components/SpectatorCamera.js.map +1 -1
  95. package/lib/engine-components/SpringJoint.d.ts +0 -13
  96. package/lib/engine-components/SpringJoint.js +42 -41
  97. package/lib/engine-components/SpringJoint.js.map +1 -1
  98. package/lib/engine-components/VideoPlayer.js.map +1 -1
  99. package/lib/engine-components/WebARSessionRoot.d.ts +7 -7
  100. package/lib/engine-components/WebARSessionRoot.js +7 -7
  101. package/lib/engine-components/WebARSessionRoot.js.map +1 -1
  102. package/lib/engine-components/WebXR.d.ts +10 -8
  103. package/lib/engine-components/WebXR.js +50 -26
  104. package/lib/engine-components/WebXR.js.map +1 -1
  105. package/lib/engine-components/WebXRAvatar.d.ts +4 -5
  106. package/lib/engine-components/WebXRAvatar.js +9 -8
  107. package/lib/engine-components/WebXRAvatar.js.map +1 -1
  108. package/lib/engine-components/WebXRController.d.ts +21 -21
  109. package/lib/engine-components/WebXRController.js +90 -68
  110. package/lib/engine-components/WebXRController.js.map +1 -1
  111. package/lib/engine-components/WebXRGrabRendering.d.ts +3 -3
  112. package/lib/engine-components/WebXRGrabRendering.js +2 -2
  113. package/lib/engine-components/WebXRGrabRendering.js.map +1 -1
  114. package/lib/engine-components/WebXRSync.d.ts +8 -8
  115. package/lib/engine-components/WebXRSync.js +15 -15
  116. package/lib/engine-components/WebXRSync.js.map +1 -1
  117. package/lib/engine-components/codegen/components.d.ts +2 -3
  118. package/lib/engine-components/codegen/components.js +2 -3
  119. package/lib/engine-components/codegen/components.js.map +1 -1
  120. package/lib/engine-components/ui/EventSystem.d.ts +1 -0
  121. package/lib/engine-components/ui/EventSystem.js +21 -1
  122. package/lib/engine-components/ui/EventSystem.js.map +1 -1
  123. package/package.json +3 -4
  124. package/src/engine/api.ts +2 -1
  125. package/src/engine/codegen/register_types.js +291 -6
  126. package/src/engine/debug/debug.ts +4 -0
  127. package/src/engine/debug/debug_overlay.ts +9 -2
  128. package/src/engine/engine_element_loading.ts +1 -1
  129. package/src/engine/engine_gameobject.ts +19 -6
  130. package/src/engine/engine_gltf_builtin_components.ts +5 -1
  131. package/src/engine/engine_mainloop_utils.ts +7 -3
  132. package/src/engine/engine_physics.ts +508 -469
  133. package/src/engine/engine_physics.types.ts +19 -0
  134. package/src/engine/engine_serialization_core.ts +22 -8
  135. package/src/engine/engine_setup.ts +6 -2
  136. package/src/engine/engine_time.ts +2 -0
  137. package/src/engine/engine_types.ts +82 -55
  138. package/src/engine/engine_typestore.ts +2 -0
  139. package/src/engine/engine_util_decorator.ts +69 -0
  140. package/src/engine/engine_utils.ts +6 -5
  141. package/src/engine/extensions/EXT_texture_exr.js +1 -1
  142. package/src/engine/extensions/NEEDLE_animator_controller_model.ts +2 -1
  143. package/src/engine/extensions/NEEDLE_gameobject_data.ts +2 -0
  144. package/src/engine/extensions/NEEDLE_techniques_webgl.ts +7 -0
  145. package/src/engine-components/Animation.ts +14 -1
  146. package/src/engine-components/AnimatorController.ts +19 -9
  147. package/src/engine-components/BoxHelperComponent.ts +30 -9
  148. package/src/engine-components/Collider.ts +29 -29
  149. package/src/engine-components/Component.ts +26 -135
  150. package/src/engine-components/DragControls.ts +9 -5
  151. package/src/engine-components/GroundProjection.ts +22 -7
  152. package/src/engine-components/NavMesh.ts +114 -115
  153. package/src/engine-components/NestedGltf.ts +2 -0
  154. package/src/engine-components/ReflectionProbe.ts +141 -0
  155. package/src/engine-components/Renderer.ts +796 -737
  156. package/src/engine-components/RigidBody.ts +258 -149
  157. package/src/engine-components/SpatialTrigger.ts +1 -1
  158. package/src/engine-components/SpectatorCamera.ts +10 -2
  159. package/src/engine-components/SpringJoint.ts +41 -41
  160. package/src/engine-components/VideoPlayer.ts +1 -2
  161. package/src/engine-components/WebARSessionRoot.ts +16 -16
  162. package/src/engine-components/WebXR.ts +65 -50
  163. package/src/engine-components/WebXRAvatar.ts +16 -16
  164. package/src/engine-components/WebXRController.ts +143 -112
  165. package/src/engine-components/WebXRGrabRendering.ts +6 -6
  166. package/src/engine-components/WebXRSync.ts +20 -20
  167. package/src/engine-components/codegen/components.ts +2 -3
  168. package/src/engine-components/ui/EventSystem.ts +26 -3
@@ -1 +1 @@
1
- {"version":3,"file":"AnimatorController.js","sourceRoot":"","sources":["../../../engine-components/AnimatorController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnimatorController.js","sourceRoot":"","sources":["../../../engine-components/AnimatorController.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,11 @@ import { Behaviour } from "./Component";
2
2
  import * as THREE from "three";
3
3
  export declare class BoxHelperComponent extends Behaviour {
4
4
  private box;
5
- private testBox;
5
+ private static testBox;
6
6
  private _lastMatrixUpdateFrame;
7
7
  private static _position;
8
8
  private static _size;
9
- isInBox(obj: THREE.Object3D): boolean | undefined;
9
+ isInBox(obj: THREE.Object3D, scaleFactor?: number): boolean | undefined;
10
10
  intersects(box: THREE.Box3): boolean;
11
11
  updateBox(force?: boolean): THREE.Box3;
12
12
  private _helper;
@@ -6,11 +6,11 @@ import { getWorldPosition, getWorldScale } from "../engine/engine_three_utils";
6
6
  const gizmos = getParam("gizmos");
7
7
  export class BoxHelperComponent extends Behaviour {
8
8
  box = null;
9
- testBox = new THREE.Box3();
9
+ static testBox = new THREE.Box3();
10
10
  _lastMatrixUpdateFrame = -1;
11
11
  static _position = new THREE.Vector3();
12
12
  static _size = new THREE.Vector3(.01, .01, .01);
13
- isInBox(obj) {
13
+ isInBox(obj, scaleFactor) {
14
14
  if (!obj)
15
15
  return undefined;
16
16
  // if (!obj.geometry.boundingBox) obj.geometry.computeBoundingBox();
@@ -18,20 +18,36 @@ export class BoxHelperComponent extends Behaviour {
18
18
  if (!this.box) {
19
19
  this.box = new THREE.Box3();
20
20
  }
21
- this.updateBox(false);
22
- if (obj.type === "Mesh")
23
- this.testBox.setFromObject(obj);
21
+ if (obj.type === "Mesh") {
22
+ BoxHelperComponent.testBox.setFromObject(obj);
23
+ }
24
+ else if (obj.type === "Group") {
25
+ if (obj.children.length > 0) {
26
+ BoxHelperComponent.testBox.setFromCenterAndSize(BoxHelperComponent._position.set(0, 0, 0), BoxHelperComponent._size.set(0, 0, 0));
27
+ for (let i = 0; i < obj.children.length; i++) {
28
+ const ch = obj.children[i];
29
+ if (ch.type === "Mesh") {
30
+ BoxHelperComponent.testBox.expandByObject(obj);
31
+ }
32
+ }
33
+ }
34
+ }
24
35
  else {
25
36
  const wp = getWorldPosition(obj, BoxHelperComponent._position);
26
37
  const size = getWorldScale(obj, BoxHelperComponent._size);
27
- this.testBox.setFromCenterAndSize(wp, size);
38
+ if (scaleFactor !== undefined)
39
+ size.multiplyScalar(scaleFactor);
40
+ BoxHelperComponent.testBox.setFromCenterAndSize(wp, size);
28
41
  }
42
+ // console.log("Obj box:", obj.name, obj.uuid, BoxHelperComponent.testBox.getCenter(new THREE.Vector3()), BoxHelperComponent.testBox.getSize(new THREE.Vector3()),
43
+ // "\nTest box:", this.box.getCenter(new THREE.Vector3()), this.box.getSize(new THREE.Vector3()), this.context.time.frameCount);
29
44
  // this.tp.copy(obj.geometry.boundingBox);
30
45
  // // this.tp.setFromCenterAndSize(obj.position, obj.scale);
31
46
  // this.tp.applyMatrix4(obj.matrixWorld);
32
47
  // console.log(this.tp);
33
48
  // console.log(this.box?.min, this.box?.max, this.tp.min, this.tp.max);
34
- return this.box?.intersectsBox(this.testBox);
49
+ this.updateBox();
50
+ return this.box?.intersectsBox(BoxHelperComponent.testBox);
35
51
  }
36
52
  intersects(box) {
37
53
  if (!box)
@@ -43,9 +59,12 @@ export class BoxHelperComponent extends Behaviour {
43
59
  this.box = new THREE.Box3();
44
60
  }
45
61
  if (force || this.context.time.frameCount != this._lastMatrixUpdateFrame) {
62
+ const firstUpdate = this._lastMatrixUpdateFrame < 0;
46
63
  this._lastMatrixUpdateFrame = this.context.time.frameCount;
47
- this.box.setFromCenterAndSize(new THREE.Vector3(0, 0, 0), new THREE.Vector3(1, 1, 1));
48
- this.box.applyMatrix4(this.gameObject.matrixWorld);
64
+ const updateParents = firstUpdate; // updating parents seems to cause falsely calculated positions sometimes?
65
+ const wp = getWorldPosition(this.gameObject, BoxHelperComponent._position, updateParents);
66
+ const size = getWorldScale(this.gameObject, BoxHelperComponent._size);
67
+ this.box.setFromCenterAndSize(wp, size);
49
68
  }
50
69
  return this.box;
51
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BoxHelperComponent.js","sourceRoot":"","sources":["../../../engine-components/BoxHelperComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BoxHelperComponent.js","sourceRoot":"","sources":["../../../engine-components/BoxHelperComponent.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
1
  import { Behaviour } from "./Component";
2
2
  import { Rigidbody } from "./RigidBody";
3
- import { Shape } from "cannon-es";
3
+ import { Mesh } from "three";
4
4
  import { ICollider } from "../engine/engine_types";
5
5
  export declare class Collider extends Behaviour implements ICollider {
6
6
  get isCollider(): any;
7
7
  attachedRigidbody: Rigidbody | null;
8
8
  isTrigger: boolean;
9
- protected _shape: Shape | null;
10
9
  awake(): void;
11
10
  start(): void;
12
11
  onEnable(): void;
@@ -22,3 +21,9 @@ export declare class BoxCollider extends Collider {
22
21
  center: THREE.Vector3;
23
22
  onEnable(): void;
24
23
  }
24
+ export declare class MeshCollider extends Collider {
25
+ sharedMesh?: Mesh;
26
+ convex: boolean;
27
+ awake(): void;
28
+ onEnable(): void;
29
+ }
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { Behaviour } from "./Component";
8
8
  import { Rigidbody } from "./RigidBody";
9
9
  import { serializeable } from "../engine/engine_serialization_decorator";
10
- import { Vector3 } from "three";
10
+ import { Mesh, Vector3 } from "three";
11
11
  import { registerColliderProvider } from "../engine/engine_physics";
12
12
  import { getComponentInChildren } from "../engine/engine_components";
13
13
  class ColliderProvider {
@@ -22,10 +22,10 @@ export class Collider extends Behaviour {
22
22
  }
23
23
  attachedRigidbody = null;
24
24
  isTrigger = false;
25
- _shape = null;
26
25
  awake() {
27
26
  super.awake();
28
- this._shape = null;
27
+ if (!this.attachedRigidbody)
28
+ this.attachedRigidbody = this.gameObject.getComponentInParent(Rigidbody);
29
29
  }
30
30
  start() {
31
31
  if (!this.attachedRigidbody)
@@ -37,8 +37,7 @@ export class Collider extends Behaviour {
37
37
  this.attachedRigidbody = this.gameObject.getComponentInParent(Rigidbody);
38
38
  }
39
39
  onDisable() {
40
- if (this._shape) {
41
- }
40
+ this.context.physics.removeBody(this);
42
41
  }
43
42
  }
44
43
  __decorate([
@@ -52,8 +51,7 @@ export class SphereCollider extends Collider {
52
51
  center = new Vector3(0, 0, 0);
53
52
  onEnable() {
54
53
  super.onEnable();
55
- if (!this._shape)
56
- this._shape = this.context.physics.addSphereCollider(this.gameObject, this.center, this.radius, this.attachedRigidbody);
54
+ this.context.physics.addSphereCollider(this, this.center, this.radius);
57
55
  }
58
56
  }
59
57
  __decorate([
@@ -67,8 +65,7 @@ export class BoxCollider extends Collider {
67
65
  center = new Vector3(0, 0, 0);
68
66
  onEnable() {
69
67
  super.onEnable();
70
- if (!this._shape)
71
- this._shape = this.context.physics.addBoxCollider(this.gameObject, this.isTrigger, this.center, this.size, this.attachedRigidbody);
68
+ this.context.physics.addBoxCollider(this, this.center, this.size);
72
69
  }
73
70
  }
74
71
  __decorate([
@@ -77,10 +74,25 @@ __decorate([
77
74
  __decorate([
78
75
  serializeable(Vector3)
79
76
  ], BoxCollider.prototype, "center", void 0);
80
- // export class MeshCollider extends Collider {
81
- // onEnable() {
82
- // if (this.enabled)
83
- // this.context.physics.addMeshCollider(this.gameObject);
84
- // }
85
- // }
77
+ export class MeshCollider extends Collider {
78
+ sharedMesh;
79
+ convex = false;
80
+ awake() {
81
+ console.log(this);
82
+ }
83
+ onEnable() {
84
+ super.onEnable();
85
+ if (!this.sharedMesh?.isMesh) {
86
+ // HACK using the renderer mesh
87
+ if (this.gameObject instanceof Mesh) {
88
+ this.sharedMesh = this.gameObject;
89
+ }
90
+ }
91
+ if (this.sharedMesh?.isMesh)
92
+ this.context.physics.addMeshCollider(this, this.sharedMesh, this.convex);
93
+ }
94
+ }
95
+ __decorate([
96
+ serializeable()
97
+ ], MeshCollider.prototype, "convex", void 0);
86
98
  //# sourceMappingURL=Collider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Collider.js","sourceRoot":"","sources":["../../../engine-components/Collider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Collider.js","sourceRoot":"","sources":["../../../engine-components/Collider.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import * as THREE from "three";
2
2
  import { Context, FrameEvent } from "../engine/engine_setup";
3
3
  import { Object3D } from "three";
4
- import { ConstructorConcrete, SourceIdentifier, IComponent, IGameObject, Constructor, GuidsMap, Collision } from "../engine/engine_types";
4
+ import { ConstructorConcrete, SourceIdentifier, IComponent, IGameObject, Constructor, GuidsMap, Collision, ICollider } from "../engine/engine_types";
5
5
  import { InstantiateOptions, HideFlags } from "../engine/engine_gameobject";
6
6
  declare abstract class GameObject extends THREE.Object3D implements THREE.Object3D, IGameObject {
7
7
  guid: string | undefined;
8
- static setActive(go: THREE.Object3D, active: boolean, processStart?: boolean): void;
8
+ static setActive(go: THREE.Object3D, active: boolean, processStart?: boolean, setVisible?: boolean): void;
9
9
  static isActiveSelf(go: THREE.Object3D): boolean;
10
10
  static isActiveInHierarchy(go: THREE.Object3D): boolean;
11
11
  static markAsInstancedRendered(go: THREE.Object3D, instanced: boolean): void;
@@ -77,6 +77,7 @@ declare class Component implements IComponent, EventTarget {
77
77
  onEnable(): void;
78
78
  onDisable(): void;
79
79
  onDestroy(): void;
80
+ onValidate?(prop?: string): void;
80
81
  start?(): void;
81
82
  earlyUpdate?(): void;
82
83
  update?(): void;
@@ -85,11 +86,10 @@ declare class Component implements IComponent, EventTarget {
85
86
  onAfterRender?(): void;
86
87
  onCollisionEnter?(col: Collision): any;
87
88
  onCollisionExit?(col: Collision): any;
88
- onCollisionExitRaw?(col: Collision): any;
89
89
  onCollisionStay?(col: Collision): any;
90
- onTriggerEnter?(col: Collision): any;
91
- onTriggerStay?(col: Collision): any;
92
- onTriggerExit?(col: Collision): any;
90
+ onTriggerEnter?(col: ICollider): any;
91
+ onTriggerStay?(col: ICollider): any;
92
+ onTriggerExit?(col: ICollider): any;
93
93
  startCoroutine(routine: Generator, evt?: FrameEvent): Generator;
94
94
  stopCoroutine(routine: Generator, evt?: FrameEvent): void;
95
95
  get destroyed(): boolean;
@@ -99,6 +99,8 @@ declare class Component implements IComponent, EventTarget {
99
99
  protected __didEnable: boolean;
100
100
  protected __isEnabled: boolean | undefined;
101
101
  private __destroyed;
102
+ get __internalDidAwakeAndStart(): boolean;
103
+ constructor();
102
104
  __internalNewInstanceCreated(): void;
103
105
  __internalAwake(): void;
104
106
  __internalStart(): void;
@@ -107,16 +109,6 @@ declare class Component implements IComponent, EventTarget {
107
109
  __internalDestroy(): void;
108
110
  get enabled(): boolean;
109
111
  set enabled(val: boolean);
110
- constructor();
111
- private _collisionExitRoutine;
112
- private _collisions;
113
- private _triggerExitRoutine;
114
- private _triggerCollisions;
115
- get collisionsCount(): number;
116
- private __internalResetsCachedPhysicsData;
117
- __internalHandleCollision(col: Collision, isTriggerCollision: boolean): void;
118
- __internalHandleExitCollisionEvent(obj: Object3D, isTriggerCollision: boolean): void;
119
- private __waitForCollisionExit;
120
112
  private static _worldPositionBuffer;
121
113
  private static _worldQuaternionBuffer;
122
114
  private static _worldEulerBuffer;
@@ -6,7 +6,7 @@ import { Context, FrameEvent } from "../engine/engine_setup";
6
6
  import * as main from "../engine/engine_mainloop_utils";
7
7
  import { syncDestroy, syncInstantiate } from "../engine/engine_networking_instantiate";
8
8
  import { addNewComponentInstance, destroyComponentInstance, findObjectOfType, findObjectsOfType, getComponent, getComponentInChildren, getComponentInParent, getComponents, getComponentsInChildren, getComponentsInParent, getOrAddComponent, moveComponentInstance, removeComponent } from "../engine/engine_components";
9
- import { findByGuid, destroy, instantiate, foreachComponent, markAsInstancedRendered, isActiveInHierarchy, isActiveSelf, isUsingInstancing } from "../engine/engine_gameobject";
9
+ import { findByGuid, destroy, instantiate, foreachComponent, markAsInstancedRendered, isActiveInHierarchy, isActiveSelf, isUsingInstancing, setActive } from "../engine/engine_gameobject";
10
10
  // export interface ISerializationCallbackReceiver {
11
11
  // onBeforeSerialize?(): object | void;
12
12
  // onAfterSerialize?();
@@ -16,11 +16,11 @@ import { findByGuid, destroy, instantiate, foreachComponent, markAsInstancedRend
16
16
  // }
17
17
  class GameObject extends THREE.Object3D {
18
18
  guid;
19
- static setActive(go, active, processStart = true) {
19
+ static setActive(go, active, processStart = true, setVisible = true) {
20
20
  if (!go)
21
21
  return;
22
- go.visible = active;
23
- main.updateActiveInHierarchyWithoutEventCall(go);
22
+ setActive(go, active, setVisible);
23
+ main.updateIsActive(go);
24
24
  if (active && processStart)
25
25
  main.processStart(Context.Current, go);
26
26
  }
@@ -69,10 +69,13 @@ class GameObject extends THREE.Object3D {
69
69
  context = Context.Current;
70
70
  }
71
71
  parent.add(instance);
72
- main.updateActiveInHierarchyWithoutEventCall(instance);
72
+ setActive(instance, true);
73
+ main.updateIsActive(instance);
73
74
  if (context) {
74
75
  GameObject.foreachComponent(instance, (comp) => {
75
76
  main.addScriptToArrays(comp, context);
77
+ if (comp.__internalDidAwakeAndStart)
78
+ return;
76
79
  if (context.new_script_start.includes(comp) === false) {
77
80
  context.new_script_start.push(comp);
78
81
  }
@@ -89,6 +92,8 @@ class GameObject extends THREE.Object3D {
89
92
  if (!instance)
90
93
  return;
91
94
  instance.parent?.remove(instance);
95
+ setActive(instance, false);
96
+ main.updateIsActive(instance);
92
97
  GameObject.foreachComponent(instance, (comp) => {
93
98
  main.processRemoveFromScene(comp);
94
99
  }, true);
@@ -283,13 +288,18 @@ class Component {
283
288
  __didEnable = false;
284
289
  __isEnabled = undefined;
285
290
  __destroyed = false;
291
+ get __internalDidAwakeAndStart() { return this.__didAwake && this.__didStart; }
292
+ constructor() {
293
+ // super();
294
+ this.__internalNewInstanceCreated();
295
+ }
286
296
  __internalNewInstanceCreated() {
287
297
  this.__didAwake = false;
288
298
  this.__didStart = false;
289
299
  this.__didEnable = false;
290
300
  this.__isEnabled = undefined;
291
301
  this.__destroyed = false;
292
- this.__internalResetsCachedPhysicsData();
302
+ // this.__internalResetsCachedPhysicsData();
293
303
  }
294
304
  __internalAwake() {
295
305
  if (this.__didAwake)
@@ -320,9 +330,9 @@ class Component {
320
330
  if (!this.__didEnable)
321
331
  return;
322
332
  this.__didEnable = false;
323
- this._collisionExitRoutine = undefined;
333
+ // this._collisionExitRoutine = undefined;
324
334
  this.onDisable();
325
- this._collisions?.clear();
335
+ // this._collisions?.clear();
326
336
  // if we do this after processing the callback
327
337
  this.__isEnabled = false;
328
338
  }
@@ -359,115 +369,6 @@ class Component {
359
369
  this.__internalDisable();
360
370
  }
361
371
  }
362
- constructor() {
363
- // super();
364
- this.__internalNewInstanceCreated();
365
- }
366
- _collisionExitRoutine;
367
- _collisions = null;
368
- _triggerExitRoutine;
369
- _triggerCollisions = null;
370
- get collisionsCount() { return this._collisions?.size ?? 0; }
371
- __internalResetsCachedPhysicsData() {
372
- this._collisionExitRoutine = null;
373
- this._collisions = null;
374
- this._triggerExitRoutine = null;
375
- this._triggerCollisions = null;
376
- }
377
- __internalHandleCollision(col, isTriggerCollision) {
378
- if (isTriggerCollision) {
379
- if (!this.onTriggerEnter && !this.onTriggerStay && !this.onTriggerExit)
380
- return;
381
- }
382
- else {
383
- if (!this.onCollisionEnter && !this.onCollisionStay && !this.onCollisionExit)
384
- return;
385
- }
386
- const otherObject = col.gameObject;
387
- // lazily create the maps
388
- if (isTriggerCollision && !this._triggerCollisions)
389
- this._triggerCollisions = new Map();
390
- else if (!this._collisions)
391
- this._collisions = new Map();
392
- // select the correct map
393
- const collection = isTriggerCollision ? this._triggerCollisions : this._collisions;
394
- if (collection.has(otherObject)) {
395
- const cur = collection.get(otherObject);
396
- // console.log("STAY", this.name, this.context.time.frameCount)
397
- // cur.exitFrame = undefined;
398
- cur.frame = this.context.time.frameCount;
399
- cur.col = col;
400
- if (isTriggerCollision)
401
- this.onTriggerStay?.(col);
402
- else
403
- this.onCollisionStay?.call(this, col);
404
- }
405
- else {
406
- // console.log("START", this.name);
407
- const entry = { col, frame: this.context.time.frameCount };
408
- collection.set(otherObject, entry);
409
- if (isTriggerCollision)
410
- this.onTriggerEnter?.(col);
411
- else
412
- this.onCollisionEnter?.call(this, col);
413
- }
414
- }
415
- __internalHandleExitCollisionEvent(obj, isTriggerCollision) {
416
- if (isTriggerCollision) {
417
- if (!this._triggerCollisions)
418
- return;
419
- }
420
- else {
421
- if (!this._collisions)
422
- return;
423
- }
424
- const collection = isTriggerCollision ? this._triggerCollisions : this._collisions;
425
- const collision = collection.get(obj);
426
- if (!collision)
427
- return;
428
- collision.exitFrame = this.context.time.frameCount;
429
- // console.log("EXIT col", this.name, this.context.time.frameCount);
430
- // if (this.onCollisionExit !== undefined)
431
- this.__waitForCollisionExit(isTriggerCollision);
432
- if (!isTriggerCollision)
433
- this.onCollisionExitRaw?.call(this, collision.col);
434
- // this._collisions.delete(obj);
435
- }
436
- __waitForCollisionExit(isTriggerCollision) {
437
- const routine = isTriggerCollision ? this._triggerExitRoutine : this._collisionExitRoutine;
438
- if (routine)
439
- return;
440
- const collection = isTriggerCollision ? this._triggerCollisions : this._collisions;
441
- const self = this;
442
- const frames = 10;
443
- function* delayedExitRoutine() {
444
- while (collection && collection.size > 0) {
445
- for (let other of collection.keys()) {
446
- const entry = collection.get(other);
447
- if (entry.frame !== undefined && self.context.time.frameCount - entry.frame >= frames) {
448
- // console.log("EXIT real", self.name, entry.col.gameObject.name, collection);
449
- collection.delete(other);
450
- if (isTriggerCollision)
451
- self.onTriggerExit?.(entry.col);
452
- else
453
- self.onCollisionExit?.call(self, entry.col);
454
- }
455
- }
456
- for (let i = 0; i < frames; i++)
457
- yield;
458
- }
459
- if (isTriggerCollision)
460
- self._triggerExitRoutine = undefined;
461
- else
462
- self._collisionExitRoutine = null;
463
- // console.log("DONE", self.name);
464
- }
465
- const newRoutine = this.startCoroutine(delayedExitRoutine(), FrameEvent.OnAfterRender);
466
- if (isTriggerCollision)
467
- this._triggerExitRoutine = newRoutine;
468
- else
469
- this._collisionExitRoutine = newRoutine;
470
- }
471
372
  // TODO move this to threeutils
472
373
  // we need a copy for modifying the values to local space
473
374
  static _worldPositionBuffer = new THREE.Vector3();