@needle-tools/engine 5.1.0-canary.deec6e4 → 5.1.0-canary.e7c2511

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 (243) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/components.needle.json +1 -1
  3. package/dist/{needle-engine.bundle-CvtELXh0.js → needle-engine.bundle-D-eWNCu1.js} +15969 -15550
  4. package/dist/needle-engine.bundle-D3ZUII8o.min.js +1733 -0
  5. package/dist/needle-engine.bundle-_rOpvUGL.umd.cjs +1733 -0
  6. package/dist/needle-engine.d.ts +746 -156
  7. package/dist/needle-engine.js +529 -529
  8. package/dist/needle-engine.min.js +1 -1
  9. package/dist/needle-engine.umd.cjs +1 -1
  10. package/lib/engine/api.d.ts +5 -0
  11. package/lib/engine/api.js +4 -0
  12. package/lib/engine/api.js.map +1 -1
  13. package/lib/engine/codegen/register_types.js +2 -10
  14. package/lib/engine/codegen/register_types.js.map +1 -1
  15. package/lib/engine/engine_audio.d.ts +68 -0
  16. package/lib/engine/engine_audio.js +172 -0
  17. package/lib/engine/engine_audio.js.map +1 -1
  18. package/lib/engine/engine_components.js +1 -1
  19. package/lib/engine/engine_components.js.map +1 -1
  20. package/lib/engine/engine_context.d.ts +1 -1
  21. package/lib/engine/engine_context.js +2 -2
  22. package/lib/engine/engine_context.js.map +1 -1
  23. package/lib/engine/engine_disposable.d.ts +171 -0
  24. package/lib/engine/engine_disposable.js +136 -0
  25. package/lib/engine/engine_disposable.js.map +1 -0
  26. package/lib/engine/engine_gameobject.d.ts +1 -10
  27. package/lib/engine/engine_gameobject.js +22 -120
  28. package/lib/engine/engine_gameobject.js.map +1 -1
  29. package/lib/engine/engine_gltf_builtin_components.js +7 -69
  30. package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
  31. package/lib/engine/engine_init.js +6 -6
  32. package/lib/engine/engine_init.js.map +1 -1
  33. package/lib/engine/engine_input.d.ts +1 -1
  34. package/lib/engine/engine_input.js +1 -1
  35. package/lib/engine/engine_input.js.map +1 -1
  36. package/lib/engine/engine_instantiate_resolve.d.ts +42 -0
  37. package/lib/engine/engine_instantiate_resolve.js +372 -0
  38. package/lib/engine/engine_instantiate_resolve.js.map +1 -0
  39. package/lib/engine/engine_license.js +1 -1
  40. package/lib/engine/engine_license.js.map +1 -1
  41. package/lib/engine/engine_mainloop_utils.js +5 -2
  42. package/lib/engine/engine_mainloop_utils.js.map +1 -1
  43. package/lib/engine/engine_networking.js +3 -1
  44. package/lib/engine/engine_networking.js.map +1 -1
  45. package/lib/engine/engine_networking_blob.js +1 -1
  46. package/lib/engine/engine_networking_blob.js.map +1 -1
  47. package/lib/engine/engine_physics_rapier.d.ts +11 -3
  48. package/lib/engine/engine_physics_rapier.js +88 -25
  49. package/lib/engine/engine_physics_rapier.js.map +1 -1
  50. package/lib/engine/engine_scenedata.js +2 -2
  51. package/lib/engine/engine_scenedata.js.map +1 -1
  52. package/lib/engine/engine_serialization_builtin_serializer.js +28 -5
  53. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  54. package/lib/engine/engine_serialization_core.d.ts +1 -0
  55. package/lib/engine/engine_serialization_core.js +7 -0
  56. package/lib/engine/engine_serialization_core.js.map +1 -1
  57. package/lib/engine/engine_types.d.ts +17 -9
  58. package/lib/engine/engine_types.js +1 -1
  59. package/lib/engine/engine_types.js.map +1 -1
  60. package/lib/engine/engine_util_decorator.js +7 -2
  61. package/lib/engine/engine_util_decorator.js.map +1 -1
  62. package/lib/engine/engine_utils.d.ts +1 -1
  63. package/lib/engine/engine_utils.js +19 -5
  64. package/lib/engine/engine_utils.js.map +1 -1
  65. package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +1 -1
  66. package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js.map +1 -1
  67. package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +1 -1
  68. package/lib/engine/webcomponents/needle menu/needle-menu.js +1 -1
  69. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  70. package/lib/engine/webcomponents/needle-engine.d.ts +10 -4
  71. package/lib/engine/webcomponents/needle-engine.js +1 -1
  72. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  73. package/lib/engine/xr/NeedleXRSession.d.ts +3 -2
  74. package/lib/engine/xr/NeedleXRSession.js +50 -14
  75. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  76. package/lib/engine/xr/events.d.ts +1 -1
  77. package/lib/engine/xr/events.js.map +1 -1
  78. package/lib/engine-components/Animation.js +17 -16
  79. package/lib/engine-components/Animation.js.map +1 -1
  80. package/lib/engine-components/Animator.d.ts +6 -0
  81. package/lib/engine-components/Animator.js +17 -12
  82. package/lib/engine-components/Animator.js.map +1 -1
  83. package/lib/engine-components/AnimatorController.builder.d.ts +113 -0
  84. package/lib/engine-components/AnimatorController.builder.js +195 -0
  85. package/lib/engine-components/AnimatorController.builder.js.map +1 -0
  86. package/lib/engine-components/AnimatorController.d.ts +2 -119
  87. package/lib/engine-components/AnimatorController.js +31 -232
  88. package/lib/engine-components/AnimatorController.js.map +1 -1
  89. package/lib/engine-components/AudioSource.d.ts +19 -3
  90. package/lib/engine-components/AudioSource.js +121 -68
  91. package/lib/engine-components/AudioSource.js.map +1 -1
  92. package/lib/engine-components/Collider.d.ts +18 -9
  93. package/lib/engine-components/Collider.js +61 -14
  94. package/lib/engine-components/Collider.js.map +1 -1
  95. package/lib/engine-components/Component.d.ts +58 -6
  96. package/lib/engine-components/Component.js +77 -0
  97. package/lib/engine-components/Component.js.map +1 -1
  98. package/lib/engine-components/DragControls.d.ts +7 -0
  99. package/lib/engine-components/DragControls.js +19 -7
  100. package/lib/engine-components/DragControls.js.map +1 -1
  101. package/lib/engine-components/EventList.d.ts +31 -9
  102. package/lib/engine-components/EventList.js +37 -76
  103. package/lib/engine-components/EventList.js.map +1 -1
  104. package/lib/engine-components/Joints.d.ts +4 -2
  105. package/lib/engine-components/Joints.js +19 -3
  106. package/lib/engine-components/Joints.js.map +1 -1
  107. package/lib/engine-components/Light.js +9 -1
  108. package/lib/engine-components/Light.js.map +1 -1
  109. package/lib/engine-components/Networking.d.ts +1 -1
  110. package/lib/engine-components/Networking.js +1 -1
  111. package/lib/engine-components/OrbitControls.js +16 -11
  112. package/lib/engine-components/OrbitControls.js.map +1 -1
  113. package/lib/engine-components/RigidBody.d.ts +12 -4
  114. package/lib/engine-components/RigidBody.js +18 -4
  115. package/lib/engine-components/RigidBody.js.map +1 -1
  116. package/lib/engine-components/SeeThrough.js +2 -2
  117. package/lib/engine-components/SeeThrough.js.map +1 -1
  118. package/lib/engine-components/api.d.ts +1 -1
  119. package/lib/engine-components/api.js +1 -1
  120. package/lib/engine-components/api.js.map +1 -1
  121. package/lib/engine-components/codegen/components.d.ts +3 -9
  122. package/lib/engine-components/codegen/components.js +3 -9
  123. package/lib/engine-components/codegen/components.js.map +1 -1
  124. package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.d.ts +1 -1
  125. package/lib/engine-components/timeline/PlayableDirector.d.ts +16 -6
  126. package/lib/engine-components/timeline/PlayableDirector.js +63 -61
  127. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  128. package/lib/engine-components/timeline/SignalAsset.d.ts +3 -1
  129. package/lib/engine-components/timeline/SignalAsset.js +1 -0
  130. package/lib/engine-components/timeline/SignalAsset.js.map +1 -1
  131. package/lib/engine-components/timeline/TimelineBuilder.d.ts +247 -0
  132. package/lib/engine-components/timeline/TimelineBuilder.js +400 -0
  133. package/lib/engine-components/timeline/TimelineBuilder.js.map +1 -0
  134. package/lib/engine-components/timeline/TimelineModels.d.ts +2 -1
  135. package/lib/engine-components/timeline/TimelineModels.js +3 -0
  136. package/lib/engine-components/timeline/TimelineModels.js.map +1 -1
  137. package/lib/engine-components/timeline/TimelineTracks.d.ts +23 -0
  138. package/lib/engine-components/timeline/TimelineTracks.js +71 -13
  139. package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
  140. package/lib/engine-components/timeline/index.d.ts +2 -1
  141. package/lib/engine-components/timeline/index.js +2 -0
  142. package/lib/engine-components/timeline/index.js.map +1 -1
  143. package/lib/engine-components/ui/Canvas.d.ts +1 -1
  144. package/lib/engine-components/ui/Canvas.js +2 -8
  145. package/lib/engine-components/ui/Canvas.js.map +1 -1
  146. package/lib/engine-components/ui/Text.d.ts +1 -0
  147. package/lib/engine-components/ui/Text.js +10 -7
  148. package/lib/engine-components/ui/Text.js.map +1 -1
  149. package/lib/engine-components/web/CursorFollow.js +21 -12
  150. package/lib/engine-components/web/CursorFollow.js.map +1 -1
  151. package/lib/engine-components/webxr/WebXRImageTracking.js +4 -0
  152. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  153. package/package.json +2 -83
  154. package/plugins/common/worker.js +9 -4
  155. package/plugins/vite/asap.js +17 -8
  156. package/plugins/vite/dependencies.js +29 -0
  157. package/plugins/vite/dependency-watcher.js +2 -2
  158. package/plugins/vite/editor-connection.js +3 -3
  159. package/plugins/vite/local-files-core.js +3 -3
  160. package/plugins/vite/local-files-utils.d.ts +3 -1
  161. package/plugins/vite/local-files-utils.js +29 -5
  162. package/plugins/vite/reload.js +1 -1
  163. package/plugins/vite/server.js +2 -1
  164. package/src/engine/api.ts +7 -0
  165. package/src/engine/codegen/register_types.ts +2 -10
  166. package/src/engine/engine_audio.ts +184 -0
  167. package/src/engine/engine_components.ts +1 -1
  168. package/src/engine/engine_context.ts +3 -3
  169. package/src/engine/engine_disposable.ts +213 -0
  170. package/src/engine/engine_gameobject.ts +54 -159
  171. package/src/engine/engine_gltf_builtin_components.ts +7 -76
  172. package/src/engine/engine_init.ts +6 -6
  173. package/src/engine/engine_input.ts +1 -1
  174. package/src/engine/engine_instantiate_resolve.ts +407 -0
  175. package/src/engine/engine_license.ts +1 -1
  176. package/src/engine/engine_mainloop_utils.ts +5 -2
  177. package/src/engine/engine_networking.ts +3 -1
  178. package/src/engine/engine_networking_blob.ts +1 -1
  179. package/src/engine/engine_physics_rapier.ts +82 -27
  180. package/src/engine/engine_scenedata.ts +3 -3
  181. package/src/engine/engine_serialization_builtin_serializer.ts +32 -9
  182. package/src/engine/engine_serialization_core.ts +9 -0
  183. package/src/engine/engine_types.ts +22 -13
  184. package/src/engine/engine_util_decorator.ts +7 -2
  185. package/src/engine/engine_utils.ts +16 -5
  186. package/src/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +1 -1
  187. package/src/engine/webcomponents/needle menu/needle-menu.ts +1 -1
  188. package/src/engine/webcomponents/needle-engine.ts +10 -4
  189. package/src/engine/xr/NeedleXRSession.ts +48 -13
  190. package/src/engine/xr/events.ts +1 -1
  191. package/src/engine-components/Animation.ts +19 -16
  192. package/src/engine-components/Animator.ts +18 -11
  193. package/src/engine-components/AnimatorController.builder.ts +261 -0
  194. package/src/engine-components/AnimatorController.ts +19 -291
  195. package/src/engine-components/AudioSource.ts +130 -79
  196. package/src/engine-components/Collider.ts +66 -18
  197. package/src/engine-components/Component.ts +79 -9
  198. package/src/engine-components/DragControls.ts +18 -11
  199. package/src/engine-components/EventList.ts +45 -83
  200. package/src/engine-components/Joints.ts +20 -4
  201. package/src/engine-components/Light.ts +10 -2
  202. package/src/engine-components/Networking.ts +1 -1
  203. package/src/engine-components/OrbitControls.ts +18 -9
  204. package/src/engine-components/RigidBody.ts +18 -4
  205. package/src/engine-components/SeeThrough.ts +2 -2
  206. package/src/engine-components/api.ts +1 -1
  207. package/src/engine-components/codegen/components.ts +3 -9
  208. package/src/engine-components/timeline/PlayableDirector.ts +61 -64
  209. package/src/engine-components/timeline/SignalAsset.ts +4 -1
  210. package/src/engine-components/timeline/TimelineBuilder.ts +565 -0
  211. package/src/engine-components/timeline/TimelineModels.ts +5 -1
  212. package/src/engine-components/timeline/TimelineTracks.ts +74 -13
  213. package/src/engine-components/timeline/index.ts +2 -1
  214. package/src/engine-components/ui/Canvas.ts +2 -8
  215. package/src/engine-components/ui/Text.ts +12 -8
  216. package/src/engine-components/web/CursorFollow.ts +21 -13
  217. package/src/engine-components/webxr/WebXRImageTracking.ts +2 -0
  218. package/dist/needle-engine.bundle-1s2gOoKZ.min.js +0 -1732
  219. package/dist/needle-engine.bundle-j4nGJXCs.umd.cjs +0 -1732
  220. package/lib/engine-components/AvatarLoader.d.ts +0 -80
  221. package/lib/engine-components/AvatarLoader.js +0 -232
  222. package/lib/engine-components/AvatarLoader.js.map +0 -1
  223. package/lib/engine-components/avatar/AvatarBlink_Simple.d.ts +0 -11
  224. package/lib/engine-components/avatar/AvatarBlink_Simple.js +0 -77
  225. package/lib/engine-components/avatar/AvatarBlink_Simple.js.map +0 -1
  226. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.d.ts +0 -14
  227. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js +0 -69
  228. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js.map +0 -1
  229. package/lib/engine-components/avatar/Avatar_Brain_LookAt.d.ts +0 -29
  230. package/lib/engine-components/avatar/Avatar_Brain_LookAt.js +0 -122
  231. package/lib/engine-components/avatar/Avatar_Brain_LookAt.js.map +0 -1
  232. package/lib/engine-components/avatar/Avatar_MouthShapes.d.ts +0 -15
  233. package/lib/engine-components/avatar/Avatar_MouthShapes.js +0 -80
  234. package/lib/engine-components/avatar/Avatar_MouthShapes.js.map +0 -1
  235. package/lib/engine-components/avatar/Avatar_MustacheShake.d.ts +0 -9
  236. package/lib/engine-components/avatar/Avatar_MustacheShake.js +0 -30
  237. package/lib/engine-components/avatar/Avatar_MustacheShake.js.map +0 -1
  238. package/src/engine-components/AvatarLoader.ts +0 -264
  239. package/src/engine-components/avatar/AvatarBlink_Simple.ts +0 -70
  240. package/src/engine-components/avatar/AvatarEyeLook_Rotation.ts +0 -64
  241. package/src/engine-components/avatar/Avatar_Brain_LookAt.ts +0 -140
  242. package/src/engine-components/avatar/Avatar_MouthShapes.ts +0 -84
  243. package/src/engine-components/avatar/Avatar_MustacheShake.ts +0 -32
@@ -0,0 +1,171 @@
1
+ /** A function that performs cleanup when called */
2
+ export type DisposeFn = () => void;
3
+ /**
4
+ * Interface for objects that hold resources and can be disposed.
5
+ * Implement this interface on any object that needs deterministic cleanup.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * class MyResource implements IDisposable {
10
+ * dispose() { /* release resources *\/ }
11
+ * }
12
+ * ```
13
+ *
14
+ * @category Utilities
15
+ * @group Lifecycle
16
+ */
17
+ export interface IDisposable {
18
+ dispose(): void;
19
+ }
20
+ /**
21
+ * Type guard to check if an object implements {@link IDisposable}.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * if (isDisposable(obj)) {
26
+ * obj.dispose(); // safe to call
27
+ * }
28
+ * ```
29
+ */
30
+ export declare function isDisposable(value: unknown): value is IDisposable;
31
+ /**
32
+ * Subscribe to a DOM event on any {@link EventTarget} (window, document, HTML elements, etc.)
33
+ * and return an {@link IDisposable} that removes the listener when disposed.
34
+ *
35
+ * Provides full TypeScript event type inference — the callback parameter
36
+ * is automatically typed based on the event name (e.g. `"resize"` → `UIEvent`,
37
+ * `"click"` → `MouseEvent`).
38
+ *
39
+ * Use with {@link DisposableStore.add} for automatic lifecycle cleanup in components.
40
+ *
41
+ * @param target The EventTarget to listen on (window, document, an element, etc.)
42
+ * @param type The event name (e.g. `"resize"`, `"click"`, `"keydown"`)
43
+ * @param listener The event handler callback
44
+ * @param options Optional addEventListener options (passive, capture, once, signal)
45
+ * @returns An {@link IDisposable} that removes the event listener when disposed
46
+ *
47
+ * @example Standalone usage
48
+ * ```ts
49
+ * import { on } from "@needle-tools/engine";
50
+ *
51
+ * const sub = on(window, "resize", (ev) => {
52
+ * // ev is typed as UIEvent
53
+ * console.log("resized", ev.target);
54
+ * });
55
+ *
56
+ * // Later: clean up
57
+ * sub.dispose();
58
+ * ```
59
+ *
60
+ * @example With autoCleanup in a component
61
+ * ```ts
62
+ * import { Behaviour, on } from "@needle-tools/engine";
63
+ *
64
+ * export class MyComponent extends Behaviour {
65
+ * onEnable() {
66
+ * this.autoCleanup(on(window, "resize", (ev) => { /* UIEvent *\/ }));
67
+ * this.autoCleanup(on(document, "keydown", (ev) => { /* KeyboardEvent *\/ }));
68
+ * this.autoCleanup(on(this.context.domElement, "click", (ev) => { /* MouseEvent *\/ }));
69
+ * }
70
+ * // All listeners removed automatically on disable!
71
+ * }
72
+ * ```
73
+ *
74
+ * @category Utilities
75
+ * @group Lifecycle
76
+ */
77
+ export declare function on<K extends keyof WindowEventMap>(target: Window, type: K, listener: (ev: WindowEventMap[K]) => void, options?: boolean | AddEventListenerOptions): IDisposable;
78
+ export declare function on<K extends keyof DocumentEventMap>(target: Document, type: K, listener: (ev: DocumentEventMap[K]) => void, options?: boolean | AddEventListenerOptions): IDisposable;
79
+ export declare function on<K extends keyof HTMLElementEventMap>(target: HTMLElement, type: K, listener: (ev: HTMLElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): IDisposable;
80
+ export declare function on(target: EventTarget, type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): IDisposable;
81
+ /**
82
+ * A store for managing disposable resources (event subscriptions, listeners, callbacks)
83
+ * that should be cleaned up together.
84
+ *
85
+ * DisposableStore collects disposables and disposes them all at once when
86
+ * {@link dispose} is called. After disposal, the store can be reused — new items
87
+ * can be added and a subsequent {@link dispose} call will clean those up.
88
+ *
89
+ * This is the same pattern used internally by VSCode for lifecycle-bound resource management.
90
+ *
91
+ * @example Basic usage
92
+ * ```ts
93
+ * import { DisposableStore, on } from "@needle-tools/engine";
94
+ *
95
+ * const store = new DisposableStore();
96
+ *
97
+ * // Register a DOM event listener (typed!)
98
+ * store.add(on(window, "resize", (ev) => console.log(ev)));
99
+ *
100
+ * // Register the return value of EventList.on()
101
+ * store.add(myEventList.on(data => console.log(data)));
102
+ *
103
+ * // Register a raw cleanup function
104
+ * store.add(() => someSDK.off("event", handler));
105
+ *
106
+ * // Later: dispose everything at once
107
+ * store.dispose();
108
+ * ```
109
+ *
110
+ * @example Use with Needle Engine components
111
+ * ```ts
112
+ * import { Behaviour, serializable, EventList, on } from "@needle-tools/engine";
113
+ *
114
+ * export class MyComponent extends Behaviour {
115
+ * @serializable(EventList)
116
+ * onClick?: EventList;
117
+ *
118
+ * onEnable() {
119
+ * // DOM events — fully typed
120
+ * this.autoCleanup(on(window, "resize", (ev) => this.onResize(ev)));
121
+ *
122
+ * // EventList — .on() returns a function, autoCleanup accepts it
123
+ * this.autoCleanup(this.onClick?.on(() => console.log("clicked!")));
124
+ * }
125
+ * // No onDisable needed — cleaned up automatically!
126
+ * }
127
+ * ```
128
+ *
129
+ * @category Utilities
130
+ * @group Lifecycle
131
+ */
132
+ export declare class DisposableStore implements IDisposable {
133
+ private _disposables;
134
+ /** The number of registered disposables */
135
+ get size(): number;
136
+ /**
137
+ * Register a disposable resource. Accepts:
138
+ * - An {@link IDisposable} object (has a `dispose()` method) — e.g. from {@link on}
139
+ * - A cleanup function (e.g. return value of `EventList.on()`)
140
+ * - `null` or `undefined` (safe no-op for conditional subscriptions)
141
+ *
142
+ * When {@link dispose} is called, all registered resources are cleaned up.
143
+ *
144
+ * @param disposable The resource to register for disposal
145
+ *
146
+ * @example
147
+ * ```ts
148
+ * const store = new DisposableStore();
149
+ *
150
+ * // IDisposable object from on()
151
+ * store.add(on(window, "resize", handler));
152
+ *
153
+ * // Function returned by EventList.on()
154
+ * store.add(myEvent.on(handler));
155
+ *
156
+ * // Raw cleanup function
157
+ * store.add(() => connection.close());
158
+ *
159
+ * // Conditional — safe with undefined
160
+ * store.add(this.maybeEvent?.on(handler));
161
+ * ```
162
+ */
163
+ add(disposable: IDisposable | DisposeFn | Function | null | undefined): void;
164
+ /**
165
+ * Dispose all registered resources. Each registered disposable is cleaned up,
166
+ * then the internal list is cleared. The store can be reused after disposal.
167
+ *
168
+ * Called automatically by the engine when a component's `onDisable` lifecycle fires.
169
+ */
170
+ dispose(): void;
171
+ }
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Type guard to check if an object implements {@link IDisposable}.
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * if (isDisposable(obj)) {
7
+ * obj.dispose(); // safe to call
8
+ * }
9
+ * ```
10
+ */
11
+ export function isDisposable(value) {
12
+ return value !== null
13
+ && typeof value === "object"
14
+ && "dispose" in value
15
+ && typeof value.dispose === "function";
16
+ }
17
+ export function on(target, type, listener, options) {
18
+ target.addEventListener(type, listener, options);
19
+ return {
20
+ dispose() {
21
+ target.removeEventListener(type, listener, options);
22
+ }
23
+ };
24
+ }
25
+ /**
26
+ * A store for managing disposable resources (event subscriptions, listeners, callbacks)
27
+ * that should be cleaned up together.
28
+ *
29
+ * DisposableStore collects disposables and disposes them all at once when
30
+ * {@link dispose} is called. After disposal, the store can be reused — new items
31
+ * can be added and a subsequent {@link dispose} call will clean those up.
32
+ *
33
+ * This is the same pattern used internally by VSCode for lifecycle-bound resource management.
34
+ *
35
+ * @example Basic usage
36
+ * ```ts
37
+ * import { DisposableStore, on } from "@needle-tools/engine";
38
+ *
39
+ * const store = new DisposableStore();
40
+ *
41
+ * // Register a DOM event listener (typed!)
42
+ * store.add(on(window, "resize", (ev) => console.log(ev)));
43
+ *
44
+ * // Register the return value of EventList.on()
45
+ * store.add(myEventList.on(data => console.log(data)));
46
+ *
47
+ * // Register a raw cleanup function
48
+ * store.add(() => someSDK.off("event", handler));
49
+ *
50
+ * // Later: dispose everything at once
51
+ * store.dispose();
52
+ * ```
53
+ *
54
+ * @example Use with Needle Engine components
55
+ * ```ts
56
+ * import { Behaviour, serializable, EventList, on } from "@needle-tools/engine";
57
+ *
58
+ * export class MyComponent extends Behaviour {
59
+ * @serializable(EventList)
60
+ * onClick?: EventList;
61
+ *
62
+ * onEnable() {
63
+ * // DOM events — fully typed
64
+ * this.autoCleanup(on(window, "resize", (ev) => this.onResize(ev)));
65
+ *
66
+ * // EventList — .on() returns a function, autoCleanup accepts it
67
+ * this.autoCleanup(this.onClick?.on(() => console.log("clicked!")));
68
+ * }
69
+ * // No onDisable needed — cleaned up automatically!
70
+ * }
71
+ * ```
72
+ *
73
+ * @category Utilities
74
+ * @group Lifecycle
75
+ */
76
+ // #region DisposableStore
77
+ export class DisposableStore {
78
+ _disposables = [];
79
+ /** The number of registered disposables */
80
+ get size() { return this._disposables.length; }
81
+ /**
82
+ * Register a disposable resource. Accepts:
83
+ * - An {@link IDisposable} object (has a `dispose()` method) — e.g. from {@link on}
84
+ * - A cleanup function (e.g. return value of `EventList.on()`)
85
+ * - `null` or `undefined` (safe no-op for conditional subscriptions)
86
+ *
87
+ * When {@link dispose} is called, all registered resources are cleaned up.
88
+ *
89
+ * @param disposable The resource to register for disposal
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * const store = new DisposableStore();
94
+ *
95
+ * // IDisposable object from on()
96
+ * store.add(on(window, "resize", handler));
97
+ *
98
+ * // Function returned by EventList.on()
99
+ * store.add(myEvent.on(handler));
100
+ *
101
+ * // Raw cleanup function
102
+ * store.add(() => connection.close());
103
+ *
104
+ * // Conditional — safe with undefined
105
+ * store.add(this.maybeEvent?.on(handler));
106
+ * ```
107
+ */
108
+ add(disposable) {
109
+ if (!disposable)
110
+ return;
111
+ if (typeof disposable === "function") {
112
+ this._disposables.push(disposable);
113
+ }
114
+ else if (typeof disposable === "object" && "dispose" in disposable) {
115
+ this._disposables.push(() => disposable.dispose());
116
+ }
117
+ }
118
+ /**
119
+ * Dispose all registered resources. Each registered disposable is cleaned up,
120
+ * then the internal list is cleared. The store can be reused after disposal.
121
+ *
122
+ * Called automatically by the engine when a component's `onDisable` lifecycle fires.
123
+ */
124
+ dispose() {
125
+ for (let i = this._disposables.length - 1; i >= 0; i--) {
126
+ try {
127
+ this._disposables[i]();
128
+ }
129
+ catch (err) {
130
+ console.error("Error disposing resource", err);
131
+ }
132
+ }
133
+ this._disposables.length = 0;
134
+ }
135
+ }
136
+ //# sourceMappingURL=engine_disposable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine_disposable.js","sourceRoot":"","sources":["../../src/engine/engine_disposable.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACvC,OAAO,KAAK,KAAK,IAAI;WACd,OAAO,KAAK,KAAK,QAAQ;WACzB,SAAS,IAAK,KAAgB;WAC9B,OAAQ,KAAqB,CAAC,OAAO,KAAK,UAAU,CAAC;AAChE,CAAC;AAqDD,MAAM,UAAU,EAAE,CAAC,MAAmB,EAAE,IAAY,EAAE,QAA4C,EAAE,OAA2C;IAC3I,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,OAAO;QACH,OAAO;YACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;KACJ,CAAC;AACN,CAAC;AAGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,0BAA0B;AAC1B,MAAM,OAAO,eAAe;IAEhB,YAAY,GAAqB,EAAE,CAAC;IAE5C,2CAA2C;IAC3C,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,GAAG,CAAC,UAAiE;QACjE,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAuB,CAAC,CAAC;QACpD,CAAC;aACI,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;YACjE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,OAAO;QACH,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,IAAI,CAAC;gBACD,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3B,CAAC;YACD,OAAO,GAAG,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;YACnD,CAAC;QACL,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,CAAC;CACJ"}
@@ -96,15 +96,7 @@ declare type ForEachComponentCallback = (comp: Component) => any;
96
96
  */
97
97
  export declare function foreachComponent(instance: Object3D, cb: ForEachComponentCallback, recursive?: boolean): any;
98
98
  export declare function foreachComponentEnumerator<T extends IComponent>(instance: Object3D, type?: Constructor<T>, includeChildren?: boolean, maxLevel?: number, _currentLevel?: number): Generator<T>;
99
- declare type ObjectCloneReference = {
100
- readonly original: object;
101
- readonly clone: object;
102
- };
103
- declare type InstantiateReferenceMap = Record<string, ObjectCloneReference>;
104
- /**
105
- * Provides access to the instantiated object and its clone
106
- */
107
- export declare type InstantiateContext = Readonly<InstantiateReferenceMap>;
99
+ export type { InstantiateContext, InstantiateReferenceMap, ObjectCloneReference } from "./engine_instantiate_resolve.js";
108
100
  /**
109
101
  * Creates a copy (clone) of a GameObject or loads and instantiates an AssetReference.
110
102
  * All components on the original object are cloned and `awake()` is called on them.
@@ -141,4 +133,3 @@ export declare type InstantiateContext = Readonly<InstantiateReferenceMap>;
141
133
  */
142
134
  export declare function instantiate(instance: AssetReference, opts?: IInstantiateOptions | null): Promise<Object3D | null>;
143
135
  export declare function instantiate(instance: GameObject | Object3D, opts?: IInstantiateOptions | null): GameObject;
144
- export {};
@@ -1,4 +1,4 @@
1
- import { Euler, Quaternion, Vector3 } from "three";
1
+ import { Euler, Object3D, Quaternion, Vector3 } from "three";
2
2
  import { $shadowDomOwner } from "../engine-components/ui/Symbols.js";
3
3
  import { __internalNotifyObjectDestroyed as __internalRemoveReferences, disposeObjectResources } from "./engine_assetdatabase.js";
4
4
  import { ComponentLifecycleEvents } from "./engine_components_internal.js";
@@ -7,6 +7,7 @@ import { editorGuidKeyName } from "./engine_constants.js";
7
7
  import { $isUsingInstancing, InstancingUtil } from "./engine_instancing.js";
8
8
  import { processNewScripts } from "./engine_mainloop_utils.js";
9
9
  import { InstantiateIdProvider } from "./engine_networking_instantiate.js";
10
+ import { resolveInstanceReferences } from "./engine_instantiate_resolve.js";
10
11
  import { assign } from "./engine_serialization_core.js";
11
12
  import { Context, registerComponent } from "./engine_setup.js";
12
13
  import { getTempQuaternion, logHierarchy } from "./engine_three_utils.js";
@@ -162,8 +163,8 @@ function internalDestroy(instance, recursive = true, isRoot = true) {
162
163
  return;
163
164
  destroyed_components.push(comp);
164
165
  const go = comp.gameObject;
165
- comp.__internalDisable();
166
- comp.__internalDestroy();
166
+ comp.__internalDisable?.();
167
+ comp.__internalDestroy?.();
167
168
  comp.gameObject = go;
168
169
  return;
169
170
  }
@@ -300,7 +301,7 @@ export function instantiate(instance, opts) {
300
301
  const skinnedMeshes = {}; // used to resolve skinned mesh bones
301
302
  const clone = internalInstantiate(context, instance, options, components, referencemap, skinnedMeshes);
302
303
  if (clone) {
303
- resolveReferences(clone, referencemap);
304
+ resolveInstanceReferences(referencemap);
304
305
  resolveAndBindSkinnedMeshBones(skinnedMeshes, referencemap);
305
306
  }
306
307
  if (debug) {
@@ -308,6 +309,16 @@ export function instantiate(instance, opts) {
308
309
  logHierarchy(clone, true);
309
310
  }
310
311
  const guidsMap = {};
312
+ // Cloned object guids
313
+ for (const ref in referencemap) {
314
+ const val = referencemap[ref];
315
+ const original = val.original;
316
+ const clone = val.clone;
317
+ if (original instanceof Object3D && clone instanceof Object3D) {
318
+ guidsMap[original.guid || original.uuid] = clone.guid || clone.uuid;
319
+ }
320
+ }
321
+ // Cloned component guids (generate new guids for components that dont have one and add them to the map)
311
322
  if (options?.components !== false) {
312
323
  for (const i in components) {
313
324
  const copy = components[i];
@@ -324,8 +335,6 @@ export function instantiate(instance, opts) {
324
335
  }
325
336
  for (const i in components) {
326
337
  const copy = components[i];
327
- if (copy.resolveGuids)
328
- copy.resolveGuids(guidsMap);
329
338
  if (copy.enabled === false)
330
339
  continue;
331
340
  else
@@ -356,7 +365,12 @@ function internalInstantiate(context, instance, opts, componentsList, objectsMap
356
365
  instance.userData = userData;
357
366
  instance.children = children;
358
367
  // make reference from old id to new object
359
- objectsMap[instance.uuid] = { original: instance, clone: clone };
368
+ const ref = { original: instance, clone: clone };
369
+ objectsMap[instance.uuid] = ref;
370
+ // Also key by guid so string guid references (e.g. PlayableDirector track.outputs) can be resolved
371
+ if ((instance).guid && (instance).guid !== instance.uuid) {
372
+ objectsMap[(instance).guid] = ref;
373
+ }
360
374
  if (debugInstantiate)
361
375
  console.log("ADD", instance, clone);
362
376
  if (instance.type === "SkinnedMesh") {
@@ -599,117 +613,5 @@ function resolveAndBindSkinnedMeshBones(skinnedMeshes, newObjectsMap) {
599
613
  // });
600
614
  // return clone;
601
615
  // }
602
- function resolveReferences(_newInstance, newObjectsMap) {
603
- // for every object that is newly created we want to update references to their newly created counterparts
604
- // e.g. a collider instance referencing a rigidbody instance should be updated so that
605
- // the cloned collider does not reference the cloned rigidbody (instead of the original rigidbody)
606
- for (const key in newObjectsMap) {
607
- const val = newObjectsMap[key];
608
- const clone = val.clone;
609
- // resolve references
610
- if (clone?.isObject3D && clone?.userData?.components) {
611
- for (let i = 0; i < clone.userData.components.length; i++) {
612
- const copy = clone.userData.components[i];
613
- // find referenced within a cloned gameobject
614
- const entries = Object.entries(copy);
615
- // console.log(copy, entries);
616
- for (const [key, value] of entries) {
617
- if (Array.isArray(value)) {
618
- const clonedArray = [];
619
- copy[key] = clonedArray;
620
- // console.log(copy, key, value, copy[key]);
621
- for (let i = 0; i < value.length; i++) {
622
- const entry = value[i];
623
- // push value types into new array
624
- if (typeof entry !== "object") {
625
- clonedArray.push(entry);
626
- continue;
627
- }
628
- const res = postProcessNewInstance(copy, key, entry, newObjectsMap);
629
- if (res !== undefined) {
630
- if (debugInstantiate)
631
- console.log("Found new instance for", key, entry, "->", res);
632
- clonedArray.push(res);
633
- }
634
- else {
635
- if (debugInstantiate)
636
- console.warn("Could not find new instance for", key, entry);
637
- clonedArray.push(entry);
638
- }
639
- }
640
- // console.log(copy[key])
641
- }
642
- else if (typeof value === "object") {
643
- const res = postProcessNewInstance(copy, key, value, newObjectsMap);
644
- if (res !== undefined) {
645
- copy[key] = res;
646
- }
647
- else {
648
- if (debugInstantiate)
649
- console.warn("Could not find new instance for", key, value);
650
- }
651
- }
652
- }
653
- }
654
- }
655
- }
656
- }
657
- function postProcessNewInstance(copy, key, value, newObjectsMap) {
658
- if (value === null || value === undefined)
659
- return;
660
- if (value.isComponent === true) {
661
- const originalGameObjectReference = value["gameObject"];
662
- // console.log(key, value, originalGameObjectReference);
663
- if (originalGameObjectReference) {
664
- const id = originalGameObjectReference.uuid;
665
- const newGameObject = newObjectsMap[id]?.clone;
666
- if (!newGameObject) {
667
- // reference has not changed!
668
- if (debugInstantiate)
669
- console.log("reference did not change", key, copy, value);
670
- return;
671
- }
672
- const index = originalGameObjectReference.userData.components.indexOf(value);
673
- if (index >= 0 && newGameObject.isObject3D) {
674
- if (debugInstantiate)
675
- console.log(key, id);
676
- const found = newGameObject.userData.components[index];
677
- return found;
678
- }
679
- else {
680
- console.warn("could not find component", key, value);
681
- }
682
- }
683
- }
684
- else if (value.isObject3D === true) {
685
- // console.log(value);
686
- if (key === "gameObject")
687
- return;
688
- const originalGameObjectReference = value;
689
- if (originalGameObjectReference) {
690
- const id = originalGameObjectReference.uuid;
691
- const newGameObject = newObjectsMap[id]?.clone;
692
- if (newGameObject) {
693
- if (debugInstantiate)
694
- console.log(key, "old", value, "new", newGameObject);
695
- return newGameObject;
696
- }
697
- }
698
- }
699
- else {
700
- // create new instances for some types that we know should usually not be shared and can safely be cloned
701
- if (value.isVector4 || value.isVector3 || value.isVector2 || value.isQuaternion || value.isEuler) {
702
- return value.clone();
703
- }
704
- else if (value.isColor === true) {
705
- return value.clone();
706
- }
707
- else if (value.isEventList === true) {
708
- // create a new instance of the object
709
- const copy = value.__internalOnInstantiate(newObjectsMap);
710
- return copy;
711
- }
712
- }
713
- }
714
- // const canClone = (value: any) => value.isVector4 || value.isVector3 || value.isVector2 || value.isQuaternion || value.isEuler || value.isColor === true;
616
+ // Reference resolution is now handled by the unified module: engine_instantiate_resolve.ts
715
617
  //# sourceMappingURL=engine_gameobject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine_gameobject.js","sourceRoot":"","sources":["../../src/engine/engine_gameobject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_gameobject.js","sourceRoot":"","sources":["../../src/engine/engine_gameobject.ts"],"names":[],"mappings":"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"}