@needle-tools/engine 5.1.0-alpha.2 → 5.1.0-alpha.4

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 (274) hide show
  1. package/CHANGELOG.md +74 -1
  2. package/SKILL.md +4 -1
  3. package/components.needle.json +1 -1
  4. package/dist/needle-engine.bundle-AjVIot3d.min.js +1733 -0
  5. package/dist/{needle-engine.bundle-dit3f1l5.js → needle-engine.bundle-B7cqsI4c.js} +12199 -11704
  6. package/dist/needle-engine.bundle-DQCuBTVp.umd.cjs +1733 -0
  7. package/dist/needle-engine.d.ts +879 -226
  8. package/dist/needle-engine.js +584 -582
  9. package/dist/needle-engine.min.js +1 -1
  10. package/dist/needle-engine.umd.cjs +1 -1
  11. package/lib/engine/api.d.ts +5 -0
  12. package/lib/engine/api.js +4 -0
  13. package/lib/engine/api.js.map +1 -1
  14. package/lib/engine/codegen/register_types.js +2 -10
  15. package/lib/engine/codegen/register_types.js.map +1 -1
  16. package/lib/engine/debug/debug_spatial_console.d.ts +2 -0
  17. package/lib/engine/debug/debug_spatial_console.js +10 -7
  18. package/lib/engine/debug/debug_spatial_console.js.map +1 -1
  19. package/lib/engine/engine_addressables.d.ts +2 -0
  20. package/lib/engine/engine_addressables.js +6 -3
  21. package/lib/engine/engine_addressables.js.map +1 -1
  22. package/lib/engine/engine_audio.d.ts +68 -0
  23. package/lib/engine/engine_audio.js +172 -0
  24. package/lib/engine/engine_audio.js.map +1 -1
  25. package/lib/engine/engine_components.js +1 -1
  26. package/lib/engine/engine_components.js.map +1 -1
  27. package/lib/engine/engine_context.d.ts +1 -1
  28. package/lib/engine/engine_context.js +3 -2
  29. package/lib/engine/engine_context.js.map +1 -1
  30. package/lib/engine/engine_disposable.d.ts +172 -0
  31. package/lib/engine/engine_disposable.js +136 -0
  32. package/lib/engine/engine_disposable.js.map +1 -0
  33. package/lib/engine/engine_gameobject.d.ts +1 -10
  34. package/lib/engine/engine_gameobject.js +22 -120
  35. package/lib/engine/engine_gameobject.js.map +1 -1
  36. package/lib/engine/engine_gltf_builtin_components.js +7 -69
  37. package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
  38. package/lib/engine/engine_init.js +13 -3
  39. package/lib/engine/engine_init.js.map +1 -1
  40. package/lib/engine/engine_input.d.ts +1 -1
  41. package/lib/engine/engine_input.js +1 -1
  42. package/lib/engine/engine_input.js.map +1 -1
  43. package/lib/engine/engine_instantiate_resolve.d.ts +42 -0
  44. package/lib/engine/engine_instantiate_resolve.js +372 -0
  45. package/lib/engine/engine_instantiate_resolve.js.map +1 -0
  46. package/lib/engine/engine_license.js +1 -1
  47. package/lib/engine/engine_license.js.map +1 -1
  48. package/lib/engine/engine_mainloop_utils.js +7 -4
  49. package/lib/engine/engine_mainloop_utils.js.map +1 -1
  50. package/lib/engine/engine_networking.d.ts +51 -37
  51. package/lib/engine/engine_networking.js +132 -82
  52. package/lib/engine/engine_networking.js.map +1 -1
  53. package/lib/engine/engine_networking.transport.websocket.d.ts +15 -0
  54. package/lib/engine/engine_networking.transport.websocket.js +38 -0
  55. package/lib/engine/engine_networking.transport.websocket.js.map +1 -0
  56. package/lib/engine/engine_networking_blob.js +1 -1
  57. package/lib/engine/engine_networking_blob.js.map +1 -1
  58. package/lib/engine/engine_networking_instantiate.js +2 -2
  59. package/lib/engine/engine_networking_instantiate.js.map +1 -1
  60. package/lib/engine/engine_networking_types.d.ts +39 -1
  61. package/lib/engine/engine_networking_types.js +7 -0
  62. package/lib/engine/engine_networking_types.js.map +1 -1
  63. package/lib/engine/engine_physics_rapier.d.ts +11 -3
  64. package/lib/engine/engine_physics_rapier.js +88 -25
  65. package/lib/engine/engine_physics_rapier.js.map +1 -1
  66. package/lib/engine/engine_scenedata.d.ts +2 -0
  67. package/lib/engine/engine_scenedata.js +4 -2
  68. package/lib/engine/engine_scenedata.js.map +1 -1
  69. package/lib/engine/engine_serialization_builtin_serializer.d.ts +10 -16
  70. package/lib/engine/engine_serialization_builtin_serializer.js +56 -46
  71. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  72. package/lib/engine/engine_serialization_core.d.ts +1 -0
  73. package/lib/engine/engine_serialization_core.js +7 -0
  74. package/lib/engine/engine_serialization_core.js.map +1 -1
  75. package/lib/engine/engine_types.d.ts +19 -11
  76. package/lib/engine/engine_types.js +1 -1
  77. package/lib/engine/engine_types.js.map +1 -1
  78. package/lib/engine/engine_util_decorator.js +7 -2
  79. package/lib/engine/engine_util_decorator.js.map +1 -1
  80. package/lib/engine/engine_utils.d.ts +1 -1
  81. package/lib/engine/engine_utils.js +19 -5
  82. package/lib/engine/engine_utils.js.map +1 -1
  83. package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +1 -1
  84. package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js.map +1 -1
  85. package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +1 -1
  86. package/lib/engine/webcomponents/needle menu/needle-menu.js +1 -1
  87. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  88. package/lib/engine/webcomponents/needle-engine.d.ts +10 -4
  89. package/lib/engine/webcomponents/needle-engine.js +1 -1
  90. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  91. package/lib/engine/xr/NeedleXRSession.d.ts +3 -2
  92. package/lib/engine/xr/NeedleXRSession.js +50 -14
  93. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  94. package/lib/engine/xr/events.d.ts +1 -1
  95. package/lib/engine/xr/events.js.map +1 -1
  96. package/lib/engine-components/Animation.js +17 -16
  97. package/lib/engine-components/Animation.js.map +1 -1
  98. package/lib/engine-components/Animator.d.ts +6 -0
  99. package/lib/engine-components/Animator.js +17 -12
  100. package/lib/engine-components/Animator.js.map +1 -1
  101. package/lib/engine-components/AnimatorController.builder.d.ts +113 -0
  102. package/lib/engine-components/AnimatorController.builder.js +195 -0
  103. package/lib/engine-components/AnimatorController.builder.js.map +1 -0
  104. package/lib/engine-components/AnimatorController.d.ts +4 -119
  105. package/lib/engine-components/AnimatorController.js +35 -233
  106. package/lib/engine-components/AnimatorController.js.map +1 -1
  107. package/lib/engine-components/AudioSource.d.ts +19 -3
  108. package/lib/engine-components/AudioSource.js +121 -68
  109. package/lib/engine-components/AudioSource.js.map +1 -1
  110. package/lib/engine-components/Collider.d.ts +18 -9
  111. package/lib/engine-components/Collider.js +61 -14
  112. package/lib/engine-components/Collider.js.map +1 -1
  113. package/lib/engine-components/Component.d.ts +72 -9
  114. package/lib/engine-components/Component.js +114 -10
  115. package/lib/engine-components/Component.js.map +1 -1
  116. package/lib/engine-components/DragControls.d.ts +7 -0
  117. package/lib/engine-components/DragControls.js +19 -7
  118. package/lib/engine-components/DragControls.js.map +1 -1
  119. package/lib/engine-components/EventList.d.ts +31 -9
  120. package/lib/engine-components/EventList.js +37 -76
  121. package/lib/engine-components/EventList.js.map +1 -1
  122. package/lib/engine-components/Joints.d.ts +4 -2
  123. package/lib/engine-components/Joints.js +19 -3
  124. package/lib/engine-components/Joints.js.map +1 -1
  125. package/lib/engine-components/Light.js +9 -1
  126. package/lib/engine-components/Light.js.map +1 -1
  127. package/lib/engine-components/Networking.d.ts +1 -1
  128. package/lib/engine-components/Networking.js +1 -1
  129. package/lib/engine-components/OrbitControls.js +16 -11
  130. package/lib/engine-components/OrbitControls.js.map +1 -1
  131. package/lib/engine-components/ReflectionProbe.js +2 -0
  132. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  133. package/lib/engine-components/RigidBody.d.ts +12 -4
  134. package/lib/engine-components/RigidBody.js +18 -4
  135. package/lib/engine-components/RigidBody.js.map +1 -1
  136. package/lib/engine-components/SeeThrough.js +2 -2
  137. package/lib/engine-components/SeeThrough.js.map +1 -1
  138. package/lib/engine-components/api.d.ts +1 -1
  139. package/lib/engine-components/api.js +1 -1
  140. package/lib/engine-components/api.js.map +1 -1
  141. package/lib/engine-components/codegen/components.d.ts +3 -9
  142. package/lib/engine-components/codegen/components.js +3 -9
  143. package/lib/engine-components/codegen/components.js.map +1 -1
  144. package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.d.ts +1 -1
  145. package/lib/engine-components/postprocessing/VolumeParameter.d.ts +2 -0
  146. package/lib/engine-components/postprocessing/VolumeParameter.js +4 -1
  147. package/lib/engine-components/postprocessing/VolumeParameter.js.map +1 -1
  148. package/lib/engine-components/timeline/PlayableDirector.d.ts +16 -6
  149. package/lib/engine-components/timeline/PlayableDirector.js +70 -62
  150. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  151. package/lib/engine-components/timeline/SignalAsset.d.ts +3 -1
  152. package/lib/engine-components/timeline/SignalAsset.js +1 -0
  153. package/lib/engine-components/timeline/SignalAsset.js.map +1 -1
  154. package/lib/engine-components/timeline/TimelineBuilder.d.ts +247 -0
  155. package/lib/engine-components/timeline/TimelineBuilder.js +400 -0
  156. package/lib/engine-components/timeline/TimelineBuilder.js.map +1 -0
  157. package/lib/engine-components/timeline/TimelineModels.d.ts +2 -1
  158. package/lib/engine-components/timeline/TimelineModels.js +3 -0
  159. package/lib/engine-components/timeline/TimelineModels.js.map +1 -1
  160. package/lib/engine-components/timeline/TimelineTracks.d.ts +23 -0
  161. package/lib/engine-components/timeline/TimelineTracks.js +71 -13
  162. package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
  163. package/lib/engine-components/timeline/index.d.ts +2 -1
  164. package/lib/engine-components/timeline/index.js +2 -0
  165. package/lib/engine-components/timeline/index.js.map +1 -1
  166. package/lib/engine-components/ui/Canvas.d.ts +1 -1
  167. package/lib/engine-components/ui/Canvas.js +2 -8
  168. package/lib/engine-components/ui/Canvas.js.map +1 -1
  169. package/lib/engine-components/ui/Text.d.ts +1 -0
  170. package/lib/engine-components/ui/Text.js +10 -7
  171. package/lib/engine-components/ui/Text.js.map +1 -1
  172. package/lib/engine-components/web/CursorFollow.js +21 -12
  173. package/lib/engine-components/web/CursorFollow.js.map +1 -1
  174. package/lib/engine-components/webxr/WebXRImageTracking.js +4 -0
  175. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  176. package/package.json +2 -83
  177. package/plugins/common/license.js +5 -2
  178. package/plugins/common/worker.js +9 -4
  179. package/plugins/vite/asap.js +17 -8
  180. package/plugins/vite/dependencies.js +29 -10
  181. package/plugins/vite/dependency-watcher.js +2 -2
  182. package/plugins/vite/editor-connection.js +3 -3
  183. package/plugins/vite/local-files-core.js +3 -3
  184. package/plugins/vite/local-files-utils.d.ts +3 -1
  185. package/plugins/vite/local-files-utils.js +29 -5
  186. package/plugins/vite/reload.js +1 -1
  187. package/plugins/vite/server.js +2 -1
  188. package/src/engine/api.ts +7 -0
  189. package/src/engine/codegen/register_types.ts +2 -10
  190. package/src/engine/debug/debug_spatial_console.ts +10 -7
  191. package/src/engine/engine_addressables.ts +6 -3
  192. package/src/engine/engine_audio.ts +184 -0
  193. package/src/engine/engine_components.ts +1 -1
  194. package/src/engine/engine_context.ts +4 -3
  195. package/src/engine/engine_disposable.ts +214 -0
  196. package/src/engine/engine_gameobject.ts +54 -159
  197. package/src/engine/engine_gltf_builtin_components.ts +7 -76
  198. package/src/engine/engine_init.ts +13 -3
  199. package/src/engine/engine_input.ts +1 -1
  200. package/src/engine/engine_instantiate_resolve.ts +407 -0
  201. package/src/engine/engine_license.ts +1 -1
  202. package/src/engine/engine_mainloop_utils.ts +7 -4
  203. package/src/engine/engine_networking.transport.websocket.ts +45 -0
  204. package/src/engine/engine_networking.ts +161 -137
  205. package/src/engine/engine_networking_blob.ts +1 -1
  206. package/src/engine/engine_networking_instantiate.ts +2 -2
  207. package/src/engine/engine_networking_types.ts +41 -1
  208. package/src/engine/engine_physics_rapier.ts +82 -27
  209. package/src/engine/engine_scenedata.ts +5 -3
  210. package/src/engine/engine_serialization_builtin_serializer.ts +64 -52
  211. package/src/engine/engine_serialization_core.ts +9 -0
  212. package/src/engine/engine_types.ts +24 -15
  213. package/src/engine/engine_util_decorator.ts +7 -2
  214. package/src/engine/engine_utils.ts +16 -5
  215. package/src/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +1 -1
  216. package/src/engine/webcomponents/needle menu/needle-menu.ts +1 -1
  217. package/src/engine/webcomponents/needle-engine.ts +10 -4
  218. package/src/engine/xr/NeedleXRSession.ts +48 -13
  219. package/src/engine/xr/events.ts +1 -1
  220. package/src/engine-components/Animation.ts +19 -16
  221. package/src/engine-components/Animator.ts +18 -11
  222. package/src/engine-components/AnimatorController.builder.ts +261 -0
  223. package/src/engine-components/AnimatorController.ts +23 -292
  224. package/src/engine-components/AudioSource.ts +130 -79
  225. package/src/engine-components/Collider.ts +66 -18
  226. package/src/engine-components/Component.ts +118 -20
  227. package/src/engine-components/DragControls.ts +18 -11
  228. package/src/engine-components/EventList.ts +45 -83
  229. package/src/engine-components/Joints.ts +20 -4
  230. package/src/engine-components/Light.ts +10 -2
  231. package/src/engine-components/Networking.ts +1 -1
  232. package/src/engine-components/OrbitControls.ts +18 -9
  233. package/src/engine-components/ReflectionProbe.ts +2 -0
  234. package/src/engine-components/RigidBody.ts +18 -4
  235. package/src/engine-components/SeeThrough.ts +2 -2
  236. package/src/engine-components/api.ts +1 -1
  237. package/src/engine-components/codegen/components.ts +3 -9
  238. package/src/engine-components/postprocessing/VolumeParameter.ts +4 -1
  239. package/src/engine-components/timeline/PlayableDirector.ts +67 -65
  240. package/src/engine-components/timeline/SignalAsset.ts +4 -1
  241. package/src/engine-components/timeline/TimelineBuilder.ts +564 -0
  242. package/src/engine-components/timeline/TimelineModels.ts +5 -1
  243. package/src/engine-components/timeline/TimelineTracks.ts +74 -13
  244. package/src/engine-components/timeline/index.ts +2 -1
  245. package/src/engine-components/ui/Canvas.ts +2 -8
  246. package/src/engine-components/ui/Text.ts +12 -8
  247. package/src/engine-components/web/CursorFollow.ts +21 -13
  248. package/src/engine-components/webxr/WebXRImageTracking.ts +2 -0
  249. package/dist/needle-engine.bundle-B-5Q2CpC.min.js +0 -1732
  250. package/dist/needle-engine.bundle-qZfVf_v-.umd.cjs +0 -1732
  251. package/lib/engine-components/AvatarLoader.d.ts +0 -80
  252. package/lib/engine-components/AvatarLoader.js +0 -232
  253. package/lib/engine-components/AvatarLoader.js.map +0 -1
  254. package/lib/engine-components/avatar/AvatarBlink_Simple.d.ts +0 -11
  255. package/lib/engine-components/avatar/AvatarBlink_Simple.js +0 -77
  256. package/lib/engine-components/avatar/AvatarBlink_Simple.js.map +0 -1
  257. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.d.ts +0 -14
  258. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js +0 -69
  259. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js.map +0 -1
  260. package/lib/engine-components/avatar/Avatar_Brain_LookAt.d.ts +0 -29
  261. package/lib/engine-components/avatar/Avatar_Brain_LookAt.js +0 -122
  262. package/lib/engine-components/avatar/Avatar_Brain_LookAt.js.map +0 -1
  263. package/lib/engine-components/avatar/Avatar_MouthShapes.d.ts +0 -15
  264. package/lib/engine-components/avatar/Avatar_MouthShapes.js +0 -80
  265. package/lib/engine-components/avatar/Avatar_MouthShapes.js.map +0 -1
  266. package/lib/engine-components/avatar/Avatar_MustacheShake.d.ts +0 -9
  267. package/lib/engine-components/avatar/Avatar_MustacheShake.js +0 -30
  268. package/lib/engine-components/avatar/Avatar_MustacheShake.js.map +0 -1
  269. package/src/engine-components/AvatarLoader.ts +0 -264
  270. package/src/engine-components/avatar/AvatarBlink_Simple.ts +0 -70
  271. package/src/engine-components/avatar/AvatarEyeLook_Rotation.ts +0 -64
  272. package/src/engine-components/avatar/Avatar_Brain_LookAt.ts +0 -140
  273. package/src/engine-components/avatar/Avatar_MouthShapes.ts +0 -84
  274. package/src/engine-components/avatar/Avatar_MustacheShake.ts +0 -32
@@ -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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"}
@@ -1,5 +1,6 @@
1
1
  import { Object3D } from "three";
2
2
  import { Behaviour } from "./Component.js";
3
+ import { EventList } from "./EventList.js";
3
4
  import type { IPointerEventHandler, PointerEventData } from "./ui/PointerEvents.js";
4
5
  /**
5
6
  * The DragMode determines how an object is dragged around in the scene.
@@ -106,6 +107,12 @@ export declare class DragControls extends Behaviour implements IPointerEventHand
106
107
  * providing visual feedback about the object's position relative to surfaces below it.
107
108
  */
108
109
  showGizmo: boolean;
110
+ /** Invoked once when a drag begins (after the minimum drag distance threshold is met). */
111
+ dragStarted: EventList;
112
+ /** Invoked every frame while the object is being dragged. */
113
+ dragUpdated: EventList;
114
+ /** Invoked once when the last pointer is released and the drag ends. */
115
+ dragEnded: EventList;
109
116
  /**
110
117
  * Returns the object currently being dragged by this DragControls component, if any.
111
118
  * @returns The object being dragged or null if no object is currently dragged
@@ -13,8 +13,8 @@ import { serializable } from "../engine/engine_serialization_decorator.js";
13
13
  import { getBoundingBox, getTempVector, getWorldPosition, setWorldPosition } from "../engine/engine_three_utils.js";
14
14
  import { getParam } from "../engine/engine_utils.js";
15
15
  import { NeedleXRSession } from "../engine/engine_xr.js";
16
- import { Avatar_POI } from "./avatar/Avatar_Brain_LookAt.js";
17
16
  import { Behaviour, GameObject } from "./Component.js";
17
+ import { EventList } from "./EventList.js";
18
18
  import { UsageMarker } from "./Interactable.js";
19
19
  import { Rigidbody } from "./RigidBody.js";
20
20
  import { SyncedTransform } from "./SyncedTransform.js";
@@ -137,6 +137,12 @@ export class DragControls extends Behaviour {
137
137
  * providing visual feedback about the object's position relative to surfaces below it.
138
138
  */
139
139
  showGizmo = false;
140
+ /** Invoked once when a drag begins (after the minimum drag distance threshold is met). */
141
+ dragStarted = new EventList();
142
+ /** Invoked every frame while the object is being dragged. */
143
+ dragUpdated = new EventList();
144
+ /** Invoked once when the last pointer is released and the drag ends. */
145
+ dragEnded = new EventList();
140
146
  /**
141
147
  * Returns the object currently being dragged by this DragControls component, if any.
142
148
  * @returns The object being dragged or null if no object is currently dragged
@@ -415,6 +421,7 @@ export class DragControls extends Behaviour {
415
421
  if (!object)
416
422
  return;
417
423
  this._isDragging = true;
424
+ this.dragStarted?.invoke();
418
425
  const sync = GameObject.getComponentInChildren(object, SyncedTransform);
419
426
  if (debug)
420
427
  console.log("DRAG START", sync, object);
@@ -448,6 +455,7 @@ export class DragControls extends Behaviour {
448
455
  }
449
456
  const object = this._targetObject || this.gameObject;
450
457
  InstancingUtil.markDirty(object);
458
+ this.dragUpdated?.invoke();
451
459
  }
452
460
  /**
453
461
  * Called when the last pointer has been removed from this object.
@@ -458,6 +466,7 @@ export class DragControls extends Behaviour {
458
466
  if (!this || !this._isDragging)
459
467
  return;
460
468
  this._isDragging = false;
469
+ this.dragEnded?.invoke();
461
470
  for (const rb of this._draggingRigidbodies) {
462
471
  rb.setVelocity(rb.smoothedVelocity.multiplyScalar(this.context.time.deltaTime));
463
472
  }
@@ -500,6 +509,15 @@ __decorate([
500
509
  __decorate([
501
510
  serializable()
502
511
  ], DragControls.prototype, "showGizmo", void 0);
512
+ __decorate([
513
+ serializable(EventList)
514
+ ], DragControls.prototype, "dragStarted", void 0);
515
+ __decorate([
516
+ serializable(EventList)
517
+ ], DragControls.prototype, "dragUpdated", void 0);
518
+ __decorate([
519
+ serializable(EventList)
520
+ ], DragControls.prototype, "dragEnded", void 0);
503
521
  // #region MultiTouchDragHandler
504
522
  /**
505
523
  * Handles two touch points affecting one object.
@@ -1283,10 +1301,6 @@ class LegacyDragVisualsHelper {
1283
1301
  rb.setVelocity(0, 0, 0);
1284
1302
  }
1285
1303
  }
1286
- if (this._selected) {
1287
- // TODO move somewhere else
1288
- Avatar_POI.Remove(context, this._selected);
1289
- }
1290
1304
  this._selected = newSelected;
1291
1305
  this._context = context;
1292
1306
  this._rbs.length = 0;
@@ -1303,8 +1317,6 @@ class LegacyDragVisualsHelper {
1303
1317
  console.error("DragHelper: no context");
1304
1318
  return;
1305
1319
  }
1306
- // TODO move somewhere else
1307
- Avatar_POI.Add(context, this._selected, null);
1308
1320
  this._groundOffsetFactor = 0;
1309
1321
  this._hasGroundPlane = true;
1310
1322
  this._groundOffset.set(0, 0, 0);