@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
@@ -6,8 +6,11 @@ import { isDevEnvironment } from './debug/index.js';
6
6
  import { Telemetry } from './engine_license.js';
7
7
  import { PeerNetworking } from './engine_networking_peer.js';
8
8
  import { SendQueue } from './engine_networking_types.js';
9
+ import { WebsocketTransport } from './engine_networking.transport.websocket.js';
9
10
  import { isHostedOnGlitch } from './engine_networking_utils.js';
10
11
  import * as utils from "./engine_utils.js";
12
+ /** @internal Symbol used to attach the original callback to unsubscribe functions returned by beginListen/beginListenBinary */
13
+ const $originalCallback = Symbol("originalCallback");
11
14
  export const debugNet = utils.getParam("debugnet") ? true : false;
12
15
  export const debugOwner = debugNet || utils.getParam("debugowner") ? true : false;
13
16
  const debugnetBin = utils.getParam("debugnetbin");
@@ -442,8 +445,7 @@ export class NetworkConnection {
442
445
  * The current server url that the networking backend is connected to (e.g. the url of the websocket server)
443
446
  */
444
447
  get currentServerUrl() {
445
- // @ts-ignore (in ts-websocket 2.x this property is exposed)
446
- return this._ws?.url ?? null;
448
+ return this._transport?.url ?? null;
447
449
  }
448
450
  /** A ping is sent to the server at a regular interval while the browser tab is active. This method can be used to send additional ping messages when needed so that the user doesn't get disconnected from the networking backend */
449
451
  sendPing() {
@@ -494,20 +496,11 @@ export class NetworkConnection {
494
496
  this.send(RoomEvents.Leave, { room: room });
495
497
  return true;
496
498
  }
497
- send(key, data = null, queue = SendQueue.Queued) {
498
- //@ts-ignore
499
- if (data === null)
500
- data = {};
499
+ send(key, data, queue = SendQueue.Queued) {
501
500
  if (queue === SendQueue.Queued) {
502
501
  this._defaultMessagesBuffer.push({ key: key, value: data });
503
502
  return;
504
503
  }
505
- // if (!this.connected) return;
506
- // if (this.channelId)
507
- // data["__id"] = this.channelId;
508
- // else if (this.connectionId)
509
- // data["__id"] = this.connectionId;
510
- // this.sendGeckosIo(key, data);
511
504
  return this.sendWithWebsocket(key, data, queue);
512
505
  }
513
506
  /**
@@ -535,12 +528,12 @@ export class NetworkConnection {
535
528
  sendBinary(bin) {
536
529
  if (debugnetBin)
537
530
  console.log("<< send binary", this.context.time.frame, (bin.length / 1024) + " KB");
538
- this._ws?.send(bin);
531
+ this._transport?.send(bin);
539
532
  }
540
533
  _defaultMessagesBuffer = [];
541
534
  _defaultMessagesBufferArray = [];
542
535
  sendBufferedMessagesNow() {
543
- if (!this._ws)
536
+ if (!this._transport)
544
537
  return;
545
538
  this._defaultMessagesBufferArray.length = 0;
546
539
  const count = Object.keys(this._defaultMessagesBuffer).length;
@@ -560,31 +553,42 @@ export class NetworkConnection {
560
553
  if (this._defaultMessagesBufferArray.length <= 0)
561
554
  return;
562
555
  const message = JSON.stringify(this._defaultMessagesBufferArray);
563
- this._ws?.send(message);
556
+ this._transport?.send(message);
564
557
  }
565
558
  /** Use to start listening to networking events.
566
- * To unsubscribe from events use the `{@link stopListen}` method.
559
+ * Returns an unsubscribe function that removes the listener when called.
560
+ * The returned function can also be passed to {@link stopListen} or {@link Component.autoCleanup} for automatic lifecycle management.
567
561
  *
568
- * @example Custom event example
562
+ * @example With autoCleanup (recommended)
569
563
  * ```ts
570
- * // Listen to a custom event sent by the server
571
- * this.context.connection.beginListen<MyDataType>("my-custom-event", (data) => {
572
- * console.log("Received custom event:", data);
573
- * });
564
+ * export class MyComponent extends Behaviour {
565
+ * onEnable() {
566
+ * this.autoCleanup(this.context.connection.beginListen("joined-room", () => {
567
+ * console.log("I joined a networked room");
568
+ * }));
569
+ * }
570
+ * // Automatically unsubscribed on disable — no manual cleanup needed!
571
+ * }
574
572
  * ```
575
573
  *
576
- * @example Listening to room events
574
+ * @example Manual unsubscribe
575
+ * ```ts
576
+ * const unsub = this.context.connection.beginListen("joined-room", () => { });
577
+ * // Later:
578
+ * unsub(); // removes the listener
579
+ * ```
580
+ *
581
+ * @example With stopListen (legacy pattern, still supported)
577
582
  * ```ts
578
- * // Make sure to unsubscribe from events when the component is disabled
579
583
  * export class MyComponent extends Behaviour {
580
584
  * onEnable() {
581
- * this.connection.beginListen("joined-room", this.onJoinedRoom)
585
+ * this.context.connection.beginListen("joined-room", this.onJoinedRoom);
582
586
  * }
583
587
  * onDisable() {
584
- * this.connection.stopListen("joined-room", this.onJoinedRoom)
588
+ * this.context.connection.stopListen("joined-room", this.onJoinedRoom);
585
589
  * }
586
590
  * onJoinedRoom = () => {
587
- * console.log("I joined a networked room")
591
+ * console.log("I joined a networked room");
588
592
  * }
589
593
  * }
590
594
  * ```
@@ -595,33 +599,62 @@ export class NetworkConnection {
595
599
  if (!this._listeners[key])
596
600
  this._listeners[key] = [];
597
601
  this._listeners[key].push(callback);
598
- // TODO: for a breaking change it would be easier to return a function to unsubscribe directly
599
- return callback;
602
+ const unsub = () => this.stopListen(key, callback);
603
+ unsub[$originalCallback] = callback;
604
+ return unsub;
600
605
  }
601
606
  /**@deprecated please use stopListen instead (2.65.2-pre) */
602
607
  stopListening(key, callback) { return this.stopListen(key, callback); }
608
+ /** Use to stop listening to networking events.
609
+ * Accepts either the original callback or the unsubscribe function returned by {@link beginListen}.
610
+ * To subscribe to events use the `{@link beginListen}` method.
611
+ *
612
+ * @example
613
+ * ```ts
614
+ * // Both patterns work:
615
+ * this.context.connection.stopListen("joined-room", this.onJoinedRoom); // original callback
616
+ * this.context.connection.stopListen("joined-room", unsub); // unsubscribe fn from beginListen
617
+ * ```
618
+ */
619
+ static _didLogStopListenHint = false;
603
620
  stopListen(key, callback) {
604
621
  if (!callback)
605
622
  return;
606
623
  if (!this._listeners[key])
607
624
  return;
608
- const index = this._listeners[key].indexOf(callback);
625
+ // Backwards compat: if an unsubscribe function returned by beginListen was passed to stopListen,
626
+ // resolve it to the original callback via symbol so the listener can be found and removed.
627
+ const original = callback[$originalCallback] ?? callback;
628
+ if (original !== callback && isDevEnvironment() && !NetworkConnection._didLogStopListenHint) {
629
+ NetworkConnection._didLogStopListenHint = true;
630
+ console.warn("[Needle Engine] Tip: beginListen() returns an unsubscribe function — you can call it directly instead of using stopListen().");
631
+ }
632
+ const index = this._listeners[key].indexOf(original);
609
633
  if (index >= 0) {
610
634
  this._listeners[key].splice(index, 1);
611
635
  }
612
636
  }
613
- /** Use to start listening to networking binary events */
637
+ /** Use to start listening to networking binary events.
638
+ * Returns an unsubscribe function that removes the listener when called.
639
+ * The returned function can also be passed to {@link stopListenBinary} or {@link Component.autoCleanup}.
640
+ */
614
641
  beginListenBinary(identifier, callback) {
615
642
  if (!this._listenersBinary[identifier])
616
643
  this._listenersBinary[identifier] = [];
617
644
  this._listenersBinary[identifier].push(callback);
618
- return callback;
645
+ const unsub = () => this.stopListenBinary(identifier, callback);
646
+ unsub[$originalCallback] = callback;
647
+ return unsub;
619
648
  }
620
- /** Use to stop listening to networking binary events */
649
+ /** Use to stop listening to networking binary events.
650
+ * Accepts either the original callback or the unsubscribe function returned by {@link beginListenBinary}.
651
+ */
621
652
  stopListenBinary(identifier, callback) {
622
653
  if (!this._listenersBinary[identifier])
623
654
  return;
624
- const index = this._listenersBinary[identifier].indexOf(callback);
655
+ // Backwards compat: resolve unsubscribe function to original callback via symbol
656
+ const original = callback?.[$originalCallback] ?? callback;
657
+ const index = this._listenersBinary[identifier].indexOf(original);
625
658
  if (index >= 0) {
626
659
  this._listenersBinary[identifier].splice(index, 1);
627
660
  }
@@ -635,14 +668,18 @@ export class NetworkConnection {
635
668
  }
636
669
  /** Used to connect to the networking server
637
670
  * @param url Optional url to connect to. If not provided, it will use the url from the registered `INetworkingWebsocketUrlProvider` or the default backend networking url. If you want to change the url after connecting, you need to disconnect first and then connect again with the new url.
671
+ * @param transport Optional custom transport to use instead of the default websocket. Useful for testing or alternative transports.
638
672
  */
639
- async connect(url) {
673
+ async connect(url, transport) {
640
674
  if (this.connected && url && url !== networkingServerUrl) {
641
675
  return Promise.reject("Can not connect to different server url. Please disconnect first.");
642
676
  }
643
677
  if (this.connected) {
644
678
  return Promise.resolve(true);
645
679
  }
680
+ if (transport) {
681
+ return this.connectTransport(transport);
682
+ }
646
683
  if (url)
647
684
  console.debug("Connecting to user provided url " + url);
648
685
  const overrideUrl = url || this.netWebSocketUrlProvider?.getWebsocketUrl();
@@ -657,10 +694,19 @@ export class NetworkConnection {
657
694
  ;
658
695
  /** Disconnect from the networking backend + reset internal state */
659
696
  disconnect() {
660
- this._ws?.close();
661
- this._ws = undefined;
697
+ if (this._transport) {
698
+ // Clear callbacks before closing so the onClose handler doesn't fire
699
+ this._transport.onOpen = null;
700
+ this._transport.onClose = null;
701
+ this._transport.onError = null;
702
+ this._transport.onMessage = null;
703
+ this._transport.close();
704
+ this._transport = undefined;
705
+ }
662
706
  networkingServerUrl = undefined;
663
- // Reset all state
707
+ // Reset all state synchronously so callers can rely on isConnected/isInRoom immediately
708
+ this.connected = false;
709
+ this._connectionId = null;
664
710
  this._currentRoomAllowEditing = true;
665
711
  this._currentRoomName = null;
666
712
  this._currentRoomViewId = null;
@@ -668,14 +714,23 @@ export class NetworkConnection {
668
714
  this._currentInRoom.length = 0;
669
715
  this._state = {};
670
716
  this._currentDelay = -1;
717
+ this._connectingToWebsocketPromise = null;
718
+ }
719
+ /** Full teardown: disconnect, clear all listeners, and release all resources.
720
+ * Called when the owning Context is destroyed. After dispose(), this instance should not be reused. */
721
+ dispose() {
722
+ this.disconnect();
723
+ this._listeners = {};
724
+ this._listenersBinary = {};
725
+ this._waitingForSocket = {};
726
+ this._peer = null;
671
727
  }
672
728
  _listeners = {};
673
729
  _listenersBinary = {};
674
730
  connected = false;
675
- channelId;
676
731
  _connectionId = null;
677
- // Websocket ------------------------------------------------------------
678
- _ws;
732
+ // Transport ------------------------------------------------------------
733
+ _transport;
679
734
  _waitingForSocket = {};
680
735
  _isInRoom = false;
681
736
  _currentRoomName = null;
@@ -685,10 +740,11 @@ export class NetworkConnection {
685
740
  _state = {};
686
741
  _currentDelay = -1;
687
742
  _connectingToWebsocketPromise = null;
688
- connectWebsocket() {
743
+ /** Wire up a transport's event callbacks and start it */
744
+ connectTransport(transport) {
689
745
  if (this._connectingToWebsocketPromise)
690
746
  return this._connectingToWebsocketPromise;
691
- return this._connectingToWebsocketPromise = new Promise(async (res, _) => {
747
+ return this._connectingToWebsocketPromise = new Promise((res) => {
692
748
  let didResolve = false;
693
749
  const resolve = (val) => {
694
750
  if (didResolve)
@@ -696,63 +752,57 @@ export class NetworkConnection {
696
752
  didResolve = true;
697
753
  res(val);
698
754
  };
699
- if (networkingServerUrl === undefined) {
700
- console.log("Fetch default backend url: " + defaultNetworkingBackendUrlProvider);
701
- const failed = false;
702
- const defaultUrlResponse = await fetch(defaultNetworkingBackendUrlProvider);
703
- networkingServerUrl = await defaultUrlResponse.text();
704
- if (failed)
705
- return;
706
- }
707
- if (networkingServerUrl === undefined) {
708
- resolve(false);
709
- return;
710
- }
711
- console.debug("Connecting to networking backend on\n" + networkingServerUrl);
712
- const pkg = await import('websocket-ts');
713
- // @ts-ignore
714
- const WebsocketBuilder = pkg.default?.WebsocketBuilder ?? pkg.WebsocketBuilder;
715
- const ExponentialBackoff = pkg.default?.ExponentialBackoff ?? pkg.ExponentialBackoff;
716
- const ws = new WebsocketBuilder(networkingServerUrl)
717
- .withMaxRetries(10)
718
- .withBackoff(new ExponentialBackoff(2000, 4))
719
- .onOpen(() => {
755
+ transport.onOpen = () => {
720
756
  this._connectingToWebsocketPromise = null;
721
- this._ws = ws;
757
+ this._transport = transport;
722
758
  this.connected = true;
723
759
  if (isDevEnvironment() || debugNet)
724
- console.log("Connected to networking backend\n" + networkingServerUrl);
760
+ console.log("Connected to networking backend\n" + (transport.url ?? ""));
725
761
  else
726
- console.debug("Connected to networking backend", networkingServerUrl);
762
+ console.debug("Connected to networking backend", transport.url ?? "");
727
763
  resolve(true);
728
764
  this.onSendQueued(SendQueue.OnConnection);
729
- })
730
- .onClose((_evt) => {
765
+ };
766
+ transport.onClose = () => {
731
767
  this._connectingToWebsocketPromise = null;
732
768
  this.connected = false;
733
769
  this._isInRoom = false;
734
770
  resolve(false);
735
771
  let msg = "Websocket connection closed...";
736
- if (!networkingServerUrl?.includes("/socket"))
737
- msg += ` Do you perhaps mean to connect to \"/socket\"?`;
772
+ if (!transport.url?.includes("/socket"))
773
+ msg += ` Do you perhaps mean to connect to "/socket"?`;
738
774
  console.error(msg);
739
- })
740
- .onError((_e) => {
775
+ };
776
+ transport.onError = () => {
741
777
  console.error("Websocket connection failed...");
742
778
  resolve(false);
743
779
  Telemetry.sendEvent(this.context, "networking", {
744
780
  event: "connection_error",
745
781
  });
746
- })
747
- .onRetry(() => { console.log("Retry connecting to networking websocket"); })
748
- .build();
749
- ws.addEventListener(pkg.WebsocketEvent.message, (socket, msg) => {
750
- this.onMessage(socket, msg);
751
- });
782
+ };
783
+ transport.onMessage = (data) => {
784
+ this.onMessage(data);
785
+ };
786
+ transport.start();
752
787
  });
753
788
  }
754
- onMessage(_, ev) {
755
- const msg = ev.data;
789
+ async connectWebsocket() {
790
+ if (this._connectingToWebsocketPromise)
791
+ return this._connectingToWebsocketPromise;
792
+ if (networkingServerUrl === undefined) {
793
+ console.log("Fetch default backend url: " + defaultNetworkingBackendUrlProvider);
794
+ const defaultUrlResponse = await fetch(defaultNetworkingBackendUrlProvider);
795
+ networkingServerUrl = await defaultUrlResponse.text();
796
+ }
797
+ if (networkingServerUrl === undefined) {
798
+ return false;
799
+ }
800
+ console.debug("Connecting to networking backend on\n" + networkingServerUrl);
801
+ const transport = new WebsocketTransport(networkingServerUrl);
802
+ return this.connectTransport(transport);
803
+ }
804
+ onMessage(data) {
805
+ const msg = data;
756
806
  try {
757
807
  if (typeof msg !== "string") {
758
808
  if (msg.size) {
@@ -927,7 +977,7 @@ export class NetworkConnection {
927
977
  }
928
978
  sendWithWebsocket(key, data, queue = SendQueue.OnRoomJoin) {
929
979
  // console.log(key);
930
- if (!this._ws) {
980
+ if (!this._transport) {
931
981
  const arr = this._waitingForSocket[queue] || [];
932
982
  arr.push(() => this.sendWithWebsocket(key, data, queue));
933
983
  this._waitingForSocket[queue] = arr;
@@ -937,7 +987,7 @@ export class NetworkConnection {
937
987
  const str = JSON.stringify(this.toMessage(key, data));
938
988
  if (debugNet)
939
989
  console.log(">>", key);
940
- this._ws.send(str);
990
+ this._transport.send(str);
941
991
  }
942
992
  onSendQueued(queue) {
943
993
  const queued = this._waitingForSocket[queue];
@@ -1 +1 @@
1
- {"version":3,"file":"engine_networking.js","sourceRoot":"","sources":["../../src/engine/engine_networking.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_networking.js","sourceRoot":"","sources":["../../src/engine/engine_networking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { INetworkTransport } from './engine_networking_types.js';
2
+ /** Default transport that wraps the `websocket-ts` library */
3
+ export declare class WebsocketTransport implements INetworkTransport {
4
+ private _url;
5
+ private _ws;
6
+ onOpen: (() => void) | null;
7
+ onClose: (() => void) | null;
8
+ onError: ((err: any) => void) | null;
9
+ onMessage: ((data: string | Blob) => void) | null;
10
+ get url(): string;
11
+ constructor(url: string);
12
+ start(): Promise<void>;
13
+ send(data: string | Uint8Array): void;
14
+ close(): void;
15
+ }
@@ -0,0 +1,38 @@
1
+ /** Default transport that wraps the `websocket-ts` library */
2
+ export class WebsocketTransport {
3
+ _url;
4
+ _ws;
5
+ onOpen = null;
6
+ onClose = null;
7
+ onError = null;
8
+ onMessage = null;
9
+ get url() { return this._ws?.url ?? this._url; }
10
+ constructor(url) {
11
+ this._url = url;
12
+ }
13
+ async start() {
14
+ const pkg = await import('websocket-ts');
15
+ // @ts-ignore
16
+ const WebsocketBuilder = pkg.default?.WebsocketBuilder ?? pkg.WebsocketBuilder;
17
+ const ExponentialBackoff = pkg.default?.ExponentialBackoff ?? pkg.ExponentialBackoff;
18
+ const ws = new WebsocketBuilder(this._url)
19
+ .withMaxRetries(10)
20
+ .withBackoff(new ExponentialBackoff(2000, 4))
21
+ .onOpen(() => { this._ws = ws; this.onOpen?.(); })
22
+ .onClose(() => { this.onClose?.(); })
23
+ .onError(() => { this.onError?.(new Error("Websocket connection failed")); })
24
+ .onRetry(() => { console.log("Retry connecting to networking websocket"); })
25
+ .build();
26
+ ws.addEventListener(pkg.WebsocketEvent.message, (_, msg) => {
27
+ this.onMessage?.(msg.data);
28
+ });
29
+ }
30
+ send(data) {
31
+ this._ws?.send(data);
32
+ }
33
+ close() {
34
+ this._ws?.close();
35
+ this._ws = undefined;
36
+ }
37
+ }
38
+ //# sourceMappingURL=engine_networking.transport.websocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine_networking.transport.websocket.js","sourceRoot":"","sources":["../../src/engine/engine_networking.transport.websocket.ts"],"names":[],"mappings":"AAEA,8DAA8D;AAC9D,MAAM,OAAO,kBAAkB;IACnB,IAAI,CAAS;IACb,GAAG,CAA+C;IAE1D,MAAM,GAAwB,IAAI,CAAC;IACnC,OAAO,GAAwB,IAAI,CAAC;IACpC,OAAO,GAAgC,IAAI,CAAC;IAC5C,SAAS,GAA2C,IAAI,CAAC;IAEzD,IAAI,GAAG,KAAK,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhD,YAAY,GAAW;QACnB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACzC,aAAa;QACb,MAAM,gBAAgB,GAAG,GAAG,CAAC,OAAO,EAAE,gBAAgB,IAAI,GAAG,CAAC,gBAAgB,CAAC;QAC/E,MAAM,kBAAkB,GAAG,GAAG,CAAC,OAAO,EAAE,kBAAkB,IAAI,GAAG,CAAC,kBAAkB,CAAC;QACrF,MAAM,EAAE,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;aACrC,cAAc,CAAC,EAAE,CAAC;aAClB,WAAW,CAAC,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAC5C,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;aACjD,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;aACpC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5E,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3E,KAAK,EAAE,CAAC;QACb,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YACvD,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,IAAI,CAAC,IAAyB;QAC1B,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,KAAK;QACD,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;IACzB,CAAC;CACJ"}
@@ -2,7 +2,7 @@ import { FileLoader } from "three";
2
2
  import { showBalloonWarning } from "./debug/index.js";
3
3
  import { hasCommercialLicense } from "./engine_license.js";
4
4
  import { delay } from "./engine_utils.js";
5
- import { md5Hex, md5AsBytes, sha256Base64 } from "./engine_utils_hash.js";
5
+ import { md5AsBytes, md5Hex, sha256Base64 } from "./engine_utils_hash.js";
6
6
  export var BlobStorage;
7
7
  (function (BlobStorage) {
8
8
  const maxSizeInMB = 50;
@@ -1 +1 @@
1
- {"version":3,"file":"engine_networking_blob.js","sourceRoot":"","sources":["../../src/engine/engine_networking_blob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine_networking_blob.js","sourceRoot":"","sources":["../../src/engine/engine_networking_blob.ts"],"names":[],"mappings":"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"}
@@ -429,8 +429,8 @@ export function beginListenInstantiate(context) {
429
429
  syncedInstantiated.length = 0;
430
430
  });
431
431
  return () => {
432
- context.connection.stopListen(InstantiateEvent.NewInstanceCreated, cb1);
433
- context.connection.stopListen("left-room", cb2);
432
+ cb1();
433
+ cb2();
434
434
  };
435
435
  }
436
436
  function instantiateSeeded(obj, opts) {