@needle-tools/engine 5.1.0-alpha.3 → 5.1.0-alpha.5

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 (218) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/SKILL.md +4 -1
  3. package/components.needle.json +1 -1
  4. package/dist/{needle-engine.bundle-DF01sSGQ.js → needle-engine.bundle-C-LG00ZZ.js} +10681 -10100
  5. package/dist/needle-engine.bundle-D7tzaiYE.min.js +1733 -0
  6. package/dist/{needle-engine.bundle-C-ixARur.umd.cjs → needle-engine.bundle-OPkPmdUM.umd.cjs} +161 -161
  7. package/dist/needle-engine.d.ts +1349 -317
  8. package/dist/needle-engine.js +556 -555
  9. package/dist/needle-engine.min.js +1 -1
  10. package/dist/needle-engine.umd.cjs +1 -1
  11. package/dist/three.js +1 -0
  12. package/dist/three.min.js +21 -21
  13. package/dist/three.umd.cjs +16 -16
  14. package/lib/engine/api.d.ts +5 -0
  15. package/lib/engine/api.js +4 -0
  16. package/lib/engine/api.js.map +1 -1
  17. package/lib/engine/codegen/register_types.js +10 -18
  18. package/lib/engine/codegen/register_types.js.map +1 -1
  19. package/lib/engine/engine_camera.fit.js +16 -4
  20. package/lib/engine/engine_camera.fit.js.map +1 -1
  21. package/lib/engine/engine_context.d.ts +20 -7
  22. package/lib/engine/engine_context.js +31 -15
  23. package/lib/engine/engine_context.js.map +1 -1
  24. package/lib/engine/engine_context_eventbus.d.ts +47 -0
  25. package/lib/engine/engine_context_eventbus.js +47 -0
  26. package/lib/engine/engine_context_eventbus.js.map +1 -0
  27. package/lib/engine/engine_disposable.d.ts +172 -0
  28. package/lib/engine/engine_disposable.js +136 -0
  29. package/lib/engine/engine_disposable.js.map +1 -0
  30. package/lib/engine/engine_gameobject.d.ts +1 -10
  31. package/lib/engine/engine_gameobject.js +20 -118
  32. package/lib/engine/engine_gameobject.js.map +1 -1
  33. package/lib/engine/engine_gltf_builtin_components.js +7 -69
  34. package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
  35. package/lib/engine/engine_input.d.ts +23 -4
  36. package/lib/engine/engine_input.js +2 -1
  37. package/lib/engine/engine_input.js.map +1 -1
  38. package/lib/engine/engine_instantiate_resolve.d.ts +42 -0
  39. package/lib/engine/engine_instantiate_resolve.js +372 -0
  40. package/lib/engine/engine_instantiate_resolve.js.map +1 -0
  41. package/lib/engine/engine_mainloop_utils.js +2 -2
  42. package/lib/engine/engine_mainloop_utils.js.map +1 -1
  43. package/lib/engine/engine_networking.d.ts +51 -37
  44. package/lib/engine/engine_networking.js +132 -82
  45. package/lib/engine/engine_networking.js.map +1 -1
  46. package/lib/engine/engine_networking.transport.websocket.d.ts +15 -0
  47. package/lib/engine/engine_networking.transport.websocket.js +38 -0
  48. package/lib/engine/engine_networking.transport.websocket.js.map +1 -0
  49. package/lib/engine/engine_networking_instantiate.js +2 -2
  50. package/lib/engine/engine_networking_instantiate.js.map +1 -1
  51. package/lib/engine/engine_networking_types.d.ts +39 -1
  52. package/lib/engine/engine_networking_types.js +7 -0
  53. package/lib/engine/engine_networking_types.js.map +1 -1
  54. package/lib/engine/engine_physics_rapier.d.ts +21 -3
  55. package/lib/engine/engine_physics_rapier.js +94 -25
  56. package/lib/engine/engine_physics_rapier.js.map +1 -1
  57. package/lib/engine/engine_serialization_builtin_serializer.js +1 -5
  58. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  59. package/lib/engine/engine_serialization_core.d.ts +1 -0
  60. package/lib/engine/engine_serialization_core.js +7 -0
  61. package/lib/engine/engine_serialization_core.js.map +1 -1
  62. package/lib/engine/engine_types.d.ts +29 -11
  63. package/lib/engine/engine_types.js +1 -1
  64. package/lib/engine/engine_types.js.map +1 -1
  65. package/lib/engine/engine_util_decorator.js +7 -2
  66. package/lib/engine/engine_util_decorator.js.map +1 -1
  67. package/lib/engine/engine_utils.d.ts +1 -1
  68. package/lib/engine/engine_utils.js +19 -5
  69. package/lib/engine/engine_utils.js.map +1 -1
  70. package/lib/engine-components/AnimationBuilder.d.ts +158 -0
  71. package/lib/engine-components/AnimationBuilder.js +305 -0
  72. package/lib/engine-components/AnimationBuilder.js.map +1 -0
  73. package/lib/engine-components/Animator.d.ts +6 -0
  74. package/lib/engine-components/Animator.js +23 -13
  75. package/lib/engine-components/Animator.js.map +1 -1
  76. package/lib/engine-components/AnimatorController.builder.d.ts +191 -0
  77. package/lib/engine-components/AnimatorController.builder.js +263 -0
  78. package/lib/engine-components/AnimatorController.builder.js.map +1 -0
  79. package/lib/engine-components/AnimatorController.d.ts +2 -119
  80. package/lib/engine-components/AnimatorController.js +33 -232
  81. package/lib/engine-components/AnimatorController.js.map +1 -1
  82. package/lib/engine-components/Collider.d.ts +18 -9
  83. package/lib/engine-components/Collider.js +61 -14
  84. package/lib/engine-components/Collider.js.map +1 -1
  85. package/lib/engine-components/Component.d.ts +72 -9
  86. package/lib/engine-components/Component.js +114 -10
  87. package/lib/engine-components/Component.js.map +1 -1
  88. package/lib/engine-components/ContactShadows.d.ts +1 -0
  89. package/lib/engine-components/ContactShadows.js +14 -1
  90. package/lib/engine-components/ContactShadows.js.map +1 -1
  91. package/lib/engine-components/DragControls.js +0 -7
  92. package/lib/engine-components/DragControls.js.map +1 -1
  93. package/lib/engine-components/DropListener.js +3 -0
  94. package/lib/engine-components/DropListener.js.map +1 -1
  95. package/lib/engine-components/EventList.d.ts +31 -9
  96. package/lib/engine-components/EventList.js +37 -76
  97. package/lib/engine-components/EventList.js.map +1 -1
  98. package/lib/engine-components/Joints.d.ts +4 -2
  99. package/lib/engine-components/Joints.js +19 -3
  100. package/lib/engine-components/Joints.js.map +1 -1
  101. package/lib/engine-components/Light.js +9 -1
  102. package/lib/engine-components/Light.js.map +1 -1
  103. package/lib/engine-components/OrbitControls.d.ts +0 -2
  104. package/lib/engine-components/OrbitControls.js +14 -1
  105. package/lib/engine-components/OrbitControls.js.map +1 -1
  106. package/lib/engine-components/RigidBody.d.ts +12 -4
  107. package/lib/engine-components/RigidBody.js +18 -4
  108. package/lib/engine-components/RigidBody.js.map +1 -1
  109. package/lib/engine-components/SceneSwitcher.js +3 -0
  110. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  111. package/lib/engine-components/api.d.ts +2 -1
  112. package/lib/engine-components/api.js +2 -1
  113. package/lib/engine-components/api.js.map +1 -1
  114. package/lib/engine-components/codegen/components.d.ts +7 -13
  115. package/lib/engine-components/codegen/components.js +7 -13
  116. package/lib/engine-components/codegen/components.js.map +1 -1
  117. package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.d.ts +1 -1
  118. package/lib/engine-components/timeline/PlayableDirector.d.ts +21 -11
  119. package/lib/engine-components/timeline/PlayableDirector.js +75 -67
  120. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  121. package/lib/engine-components/timeline/SignalAsset.d.ts +3 -1
  122. package/lib/engine-components/timeline/SignalAsset.js +1 -0
  123. package/lib/engine-components/timeline/SignalAsset.js.map +1 -1
  124. package/lib/engine-components/timeline/TimelineBuilder.d.ts +413 -0
  125. package/lib/engine-components/timeline/TimelineBuilder.js +506 -0
  126. package/lib/engine-components/timeline/TimelineBuilder.js.map +1 -0
  127. package/lib/engine-components/timeline/TimelineModels.d.ts +2 -1
  128. package/lib/engine-components/timeline/TimelineModels.js +3 -0
  129. package/lib/engine-components/timeline/TimelineModels.js.map +1 -1
  130. package/lib/engine-components/timeline/TimelineTracks.d.ts +37 -6
  131. package/lib/engine-components/timeline/TimelineTracks.js +92 -26
  132. package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
  133. package/lib/engine-components/timeline/index.d.ts +2 -1
  134. package/lib/engine-components/timeline/index.js +2 -0
  135. package/lib/engine-components/timeline/index.js.map +1 -1
  136. package/lib/engine-components/web/CursorFollow.d.ts +0 -1
  137. package/lib/engine-components/web/CursorFollow.js +0 -1
  138. package/lib/engine-components/web/CursorFollow.js.map +1 -1
  139. package/package.json +2 -83
  140. package/plugins/common/cloud.js +6 -1
  141. package/plugins/common/license.js +5 -2
  142. package/plugins/common/worker.js +9 -4
  143. package/plugins/vite/dependencies.js +1 -11
  144. package/plugins/vite/dependency-watcher.js +2 -2
  145. package/plugins/vite/editor-connection.js +3 -3
  146. package/plugins/vite/license.js +19 -1
  147. package/plugins/vite/reload.js +1 -1
  148. package/plugins/vite/server.js +2 -1
  149. package/src/engine/api.ts +7 -0
  150. package/src/engine/codegen/register_types.ts +10 -18
  151. package/src/engine/engine_camera.fit.ts +15 -4
  152. package/src/engine/engine_context.ts +32 -16
  153. package/src/engine/engine_context_eventbus.ts +73 -0
  154. package/src/engine/engine_disposable.ts +214 -0
  155. package/src/engine/engine_gameobject.ts +52 -157
  156. package/src/engine/engine_gltf_builtin_components.ts +7 -76
  157. package/src/engine/engine_input.ts +27 -6
  158. package/src/engine/engine_instantiate_resolve.ts +407 -0
  159. package/src/engine/engine_mainloop_utils.ts +2 -2
  160. package/src/engine/engine_networking.transport.websocket.ts +45 -0
  161. package/src/engine/engine_networking.ts +161 -137
  162. package/src/engine/engine_networking_instantiate.ts +2 -2
  163. package/src/engine/engine_networking_types.ts +41 -1
  164. package/src/engine/engine_physics_rapier.ts +102 -33
  165. package/src/engine/engine_serialization_builtin_serializer.ts +1 -6
  166. package/src/engine/engine_serialization_core.ts +9 -0
  167. package/src/engine/engine_types.ts +46 -27
  168. package/src/engine/engine_util_decorator.ts +7 -2
  169. package/src/engine/engine_utils.ts +16 -5
  170. package/src/engine-components/AnimationBuilder.ts +472 -0
  171. package/src/engine-components/Animator.ts +24 -12
  172. package/src/engine-components/AnimatorController.builder.ts +387 -0
  173. package/src/engine-components/AnimatorController.ts +20 -291
  174. package/src/engine-components/Collider.ts +66 -18
  175. package/src/engine-components/Component.ts +118 -20
  176. package/src/engine-components/ContactShadows.ts +15 -1
  177. package/src/engine-components/DragControls.ts +0 -9
  178. package/src/engine-components/DropListener.ts +3 -0
  179. package/src/engine-components/EventList.ts +45 -83
  180. package/src/engine-components/Joints.ts +20 -4
  181. package/src/engine-components/Light.ts +10 -2
  182. package/src/engine-components/OrbitControls.ts +16 -5
  183. package/src/engine-components/RigidBody.ts +18 -4
  184. package/src/engine-components/SceneSwitcher.ts +3 -0
  185. package/src/engine-components/api.ts +2 -1
  186. package/src/engine-components/codegen/components.ts +7 -13
  187. package/src/engine-components/timeline/PlayableDirector.ts +83 -81
  188. package/src/engine-components/timeline/SignalAsset.ts +4 -1
  189. package/src/engine-components/timeline/TimelineBuilder.ts +824 -0
  190. package/src/engine-components/timeline/TimelineModels.ts +5 -1
  191. package/src/engine-components/timeline/TimelineTracks.ts +96 -27
  192. package/src/engine-components/timeline/index.ts +2 -1
  193. package/src/engine-components/web/CursorFollow.ts +0 -1
  194. package/dist/needle-engine.bundle-CHmXdnE1.min.js +0 -1733
  195. package/lib/engine-components/AvatarLoader.d.ts +0 -80
  196. package/lib/engine-components/AvatarLoader.js +0 -232
  197. package/lib/engine-components/AvatarLoader.js.map +0 -1
  198. package/lib/engine-components/avatar/AvatarBlink_Simple.d.ts +0 -11
  199. package/lib/engine-components/avatar/AvatarBlink_Simple.js +0 -77
  200. package/lib/engine-components/avatar/AvatarBlink_Simple.js.map +0 -1
  201. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.d.ts +0 -14
  202. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js +0 -69
  203. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js.map +0 -1
  204. package/lib/engine-components/avatar/Avatar_Brain_LookAt.d.ts +0 -29
  205. package/lib/engine-components/avatar/Avatar_Brain_LookAt.js +0 -122
  206. package/lib/engine-components/avatar/Avatar_Brain_LookAt.js.map +0 -1
  207. package/lib/engine-components/avatar/Avatar_MouthShapes.d.ts +0 -15
  208. package/lib/engine-components/avatar/Avatar_MouthShapes.js +0 -80
  209. package/lib/engine-components/avatar/Avatar_MouthShapes.js.map +0 -1
  210. package/lib/engine-components/avatar/Avatar_MustacheShake.d.ts +0 -9
  211. package/lib/engine-components/avatar/Avatar_MustacheShake.js +0 -30
  212. package/lib/engine-components/avatar/Avatar_MustacheShake.js.map +0 -1
  213. package/src/engine-components/AvatarLoader.ts +0 -264
  214. package/src/engine-components/avatar/AvatarBlink_Simple.ts +0 -70
  215. package/src/engine-components/avatar/AvatarEyeLook_Rotation.ts +0 -64
  216. package/src/engine-components/avatar/Avatar_Brain_LookAt.ts +0 -140
  217. package/src/engine-components/avatar/Avatar_MouthShapes.ts +0 -84
  218. package/src/engine-components/avatar/Avatar_MustacheShake.ts +0 -32
@@ -84,6 +84,36 @@ export class Collider extends Behaviour {
84
84
  * The layers that this collider will interact with. Used for filtering collision detection.
85
85
  */
86
86
  filter;
87
+ /**
88
+ * The density of the collider, used for automatic mass calculation when the attached {@link Rigidbody} has `autoMass` enabled.
89
+ * Rapier computes mass from density using the real-world formula: `mass = density × volume`.
90
+ * The volume is derived from the collider shape (sphere, box, capsule, or convex hull).
91
+ *
92
+ * Reference values (relative to water = 1.0):
93
+ * - Wood: 0.5–0.9
94
+ * - Water: 1.0 (engine default)
95
+ * - Rubber: 1.2
96
+ * - Steel: 7.8
97
+ *
98
+ * @default undefined — uses the physics engine default of 1.0
99
+ */
100
+ density;
101
+ /** @internal */
102
+ _propertiesDirty = false;
103
+ /** @internal */
104
+ onValidate(_property) {
105
+ if (this.activeAndEnabled) {
106
+ if (_property === "sharedMaterial") {
107
+ this.updatePhysicsMaterial();
108
+ }
109
+ else {
110
+ this.updateProperties();
111
+ }
112
+ }
113
+ else {
114
+ this._propertiesDirty = true;
115
+ }
116
+ }
87
117
  /** @internal */
88
118
  awake() {
89
119
  super.awake();
@@ -141,17 +171,25 @@ __decorate([
141
171
  serializable(Rigidbody)
142
172
  ], Collider.prototype, "attachedRigidbody", void 0);
143
173
  __decorate([
174
+ validate(),
144
175
  serializable()
145
176
  ], Collider.prototype, "isTrigger", void 0);
146
177
  __decorate([
178
+ validate(),
147
179
  serializable()
148
180
  ], Collider.prototype, "sharedMaterial", void 0);
149
181
  __decorate([
182
+ validate(),
150
183
  serializable()
151
184
  ], Collider.prototype, "membership", void 0);
152
185
  __decorate([
186
+ validate(),
153
187
  serializable()
154
188
  ], Collider.prototype, "filter", void 0);
189
+ __decorate([
190
+ validate(),
191
+ serializable()
192
+ ], Collider.prototype, "density", void 0);
155
193
  /**
156
194
  * SphereCollider represents a sphere-shaped collision volume.
157
195
  * Efficient and suitable for balls, projectiles, or approximate collision bounds.
@@ -192,6 +230,11 @@ export class SphereCollider extends Collider {
192
230
  if (!this.context.physics.engine?.setColliderEnabled(this, true)) {
193
231
  this.context.physics.engine?.addSphereCollider(this);
194
232
  }
233
+ else if (this._propertiesDirty) {
234
+ this.updateProperties();
235
+ this.updatePhysicsMaterial();
236
+ }
237
+ this._propertiesDirty = false;
195
238
  watchWrite(this.gameObject.scale, this.updateProperties);
196
239
  }
197
240
  /**
@@ -201,12 +244,6 @@ export class SphereCollider extends Collider {
201
244
  super.onDisable();
202
245
  unwatchWrite(this.gameObject.scale, this.updateProperties);
203
246
  }
204
- /**
205
- * Updates collider properties when validated in the editor or inspector.
206
- */
207
- onValidate() {
208
- this.updateProperties();
209
- }
210
247
  }
211
248
  __decorate([
212
249
  validate(),
@@ -275,6 +312,11 @@ export class BoxCollider extends Collider {
275
312
  if (!this.context.physics.engine?.setColliderEnabled(this, true)) {
276
313
  this.context.physics.engine?.addBoxCollider(this, this.size);
277
314
  }
315
+ else if (this._propertiesDirty) {
316
+ this.updateProperties();
317
+ this.updatePhysicsMaterial();
318
+ }
319
+ this._propertiesDirty = false;
278
320
  watchWrite(this.gameObject.scale, this.updateProperties);
279
321
  }
280
322
  /**
@@ -285,13 +327,6 @@ export class BoxCollider extends Collider {
285
327
  super.onDisable();
286
328
  unwatchWrite(this.gameObject.scale, this.updateProperties);
287
329
  }
288
- /**
289
- * Updates collider properties when validated in the editor or inspector.
290
- * @internal
291
- */
292
- onValidate() {
293
- this.updateProperties();
294
- }
295
330
  /**
296
331
  * Automatically fits the collider to the geometry of the object.
297
332
  * Sets the size and center based on the object's bounding box.
@@ -367,8 +402,15 @@ export class MeshCollider extends Collider {
367
402
  if (!this.context.physics.engine)
368
403
  return;
369
404
  // Re-enable existing collider instead of recreating it
370
- if (this.context.physics.engine.setColliderEnabled(this, true))
405
+ if (this.context.physics.engine.setColliderEnabled(this, true)) {
406
+ if (this._propertiesDirty) {
407
+ this.updateProperties();
408
+ this.updatePhysicsMaterial();
409
+ }
410
+ this._propertiesDirty = false;
371
411
  return;
412
+ }
413
+ this._propertiesDirty = false;
372
414
  if (!this.sharedMesh?.isMesh) {
373
415
  // HACK using the renderer mesh
374
416
  if (this.gameObject instanceof Mesh || this.gameObject instanceof Group) {
@@ -461,6 +503,11 @@ export class CapsuleCollider extends Collider {
461
503
  if (!this.context.physics.engine?.setColliderEnabled(this, true)) {
462
504
  this.context.physics.engine?.addCapsuleCollider(this, this.height, this.radius);
463
505
  }
506
+ else if (this._propertiesDirty) {
507
+ this.updateProperties();
508
+ this.updatePhysicsMaterial();
509
+ }
510
+ this._propertiesDirty = false;
464
511
  }
465
512
  }
466
513
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"Collider.js","sourceRoot":"","sources":["../../src/engine-components/Collider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Collider.js","sourceRoot":"","sources":["../../src/engine-components/Collider.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,9 @@ import { type AssetReference } from "../engine/engine_addressables.js";
3
3
  import { type IInstantiateOptions } from "../engine/engine_gameobject.js";
4
4
  import { SyncInstantiateOptions } from "../engine/engine_networking_instantiate.js";
5
5
  import { Context, FrameEvent } from "../engine/engine_setup.js";
6
- import { $componentName, type Collision, type ComponentInit, type Constructor, type ConstructorConcrete, type GuidsMap, type ICollider, type IComponent, type IGameObject, type SourceIdentifier } from "../engine/engine_types.js";
6
+ import { $componentName, type Collision, type ComponentInit, type Constructor, type ConstructorConcrete, type ICollider, type IComponent, type IGameObject, type SourceIdentifier } from "../engine/engine_types.js";
7
7
  import type { INeedleXRSessionEventReceiver, NeedleXRControllerEventArgs, NeedleXREventArgs } from "../engine/engine_xr.js";
8
+ import { type IDisposable, type DisposeFn } from "../engine/engine_disposable.js";
8
9
  import { type IPointerEventHandler, PointerEventData } from "./ui/PointerEvents.js";
9
10
  /**
10
11
  * Base class for objects in Needle Engine. Extends {@link Object3D} from three.js.
@@ -358,7 +359,7 @@ export declare abstract class GameObject extends Object3D implements Object3D, I
358
359
  * **Input event methods:**
359
360
  * {@link onPointerDown}, {@link onPointerUp}, {@link onPointerEnter}, {@link onPointerExit} and {@link onPointerMove}.
360
361
  *
361
- * @example
362
+ * @example Basic component
362
363
  * ```typescript
363
364
  * import { Behaviour } from "@needle-tools/engine";
364
365
  * export class MyComponent extends Behaviour {
@@ -371,6 +372,25 @@ export declare abstract class GameObject extends Object3D implements Object3D, I
371
372
  * }
372
373
  * ```
373
374
  *
375
+ * @example Automatic cleanup with autoCleanup
376
+ * ```typescript
377
+ * import { Behaviour, serializable, EventList } from "@needle-tools/engine";
378
+ * export class ScoreTracker extends Behaviour {
379
+ * @serializable(EventList)
380
+ * onScoreChanged?: EventList<number>;
381
+ *
382
+ * start() {
383
+ * // Registered during start → survives enable/disable, cleaned up on destroy
384
+ * this.autoCleanup(this.onScoreChanged?.on(score => console.log("Score:", score)));
385
+ * }
386
+ *
387
+ * onEnable() {
388
+ * // Registered during onEnable → cleaned up on disable
389
+ * this.autoCleanup(() => this.cleanupResources());
390
+ * }
391
+ * }
392
+ * ```
393
+ *
374
394
  * @group Components
375
395
  */
376
396
  export declare abstract class Component implements IComponent, EventTarget, Partial<INeedleXRSessionEventReceiver>, Partial<IPointerEventHandler> {
@@ -425,6 +445,50 @@ export declare abstract class Component implements IComponent, EventTarget, Part
425
445
  * @returns True if the component is enabled and all parent GameObjects are active
426
446
  */
427
447
  get activeAndEnabled(): boolean;
448
+ private __disableCleanups?;
449
+ private __destroyCleanups?;
450
+ /**
451
+ * @experimental
452
+ * Register a resource for automatic cleanup tied to this component's lifecycle.
453
+ * Accepts {@link IDisposable} objects, cleanup functions, or event unsubscribe functions.
454
+ * `null` and `undefined` are safe no-ops (convenient for conditional subscriptions).
455
+ *
456
+ * **Lifecycle-aware:** The cleanup store is chosen automatically based on when `autoCleanup` is called:
457
+ * - Called during {@link onEnable} → cleaned up on {@link onDisable} (and re-registered on re-enable)
458
+ * - Called during {@link awake} or {@link start} → cleaned up on {@link onDestroy} (survives enable/disable cycles)
459
+ * - Called at any other time (e.g. from update) → cleaned up on {@link onDisable}
460
+ *
461
+ * @param disposable An {@link IDisposable}, a cleanup/unsubscribe function, or `null`/`undefined`
462
+ *
463
+ * @example EventList subscriptions
464
+ * ```ts
465
+ * import { Behaviour, serializable, EventList } from "@needle-tools/engine";
466
+ *
467
+ * export class MyComponent extends Behaviour {
468
+ * @serializable(EventList)
469
+ * onScoreChanged?: EventList<number>;
470
+ *
471
+ * onEnable() {
472
+ * this.autoCleanup(this.onScoreChanged?.on(score => {
473
+ * console.log("Score:", score);
474
+ * }));
475
+ * }
476
+ * }
477
+ * ```
478
+ *
479
+ * @example Lifetime subscriptions in awake
480
+ * ```ts
481
+ * import { Behaviour } from "@needle-tools/engine";
482
+ *
483
+ * export class Persistent extends Behaviour {
484
+ * awake() {
485
+ * // Registered during awake → survives enable/disable, cleaned up on destroy
486
+ * this.autoCleanup(() => this.save());
487
+ * }
488
+ * }
489
+ * ```
490
+ */
491
+ protected autoCleanup(disposable: IDisposable | DisposeFn | Function | null | undefined): void;
428
492
  private get __isActive();
429
493
  private get __isActiveInHierarchy();
430
494
  private set __isActiveInHierarchy(value);
@@ -443,11 +507,6 @@ export declare abstract class Component implements IComponent, EventTarget, Part
443
507
  * For example, URL to the glTF file this component was loaded from
444
508
  */
445
509
  sourceId?: SourceIdentifier;
446
- /**
447
- * Called when this component needs to remap guids after an instantiate operation.
448
- * @param guidsMap Mapping from old guids to newly generated guids
449
- */
450
- resolveGuids?(guidsMap: GuidsMap): void;
451
510
  /**
452
511
  * Called once when the component becomes active for the first time.
453
512
  * This is the first lifecycle callback to be invoked
@@ -662,6 +721,10 @@ export declare abstract class Component implements IComponent, EventTarget, Part
662
721
  protected __didAwake: boolean;
663
722
  /** @internal */
664
723
  private __didStart;
724
+ /** True while start() has finished executing (used by autoCleanup to distinguish start from update) */
725
+ private __didCompleteStart;
726
+ /** True while onEnable() is executing (used by autoCleanup to route to disable store) */
727
+ private __inEnableOrDisableCallback;
665
728
  /** @internal */
666
729
  protected __didEnable: boolean;
667
730
  /** @internal */
@@ -685,9 +748,9 @@ export declare abstract class Component implements IComponent, EventTarget, Part
685
748
  /** @internal */
686
749
  __internalStart(): void;
687
750
  /** @internal */
688
- __internalEnable(isAddingToScene?: boolean): boolean;
751
+ __internalEnable(isHierarchyChange?: boolean): boolean;
689
752
  /** @internal */
690
- __internalDisable(isRemovingFromScene?: boolean): void;
753
+ __internalDisable(isHierarchyChange?: boolean): void;
691
754
  /** @internal */
692
755
  __internalDestroy(): void;
693
756
  /**
@@ -10,6 +10,7 @@ import { Context, FrameEvent } from "../engine/engine_setup.js";
10
10
  import * as threeutils from "../engine/engine_three_utils.js";
11
11
  import { $componentName } from "../engine/engine_types.js";
12
12
  import { TypeStore } from "../engine/engine_typestore.js";
13
+ import { DisposableStore } from "../engine/engine_disposable.js";
13
14
  // export interface ISerializationCallbackReceiver {
14
15
  // onBeforeSerialize?(): object | void;
15
16
  // onAfterSerialize?();
@@ -391,7 +392,7 @@ export class GameObject extends Object3D {
391
392
  * **Input event methods:**
392
393
  * {@link onPointerDown}, {@link onPointerUp}, {@link onPointerEnter}, {@link onPointerExit} and {@link onPointerMove}.
393
394
  *
394
- * @example
395
+ * @example Basic component
395
396
  * ```typescript
396
397
  * import { Behaviour } from "@needle-tools/engine";
397
398
  * export class MyComponent extends Behaviour {
@@ -404,6 +405,25 @@ export class GameObject extends Object3D {
404
405
  * }
405
406
  * ```
406
407
  *
408
+ * @example Automatic cleanup with autoCleanup
409
+ * ```typescript
410
+ * import { Behaviour, serializable, EventList } from "@needle-tools/engine";
411
+ * export class ScoreTracker extends Behaviour {
412
+ * @serializable(EventList)
413
+ * onScoreChanged?: EventList<number>;
414
+ *
415
+ * start() {
416
+ * // Registered during start → survives enable/disable, cleaned up on destroy
417
+ * this.autoCleanup(this.onScoreChanged?.on(score => console.log("Score:", score)));
418
+ * }
419
+ *
420
+ * onEnable() {
421
+ * // Registered during onEnable → cleaned up on disable
422
+ * this.autoCleanup(() => this.cleanupResources());
423
+ * }
424
+ * }
425
+ * ```
426
+ *
407
427
  * @group Components
408
428
  */
409
429
  export class Component {
@@ -513,6 +533,75 @@ export class Component {
513
533
  // while (go);
514
534
  return true;
515
535
  }
536
+ __disableCleanups;
537
+ __destroyCleanups;
538
+ /**
539
+ * @experimental
540
+ * Register a resource for automatic cleanup tied to this component's lifecycle.
541
+ * Accepts {@link IDisposable} objects, cleanup functions, or event unsubscribe functions.
542
+ * `null` and `undefined` are safe no-ops (convenient for conditional subscriptions).
543
+ *
544
+ * **Lifecycle-aware:** The cleanup store is chosen automatically based on when `autoCleanup` is called:
545
+ * - Called during {@link onEnable} → cleaned up on {@link onDisable} (and re-registered on re-enable)
546
+ * - Called during {@link awake} or {@link start} → cleaned up on {@link onDestroy} (survives enable/disable cycles)
547
+ * - Called at any other time (e.g. from update) → cleaned up on {@link onDisable}
548
+ *
549
+ * @param disposable An {@link IDisposable}, a cleanup/unsubscribe function, or `null`/`undefined`
550
+ *
551
+ * @example EventList subscriptions
552
+ * ```ts
553
+ * import { Behaviour, serializable, EventList } from "@needle-tools/engine";
554
+ *
555
+ * export class MyComponent extends Behaviour {
556
+ * @serializable(EventList)
557
+ * onScoreChanged?: EventList<number>;
558
+ *
559
+ * onEnable() {
560
+ * this.autoCleanup(this.onScoreChanged?.on(score => {
561
+ * console.log("Score:", score);
562
+ * }));
563
+ * }
564
+ * }
565
+ * ```
566
+ *
567
+ * @example Lifetime subscriptions in awake
568
+ * ```ts
569
+ * import { Behaviour } from "@needle-tools/engine";
570
+ *
571
+ * export class Persistent extends Behaviour {
572
+ * awake() {
573
+ * // Registered during awake → survives enable/disable, cleaned up on destroy
574
+ * this.autoCleanup(() => this.save());
575
+ * }
576
+ * }
577
+ * ```
578
+ */
579
+ autoCleanup(disposable) {
580
+ if (!disposable) {
581
+ if (isDevEnvironment()) {
582
+ console.warn(`[Component] autoCleanup called with null or undefined, no cleanup registered. This is safe, but you may want to check if this was intentional (${this[$componentName] || this.constructor.name})`);
583
+ }
584
+ return;
585
+ }
586
+ // During onEnable → cleaned up on disable
587
+ if (this.__inEnableOrDisableCallback) {
588
+ if (!this.__disableCleanups)
589
+ this.__disableCleanups = new DisposableStore();
590
+ this.__disableCleanups.add(disposable);
591
+ }
592
+ // During awake or start → cleaned up on destroy
593
+ else if (!this.__didCompleteStart) {
594
+ if (!this.__destroyCleanups)
595
+ this.__destroyCleanups = new DisposableStore();
596
+ this.__destroyCleanups.add(disposable);
597
+ }
598
+ // After start (update, etc.) → cleaned up on disable
599
+ else {
600
+ if (!this.__disableCleanups)
601
+ this.__disableCleanups = new DisposableStore();
602
+ this.__disableCleanups.add(disposable);
603
+ }
604
+ }
516
605
  get __isActive() {
517
606
  return this.gameObject.visible;
518
607
  }
@@ -629,6 +718,10 @@ export class Component {
629
718
  __didAwake = false;
630
719
  /** @internal */
631
720
  __didStart = false;
721
+ /** True while start() has finished executing (used by autoCleanup to distinguish start from update) */
722
+ __didCompleteStart = false;
723
+ /** True while onEnable() is executing (used by autoCleanup to route to disable store) */
724
+ __inEnableOrDisableCallback = false;
632
725
  /** @internal */
633
726
  __didEnable = false;
634
727
  /** @internal */
@@ -641,6 +734,8 @@ export class Component {
641
734
  constructor(init) {
642
735
  this.__didAwake = false;
643
736
  this.__didStart = false;
737
+ this.__didCompleteStart = false;
738
+ this.__inEnableOrDisableCallback = false;
644
739
  this.__didEnable = false;
645
740
  this.__isEnabled = undefined;
646
741
  this.__destroyed = false;
@@ -652,6 +747,8 @@ export class Component {
652
747
  __internalNewInstanceCreated(init) {
653
748
  this.__didAwake = false;
654
749
  this.__didStart = false;
750
+ this.__didCompleteStart = false;
751
+ this.__inEnableOrDisableCallback = false;
655
752
  this.__didEnable = false;
656
753
  this.__isEnabled = undefined;
657
754
  this.__destroyed = false;
@@ -688,9 +785,10 @@ export class Component {
688
785
  this.__didStart = true;
689
786
  if (this.start)
690
787
  this.start();
788
+ this.__didCompleteStart = true;
691
789
  }
692
790
  /** @internal */
693
- __internalEnable(isAddingToScene) {
791
+ __internalEnable(isHierarchyChange) {
694
792
  if (this.__destroyed) {
695
793
  if (isDevEnvironment()) {
696
794
  console.warn("[Needle Engine Dev] Trying to enable destroyed component");
@@ -702,33 +800,38 @@ export class Component {
702
800
  if (!this.__didAwake)
703
801
  return false;
704
802
  if (this.__didEnable) {
705
- // We dont want to change the enable state if we are adding to scene
706
- // But we want to change the state when e.g. a user changes the enable state during awake
707
- if (isAddingToScene !== true)
803
+ // Don't change __isEnabled for hierarchy-driven changes (e.g. adding to scene, visibility)
804
+ if (isHierarchyChange !== true)
708
805
  this.__isEnabled = true;
709
806
  return false;
710
807
  }
711
- // console.trace("INTERNAL ENABLE");
712
808
  this.__didEnable = true;
713
809
  this.__isEnabled = true;
810
+ this.__inEnableOrDisableCallback = true;
714
811
  this.onEnable();
812
+ this.__inEnableOrDisableCallback = false;
715
813
  return true;
716
814
  }
717
815
  /** @internal */
718
- __internalDisable(isRemovingFromScene) {
816
+ __internalDisable(isHierarchyChange) {
719
817
  // Don't change enable before awake
720
818
  // But a user can change enable during awake
721
819
  if (!this.__didAwake)
722
820
  return;
723
821
  if (!this.__didEnable) {
724
- // We dont want to change the enable state if we are removing from a scene
725
- if (isRemovingFromScene !== true)
822
+ // Don't change __isEnabled for hierarchy-driven changes (e.g. removing from scene, visibility)
823
+ if (isHierarchyChange !== true)
726
824
  this.__isEnabled = false;
727
825
  return;
728
826
  }
729
827
  this.__didEnable = false;
730
- this.__isEnabled = false;
828
+ // Don't change __isEnabled for hierarchy-driven changes — the component itself is still "enabled"
829
+ if (isHierarchyChange !== true)
830
+ this.__isEnabled = false;
831
+ this.__inEnableOrDisableCallback = true;
731
832
  this.onDisable();
833
+ this.__disableCleanups?.dispose();
834
+ this.__inEnableOrDisableCallback = false;
732
835
  }
733
836
  /** @internal */
734
837
  __internalDestroy() {
@@ -737,6 +840,7 @@ export class Component {
737
840
  this.__destroyed = true;
738
841
  if (this.__didAwake) {
739
842
  this.onDestroy?.call(this);
843
+ this.__destroyCleanups?.dispose();
740
844
  this.dispatchEvent(new CustomEvent("destroyed", { detail: this }));
741
845
  }
742
846
  destroyComponentInstance(this);
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../src/engine-components/Component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../src/engine-components/Component.ts"],"names":[],"mappings":"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"}
@@ -98,6 +98,7 @@ export declare class ContactShadows extends Behaviour {
98
98
  set needsUpdate(val: boolean);
99
99
  get needsUpdate(): boolean;
100
100
  private _needsUpdate;
101
+ private _needsFit;
101
102
  /** All shadow objects are parented to this object.
102
103
  * The gameObject itself should not be transformed because we want the ContactShadows object e.g. also have a GroundProjectedEnv component
103
104
  * in which case ContactShadows scale would affect the projection