@needle-tools/engine 4.11.5-next.a900688 → 4.11.5-next.b35161f

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 (436) hide show
  1. package/components.needle.json +1 -1
  2. package/custom-elements.json +364 -0
  3. package/dist/generateMeshBVH.worker-mO20N_b8.js +21 -0
  4. package/dist/{gltf-progressive-GwdQV1Qx.umd.cjs → gltf-progressive-DWcmTMCh.umd.cjs} +1 -1
  5. package/dist/{gltf-progressive-CftVUJy3.min.js → gltf-progressive-DZrY8VT6.min.js} +2 -2
  6. package/dist/{gltf-progressive-BvlZQAkt.js → gltf-progressive-DgYz5BYa.js} +19 -19
  7. package/dist/loader.worker-Dip-PthR.js +23 -0
  8. package/dist/{needle-engine.bundle-vPWPv18K.min.js → needle-engine.bundle-BsJvSPgy.min.js} +129 -134
  9. package/dist/{needle-engine.bundle-Bwinyjsh.js → needle-engine.bundle-CjTSG0lx.js} +3537 -3462
  10. package/dist/{needle-engine.bundle-Dsfd8BPk.umd.cjs → needle-engine.bundle-Xc_PaDid.umd.cjs} +131 -136
  11. package/dist/needle-engine.d.ts +18189 -1
  12. package/dist/needle-engine.js +336 -335
  13. package/dist/needle-engine.min.js +1 -1
  14. package/dist/needle-engine.umd.cjs +1 -1
  15. package/dist/{postprocessing-CJC0Npcd.js → postprocessing-BTW9pD_s.js} +1822 -1723
  16. package/dist/{postprocessing-DrM4PWU3.umd.cjs → postprocessing-CMgoN5t5.umd.cjs} +229 -158
  17. package/dist/{postprocessing-l7zsdO_Q.min.js → postprocessing-DYDtB188.min.js} +227 -156
  18. package/dist/rapier-B3oL1ap-.js +5217 -0
  19. package/dist/rapier-DJ-luMxr.min.js +1 -0
  20. package/dist/rapier-DQltNJbN.umd.cjs +1 -0
  21. package/dist/{three-BDW9I486.min.js → three-B7CT31Bt.min.js} +1 -5
  22. package/dist/{three-MHVqtJYj.js → three-DfMvBzXi.js} +0 -5
  23. package/dist/{three-examples-CgwGHSgz.umd.cjs → three-examples-CsW4_6LI.umd.cjs} +2 -7
  24. package/dist/{three-examples-fvEPSC8L.min.js → three-examples-D1P7eEhn.min.js} +2 -7
  25. package/dist/{three-examples-C5Ht-QFN.js → three-examples-D1SK93ek.js} +1 -7
  26. package/dist/{three-mesh-ui-BjWTTk1R.js → three-mesh-ui-C_uSB5dD.js} +1 -1
  27. package/dist/{three-mesh-ui-Bm32sS2a.umd.cjs → three-mesh-ui-DpATDXwU.umd.cjs} +1 -1
  28. package/dist/{three-mesh-ui-CLdkp21K.min.js → three-mesh-ui-LQ44s0AL.min.js} +1 -1
  29. package/dist/{three-iFaDq9U3.umd.cjs → three-qj71I7J3.umd.cjs} +2 -6
  30. package/dist/{vendor-CsyK1CFs.min.js → vendor-BKGa4GE0.min.js} +34 -39
  31. package/dist/{vendor-petGQl0N.js → vendor-D0zoswDa.js} +1626 -1605
  32. package/dist/{vendor-6kAXU6fm.umd.cjs → vendor-UCpFAwt1.umd.cjs} +30 -35
  33. package/lib/engine/debug/debug_spector.d.ts +16 -0
  34. package/lib/engine/debug/debug_spector.js +28 -0
  35. package/lib/engine/debug/debug_spector.js.map +1 -0
  36. package/lib/engine/engine_application.d.ts +7 -0
  37. package/lib/engine/engine_application.js +8 -1
  38. package/lib/engine/engine_application.js.map +1 -1
  39. package/lib/engine/engine_assetdatabase.d.ts +0 -6
  40. package/lib/engine/engine_assetdatabase.js +0 -15
  41. package/lib/engine/engine_assetdatabase.js.map +1 -1
  42. package/lib/engine/engine_context.d.ts +1 -0
  43. package/lib/engine/engine_context.js +5 -2
  44. package/lib/engine/engine_context.js.map +1 -1
  45. package/lib/engine/engine_loaders.js +24 -25
  46. package/lib/engine/engine_loaders.js.map +1 -1
  47. package/lib/engine/engine_physics.js +6 -2
  48. package/lib/engine/engine_physics.js.map +1 -1
  49. package/lib/engine/engine_physics_rapier.d.ts +11 -2
  50. package/lib/engine/engine_physics_rapier.js +9 -0
  51. package/lib/engine/engine_physics_rapier.js.map +1 -1
  52. package/lib/engine/engine_texture.d.ts +1 -1
  53. package/lib/engine/engine_tonemapping.d.ts +1 -1
  54. package/lib/engine/engine_types.d.ts +16 -0
  55. package/lib/engine/engine_typestore.d.ts +1 -0
  56. package/lib/engine/engine_typestore.js +5 -6
  57. package/lib/engine/engine_typestore.js.map +1 -1
  58. package/lib/engine/webcomponents/logo-element.d.ts +11 -0
  59. package/lib/engine/webcomponents/logo-element.js +6 -0
  60. package/lib/engine/webcomponents/logo-element.js.map +1 -1
  61. package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +24 -3
  62. package/lib/engine/webcomponents/needle menu/needle-menu.js +18 -3
  63. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  64. package/lib/engine/webcomponents/needle-button.d.ts +5 -0
  65. package/lib/engine/webcomponents/needle-button.js.map +1 -1
  66. package/lib/engine/webcomponents/needle-engine.attributes.d.ts +11 -2
  67. package/lib/engine/webcomponents/needle-engine.d.ts +162 -8
  68. package/lib/engine/webcomponents/needle-engine.js +45 -7
  69. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  70. package/lib/engine-components/AlignmentConstraint.d.ts +9 -0
  71. package/lib/engine-components/AlignmentConstraint.js +9 -0
  72. package/lib/engine-components/AlignmentConstraint.js.map +1 -1
  73. package/lib/engine-components/Animator.d.ts +1 -0
  74. package/lib/engine-components/Animator.js.map +1 -1
  75. package/lib/engine-components/AudioListener.d.ts +2 -0
  76. package/lib/engine-components/AudioListener.js +2 -0
  77. package/lib/engine-components/AudioListener.js.map +1 -1
  78. package/lib/engine-components/AudioSource.d.ts +1 -0
  79. package/lib/engine-components/AudioSource.js +1 -0
  80. package/lib/engine-components/AudioSource.js.map +1 -1
  81. package/lib/engine-components/AxesHelper.d.ts +2 -0
  82. package/lib/engine-components/AxesHelper.js +2 -0
  83. package/lib/engine-components/AxesHelper.js.map +1 -1
  84. package/lib/engine-components/Camera.d.ts +1 -0
  85. package/lib/engine-components/Camera.js +1 -0
  86. package/lib/engine-components/Camera.js.map +1 -1
  87. package/lib/engine-components/CharacterController.d.ts +4 -1
  88. package/lib/engine-components/CharacterController.js +4 -1
  89. package/lib/engine-components/CharacterController.js.map +1 -1
  90. package/lib/engine-components/Component.d.ts +5 -0
  91. package/lib/engine-components/Component.js +7 -0
  92. package/lib/engine-components/Component.js.map +1 -1
  93. package/lib/engine-components/DeleteBox.d.ts +2 -0
  94. package/lib/engine-components/DeleteBox.js +2 -0
  95. package/lib/engine-components/DeleteBox.js.map +1 -1
  96. package/lib/engine-components/DeviceFlag.d.ts +4 -0
  97. package/lib/engine-components/DeviceFlag.js +4 -0
  98. package/lib/engine-components/DeviceFlag.js.map +1 -1
  99. package/lib/engine-components/DragControls.d.ts +1 -0
  100. package/lib/engine-components/DragControls.js +1 -0
  101. package/lib/engine-components/DragControls.js.map +1 -1
  102. package/lib/engine-components/DropListener.d.ts +1 -0
  103. package/lib/engine-components/DropListener.js +1 -0
  104. package/lib/engine-components/DropListener.js.map +1 -1
  105. package/lib/engine-components/Duplicatable.d.ts +1 -0
  106. package/lib/engine-components/Duplicatable.js +1 -0
  107. package/lib/engine-components/Duplicatable.js.map +1 -1
  108. package/lib/engine-components/EventTrigger.d.ts +2 -0
  109. package/lib/engine-components/EventTrigger.js +2 -0
  110. package/lib/engine-components/EventTrigger.js.map +1 -1
  111. package/lib/engine-components/GridHelper.d.ts +2 -0
  112. package/lib/engine-components/GridHelper.js +2 -0
  113. package/lib/engine-components/GridHelper.js.map +1 -1
  114. package/lib/engine-components/GroundProjection.d.ts +1 -0
  115. package/lib/engine-components/GroundProjection.js +1 -0
  116. package/lib/engine-components/GroundProjection.js.map +1 -1
  117. package/lib/engine-components/LODGroup.d.ts +2 -0
  118. package/lib/engine-components/LODGroup.js +2 -0
  119. package/lib/engine-components/LODGroup.js.map +1 -1
  120. package/lib/engine-components/Light.d.ts +1 -0
  121. package/lib/engine-components/Light.js +1 -0
  122. package/lib/engine-components/Light.js.map +1 -1
  123. package/lib/engine-components/LookAtConstraint.d.ts +1 -0
  124. package/lib/engine-components/LookAtConstraint.js +1 -0
  125. package/lib/engine-components/LookAtConstraint.js.map +1 -1
  126. package/lib/engine-components/NeedleMenu.d.ts +1 -0
  127. package/lib/engine-components/NeedleMenu.js +1 -0
  128. package/lib/engine-components/NeedleMenu.js.map +1 -1
  129. package/lib/engine-components/NestedGltf.d.ts +1 -0
  130. package/lib/engine-components/NestedGltf.js +1 -0
  131. package/lib/engine-components/NestedGltf.js.map +1 -1
  132. package/lib/engine-components/Networking.d.ts +1 -0
  133. package/lib/engine-components/Networking.js +1 -0
  134. package/lib/engine-components/Networking.js.map +1 -1
  135. package/lib/engine-components/OffsetConstraint.d.ts +7 -0
  136. package/lib/engine-components/OffsetConstraint.js +7 -0
  137. package/lib/engine-components/OffsetConstraint.js.map +1 -1
  138. package/lib/engine-components/OrbitControls.d.ts +1 -0
  139. package/lib/engine-components/OrbitControls.js +1 -0
  140. package/lib/engine-components/OrbitControls.js.map +1 -1
  141. package/lib/engine-components/PlayerColor.d.ts +2 -0
  142. package/lib/engine-components/PlayerColor.js +2 -0
  143. package/lib/engine-components/PlayerColor.js.map +1 -1
  144. package/lib/engine-components/ReflectionProbe.d.ts +1 -0
  145. package/lib/engine-components/ReflectionProbe.js +1 -0
  146. package/lib/engine-components/ReflectionProbe.js.map +1 -1
  147. package/lib/engine-components/RendererInstancing.d.ts +5 -3
  148. package/lib/engine-components/RendererInstancing.js +64 -31
  149. package/lib/engine-components/RendererInstancing.js.map +1 -1
  150. package/lib/engine-components/RigidBody.d.ts +1 -0
  151. package/lib/engine-components/RigidBody.js +1 -0
  152. package/lib/engine-components/RigidBody.js.map +1 -1
  153. package/lib/engine-components/SceneSwitcher.d.ts +1 -0
  154. package/lib/engine-components/SceneSwitcher.js +1 -0
  155. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  156. package/lib/engine-components/ScreenCapture.d.ts +1 -0
  157. package/lib/engine-components/ScreenCapture.js +1 -0
  158. package/lib/engine-components/ScreenCapture.js.map +1 -1
  159. package/lib/engine-components/SeeThrough.d.ts +1 -0
  160. package/lib/engine-components/SeeThrough.js +1 -0
  161. package/lib/engine-components/SeeThrough.js.map +1 -1
  162. package/lib/engine-components/ShadowCatcher.d.ts +2 -0
  163. package/lib/engine-components/ShadowCatcher.js +2 -0
  164. package/lib/engine-components/ShadowCatcher.js.map +1 -1
  165. package/lib/engine-components/Skybox.d.ts +1 -0
  166. package/lib/engine-components/Skybox.js +1 -0
  167. package/lib/engine-components/Skybox.js.map +1 -1
  168. package/lib/engine-components/SmoothFollow.d.ts +1 -0
  169. package/lib/engine-components/SmoothFollow.js +1 -0
  170. package/lib/engine-components/SmoothFollow.js.map +1 -1
  171. package/lib/engine-components/SpatialTrigger.d.ts +1 -0
  172. package/lib/engine-components/SpatialTrigger.js +1 -0
  173. package/lib/engine-components/SpatialTrigger.js.map +1 -1
  174. package/lib/engine-components/SpectatorCamera.d.ts +1 -0
  175. package/lib/engine-components/SpectatorCamera.js +1 -0
  176. package/lib/engine-components/SpectatorCamera.js.map +1 -1
  177. package/lib/engine-components/SpriteRenderer.d.ts +1 -0
  178. package/lib/engine-components/SpriteRenderer.js +1 -0
  179. package/lib/engine-components/SpriteRenderer.js.map +1 -1
  180. package/lib/engine-components/SyncedCamera.d.ts +2 -0
  181. package/lib/engine-components/SyncedCamera.js +2 -0
  182. package/lib/engine-components/SyncedCamera.js.map +1 -1
  183. package/lib/engine-components/SyncedRoom.d.ts +1 -0
  184. package/lib/engine-components/SyncedRoom.js +1 -0
  185. package/lib/engine-components/SyncedRoom.js.map +1 -1
  186. package/lib/engine-components/SyncedTransform.d.ts +2 -0
  187. package/lib/engine-components/SyncedTransform.js +2 -0
  188. package/lib/engine-components/SyncedTransform.js.map +1 -1
  189. package/lib/engine-components/TransformGizmo.d.ts +2 -0
  190. package/lib/engine-components/TransformGizmo.js +2 -0
  191. package/lib/engine-components/TransformGizmo.js.map +1 -1
  192. package/lib/engine-components/VideoPlayer.d.ts +1 -0
  193. package/lib/engine-components/VideoPlayer.js +1 -0
  194. package/lib/engine-components/VideoPlayer.js.map +1 -1
  195. package/lib/engine-components/Voip.d.ts +1 -0
  196. package/lib/engine-components/Voip.js +1 -0
  197. package/lib/engine-components/Voip.js.map +1 -1
  198. package/lib/engine-components/export/usdz/USDZExporter.d.ts +24 -3
  199. package/lib/engine-components/export/usdz/USDZExporter.js +36 -2
  200. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  201. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.d.ts +18 -0
  202. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js +18 -0
  203. package/lib/engine-components/export/usdz/extensions/behavior/BehaviourComponents.js.map +1 -1
  204. package/lib/engine-components/particlesystem/ParticleSystem.d.ts +1 -0
  205. package/lib/engine-components/particlesystem/ParticleSystem.js +1 -0
  206. package/lib/engine-components/particlesystem/ParticleSystem.js.map +1 -1
  207. package/lib/engine-components/physics/Attractor.d.ts +3 -0
  208. package/lib/engine-components/physics/Attractor.js +3 -0
  209. package/lib/engine-components/physics/Attractor.js.map +1 -1
  210. package/lib/engine-components/postprocessing/Effects/BloomEffect.d.ts +1 -0
  211. package/lib/engine-components/postprocessing/Effects/BloomEffect.js +1 -0
  212. package/lib/engine-components/postprocessing/Effects/BloomEffect.js.map +1 -1
  213. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.d.ts +4 -0
  214. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js +4 -0
  215. package/lib/engine-components/postprocessing/Effects/ChromaticAberration.js.map +1 -1
  216. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.d.ts +3 -0
  217. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js +3 -0
  218. package/lib/engine-components/postprocessing/Effects/ColorAdjustments.js.map +1 -1
  219. package/lib/engine-components/postprocessing/Effects/DepthOfField.d.ts +4 -0
  220. package/lib/engine-components/postprocessing/Effects/DepthOfField.js +4 -0
  221. package/lib/engine-components/postprocessing/Effects/DepthOfField.js.map +1 -1
  222. package/lib/engine-components/postprocessing/Effects/EffectWrapper.d.ts +1 -0
  223. package/lib/engine-components/postprocessing/Effects/EffectWrapper.js +1 -0
  224. package/lib/engine-components/postprocessing/Effects/EffectWrapper.js.map +1 -1
  225. package/lib/engine-components/postprocessing/Effects/Pixelation.d.ts +3 -0
  226. package/lib/engine-components/postprocessing/Effects/Pixelation.js +3 -0
  227. package/lib/engine-components/postprocessing/Effects/Pixelation.js.map +1 -1
  228. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.d.ts +4 -0
  229. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js +4 -0
  230. package/lib/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.js.map +1 -1
  231. package/lib/engine-components/postprocessing/Effects/Sharpening.d.ts +4 -0
  232. package/lib/engine-components/postprocessing/Effects/Sharpening.js +4 -0
  233. package/lib/engine-components/postprocessing/Effects/Sharpening.js.map +1 -1
  234. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.d.ts +4 -0
  235. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.js +4 -0
  236. package/lib/engine-components/postprocessing/Effects/TiltShiftEffect.js.map +1 -1
  237. package/lib/engine-components/postprocessing/Effects/Tonemapping.d.ts +4 -0
  238. package/lib/engine-components/postprocessing/Effects/Tonemapping.js +4 -0
  239. package/lib/engine-components/postprocessing/Effects/Tonemapping.js.map +1 -1
  240. package/lib/engine-components/postprocessing/Effects/Vignette.d.ts +4 -0
  241. package/lib/engine-components/postprocessing/Effects/Vignette.js +4 -0
  242. package/lib/engine-components/postprocessing/Effects/Vignette.js.map +1 -1
  243. package/lib/engine-components/postprocessing/Volume.d.ts +1 -0
  244. package/lib/engine-components/postprocessing/Volume.js +1 -0
  245. package/lib/engine-components/postprocessing/Volume.js.map +1 -1
  246. package/lib/engine-components/splines/Spline.d.ts +1 -0
  247. package/lib/engine-components/splines/Spline.js +1 -0
  248. package/lib/engine-components/splines/Spline.js.map +1 -1
  249. package/lib/engine-components/splines/SplineWalker.d.ts +1 -0
  250. package/lib/engine-components/splines/SplineWalker.js +1 -0
  251. package/lib/engine-components/splines/SplineWalker.js.map +1 -1
  252. package/lib/engine-components/timeline/PlayableDirector.d.ts +1 -0
  253. package/lib/engine-components/timeline/PlayableDirector.js +1 -0
  254. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  255. package/lib/engine-components/timeline/SignalAsset.d.ts +1 -0
  256. package/lib/engine-components/timeline/SignalAsset.js +1 -0
  257. package/lib/engine-components/timeline/SignalAsset.js.map +1 -1
  258. package/lib/engine-components/ui/Button.d.ts +4 -0
  259. package/lib/engine-components/ui/Button.js +4 -0
  260. package/lib/engine-components/ui/Button.js.map +1 -1
  261. package/lib/engine-components/ui/Canvas.d.ts +5 -0
  262. package/lib/engine-components/ui/Canvas.js +5 -0
  263. package/lib/engine-components/ui/Canvas.js.map +1 -1
  264. package/lib/engine-components/ui/CanvasGroup.d.ts +4 -0
  265. package/lib/engine-components/ui/CanvasGroup.js +4 -0
  266. package/lib/engine-components/ui/CanvasGroup.js.map +1 -1
  267. package/lib/engine-components/ui/EventSystem.d.ts +2 -0
  268. package/lib/engine-components/ui/EventSystem.js +2 -0
  269. package/lib/engine-components/ui/EventSystem.js.map +1 -1
  270. package/lib/engine-components/ui/Image.d.ts +4 -0
  271. package/lib/engine-components/ui/Image.js +4 -0
  272. package/lib/engine-components/ui/Image.js.map +1 -1
  273. package/lib/engine-components/ui/InputField.d.ts +4 -0
  274. package/lib/engine-components/ui/InputField.js +4 -0
  275. package/lib/engine-components/ui/InputField.js.map +1 -1
  276. package/lib/engine-components/ui/Outline.d.ts +7 -0
  277. package/lib/engine-components/ui/Outline.js +7 -0
  278. package/lib/engine-components/ui/Outline.js.map +1 -1
  279. package/lib/engine-components/ui/Text.d.ts +1 -0
  280. package/lib/engine-components/ui/Text.js +1 -0
  281. package/lib/engine-components/ui/Text.js.map +1 -1
  282. package/lib/engine-components/utils/LookAt.d.ts +1 -0
  283. package/lib/engine-components/utils/LookAt.js +1 -0
  284. package/lib/engine-components/utils/LookAt.js.map +1 -1
  285. package/lib/engine-components/web/Clickthrough.d.ts +1 -1
  286. package/lib/engine-components/web/Clickthrough.js +1 -1
  287. package/lib/engine-components/web/CursorFollow.d.ts +2 -0
  288. package/lib/engine-components/web/CursorFollow.js +3 -0
  289. package/lib/engine-components/web/CursorFollow.js.map +1 -1
  290. package/lib/engine-components/web/HoverAnimation.d.ts +1 -0
  291. package/lib/engine-components/web/HoverAnimation.js +1 -0
  292. package/lib/engine-components/web/HoverAnimation.js.map +1 -1
  293. package/lib/engine-components/web/ScrollFollow.d.ts +2 -0
  294. package/lib/engine-components/web/ScrollFollow.js +2 -0
  295. package/lib/engine-components/web/ScrollFollow.js.map +1 -1
  296. package/lib/engine-components/web/ViewBox.d.ts +1 -0
  297. package/lib/engine-components/web/ViewBox.js +1 -0
  298. package/lib/engine-components/web/ViewBox.js.map +1 -1
  299. package/lib/engine-components/webxr/Avatar.d.ts +5 -0
  300. package/lib/engine-components/webxr/Avatar.js +5 -0
  301. package/lib/engine-components/webxr/Avatar.js.map +1 -1
  302. package/lib/engine-components/webxr/WebARCameraBackground.d.ts +1 -0
  303. package/lib/engine-components/webxr/WebARCameraBackground.js +1 -0
  304. package/lib/engine-components/webxr/WebARCameraBackground.js.map +1 -1
  305. package/lib/engine-components/webxr/WebARSessionRoot.d.ts +1 -0
  306. package/lib/engine-components/webxr/WebARSessionRoot.js +1 -0
  307. package/lib/engine-components/webxr/WebARSessionRoot.js.map +1 -1
  308. package/lib/engine-components/webxr/WebXR.d.ts +1 -1
  309. package/lib/engine-components/webxr/WebXR.js +1 -1
  310. package/lib/engine-components/webxr/controllers/XRControllerFollow.d.ts +1 -0
  311. package/lib/engine-components/webxr/controllers/XRControllerFollow.js +1 -0
  312. package/lib/engine-components/webxr/controllers/XRControllerFollow.js.map +1 -1
  313. package/lib/engine-components/webxr/controllers/XRControllerModel.d.ts +4 -0
  314. package/lib/engine-components/webxr/controllers/XRControllerModel.js +4 -0
  315. package/lib/engine-components/webxr/controllers/XRControllerModel.js.map +1 -1
  316. package/lib/engine-components/webxr/controllers/XRControllerMovement.d.ts +1 -0
  317. package/lib/engine-components/webxr/controllers/XRControllerMovement.js +1 -0
  318. package/lib/engine-components/webxr/controllers/XRControllerMovement.js.map +1 -1
  319. package/lib/engine-components-experimental/networking/PlayerSync.d.ts +2 -0
  320. package/lib/engine-components-experimental/networking/PlayerSync.js +2 -0
  321. package/lib/engine-components-experimental/networking/PlayerSync.js.map +1 -1
  322. package/lib/needle-engine.js +2 -1
  323. package/lib/needle-engine.js.map +1 -1
  324. package/package.json +19 -12
  325. package/plugins/types/needleConfig.d.ts +1 -1
  326. package/plugins/types/next.d.ts +1 -1
  327. package/plugins/types/userconfig.d.ts +4 -1
  328. package/plugins/vite/custom-element-data.js +80 -0
  329. package/plugins/vite/index.js +4 -0
  330. package/src/engine/debug/debug_spector.ts +43 -0
  331. package/src/engine/engine_application.ts +16 -1
  332. package/src/engine/engine_assetdatabase.ts +0 -21
  333. package/src/engine/engine_context.ts +6 -2
  334. package/src/engine/engine_loaders.ts +24 -26
  335. package/src/engine/engine_physics.ts +6 -2
  336. package/src/engine/engine_physics_rapier.ts +11 -2
  337. package/src/engine/engine_texture.ts +1 -1
  338. package/src/engine/engine_tonemapping.ts +1 -1
  339. package/src/engine/engine_types.ts +17 -0
  340. package/src/engine/engine_typestore.ts +5 -6
  341. package/src/engine/webcomponents/logo-element.ts +12 -0
  342. package/src/engine/webcomponents/needle menu/needle-menu.ts +24 -3
  343. package/src/engine/webcomponents/needle-button.ts +6 -0
  344. package/src/engine/webcomponents/needle-engine.attributes.ts +12 -3
  345. package/src/engine/webcomponents/needle-engine.ts +172 -11
  346. package/src/engine-components/AlignmentConstraint.ts +9 -0
  347. package/src/engine-components/Animator.ts +1 -0
  348. package/src/engine-components/AudioListener.ts +2 -0
  349. package/src/engine-components/AudioSource.ts +1 -0
  350. package/src/engine-components/AxesHelper.ts +2 -0
  351. package/src/engine-components/Camera.ts +1 -0
  352. package/src/engine-components/CharacterController.ts +4 -1
  353. package/src/engine-components/Component.ts +9 -1
  354. package/src/engine-components/DeleteBox.ts +2 -0
  355. package/src/engine-components/DeviceFlag.ts +4 -0
  356. package/src/engine-components/DragControls.ts +1 -0
  357. package/src/engine-components/DropListener.ts +1 -0
  358. package/src/engine-components/Duplicatable.ts +1 -0
  359. package/src/engine-components/EventTrigger.ts +2 -0
  360. package/src/engine-components/GridHelper.ts +2 -0
  361. package/src/engine-components/GroundProjection.ts +1 -0
  362. package/src/engine-components/LODGroup.ts +2 -0
  363. package/src/engine-components/Light.ts +1 -0
  364. package/src/engine-components/LookAtConstraint.ts +1 -0
  365. package/src/engine-components/NeedleMenu.ts +1 -0
  366. package/src/engine-components/NestedGltf.ts +1 -0
  367. package/src/engine-components/Networking.ts +1 -0
  368. package/src/engine-components/OffsetConstraint.ts +7 -0
  369. package/src/engine-components/OrbitControls.ts +1 -0
  370. package/src/engine-components/PlayerColor.ts +2 -0
  371. package/src/engine-components/ReflectionProbe.ts +1 -0
  372. package/src/engine-components/RendererInstancing.ts +69 -33
  373. package/src/engine-components/RigidBody.ts +1 -0
  374. package/src/engine-components/SceneSwitcher.ts +1 -0
  375. package/src/engine-components/ScreenCapture.ts +1 -0
  376. package/src/engine-components/SeeThrough.ts +1 -0
  377. package/src/engine-components/ShadowCatcher.ts +2 -0
  378. package/src/engine-components/Skybox.ts +2 -1
  379. package/src/engine-components/SmoothFollow.ts +1 -0
  380. package/src/engine-components/SpatialTrigger.ts +1 -0
  381. package/src/engine-components/SpectatorCamera.ts +1 -0
  382. package/src/engine-components/SpriteRenderer.ts +1 -0
  383. package/src/engine-components/SyncedCamera.ts +2 -0
  384. package/src/engine-components/SyncedRoom.ts +1 -0
  385. package/src/engine-components/SyncedTransform.ts +2 -0
  386. package/src/engine-components/TransformGizmo.ts +2 -0
  387. package/src/engine-components/VideoPlayer.ts +1 -0
  388. package/src/engine-components/Voip.ts +1 -0
  389. package/src/engine-components/export/usdz/USDZExporter.ts +52 -5
  390. package/src/engine-components/export/usdz/extensions/behavior/BehaviourComponents.ts +18 -0
  391. package/src/engine-components/particlesystem/ParticleSystem.ts +1 -0
  392. package/src/engine-components/physics/Attractor.ts +3 -0
  393. package/src/engine-components/postprocessing/Effects/BloomEffect.ts +1 -0
  394. package/src/engine-components/postprocessing/Effects/ChromaticAberration.ts +4 -0
  395. package/src/engine-components/postprocessing/Effects/ColorAdjustments.ts +3 -0
  396. package/src/engine-components/postprocessing/Effects/DepthOfField.ts +4 -0
  397. package/src/engine-components/postprocessing/Effects/EffectWrapper.ts +1 -0
  398. package/src/engine-components/postprocessing/Effects/Pixelation.ts +3 -0
  399. package/src/engine-components/postprocessing/Effects/ScreenspaceAmbientOcclusionN8.ts +4 -0
  400. package/src/engine-components/postprocessing/Effects/Sharpening.ts +4 -0
  401. package/src/engine-components/postprocessing/Effects/TiltShiftEffect.ts +4 -0
  402. package/src/engine-components/postprocessing/Effects/Tonemapping.ts +4 -0
  403. package/src/engine-components/postprocessing/Effects/Vignette.ts +4 -0
  404. package/src/engine-components/postprocessing/Volume.ts +1 -0
  405. package/src/engine-components/splines/Spline.ts +1 -0
  406. package/src/engine-components/splines/SplineWalker.ts +1 -0
  407. package/src/engine-components/timeline/PlayableDirector.ts +1 -0
  408. package/src/engine-components/timeline/SignalAsset.ts +1 -0
  409. package/src/engine-components/ui/Button.ts +4 -0
  410. package/src/engine-components/ui/Canvas.ts +5 -0
  411. package/src/engine-components/ui/CanvasGroup.ts +4 -0
  412. package/src/engine-components/ui/EventSystem.ts +2 -0
  413. package/src/engine-components/ui/Image.ts +4 -0
  414. package/src/engine-components/ui/InputField.ts +4 -0
  415. package/src/engine-components/ui/Outline.ts +7 -0
  416. package/src/engine-components/ui/Text.ts +1 -0
  417. package/src/engine-components/utils/LookAt.ts +1 -0
  418. package/src/engine-components/web/Clickthrough.ts +1 -1
  419. package/src/engine-components/web/CursorFollow.ts +4 -0
  420. package/src/engine-components/web/HoverAnimation.ts +1 -0
  421. package/src/engine-components/web/ScrollFollow.ts +2 -0
  422. package/src/engine-components/web/ViewBox.ts +1 -0
  423. package/src/engine-components/webxr/Avatar.ts +5 -0
  424. package/src/engine-components/webxr/WebARCameraBackground.ts +1 -0
  425. package/src/engine-components/webxr/WebARSessionRoot.ts +1 -0
  426. package/src/engine-components/webxr/WebXR.ts +1 -1
  427. package/src/engine-components/webxr/controllers/XRControllerFollow.ts +1 -0
  428. package/src/engine-components/webxr/controllers/XRControllerModel.ts +4 -0
  429. package/src/engine-components/webxr/controllers/XRControllerMovement.ts +1 -0
  430. package/src/engine-components-experimental/networking/PlayerSync.ts +2 -0
  431. package/src/needle-engine.ts +4 -2
  432. package/dist/generateMeshBVH.worker-B9bjdr6J.js +0 -25
  433. package/dist/loader.worker-CiTwpNPW.js +0 -27
  434. package/dist/rapier-BqdcSmKY.umd.cjs +0 -1
  435. package/dist/rapier-Cg3w3nFI.min.js +0 -1
  436. package/dist/rapier-sU12SWAs.js +0 -5217
@@ -1 +1 @@
1
- {"version":3,"file":"PlayerSync.js","sourceRoot":"","sources":["../../../src/engine-components-experimental/networking/PlayerSync.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAE9E,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAEjE,MAAM,KAAK,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAK1C;;;;GAIG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IAErC;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,IAA+C;QAC/E,MAAM,cAAc,GAAG,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;YACvB,MAAM,CAAC,GAAG,MAAM,cAAc,CAAC,cAAc,EAAE,CAAC;YAChD,IAAG,CAAC;gBAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;SACtD;QACD,MAAM,EAAE,GAAG,IAAI,UAAU,EAAE,CAAC;QAC5B,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACvB,EAAE,CAAC,KAAK,GAAG,cAAc,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;QAClB,UAAU,CAAC,YAAY,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,OAAO,EAAyB,CAAC;IACrC,CAAC;IAED;;OAEG;IAEH,QAAQ,GAAY,IAAI,CAAC;IAEzB;;OAEG;IAEH,KAAK,CAAkB;IAEvB;;;OAGG;IAEH,eAAe,CAAuB;IAG9B,cAAc,CAAwB;IAE9C,KAAK;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,IAAI,CAAC,eAAe,GAAG,IAAI,SAAS,EAAE,CAAC;IACtE,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACjF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/E,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE;YAClC,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;IACL,CAAC;IACD,SAAS;QACL,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAChF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IAClF,CAAC;IAEO,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,4CAA4C,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrF,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1C,CAAC,CAAA;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QACb,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC;QAEpD,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAErE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE;YACxC,OAAO,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;YACxG,OAAO,IAAI,CAAC;SACf;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YACvB,OAAO,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;SAC9G;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,IAAI,CAAyB,CAAC;QACzI,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,QAAQ,EAAE;YACV,MAAM,EAAE,GAAG,UAAU,CAAC,uBAAuB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACrE,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,EAAE,MAAM,mCAAmC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC;YAChJ,IAAI,EAAE,EAAE,MAAM,EAAE;gBACZ,KAAK,MAAM,KAAK,IAAI,EAAE;oBAClB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAa,CAAC;gBACxD,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;aAC1C;iBACI;gBACD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,wCAAwC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,GAAG,oEAAoE,CAAC,CAAC;gBACjJ,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aACtC;SACJ;aACI;YACD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA;SAC1D;QAED,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,eAAe,GAAG,GAAG,EAAE;QACnB,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE;YAC3B,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;YACzD,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;IACpC,CAAC,CAAA;IAED;;OAEG;IACK,eAAe;QACnB,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE;YAC5C,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE;gBACxC,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;oBAClD,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC9B,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;wBAC9D,EAAE,CAAC,SAAS,EAAE,CAAC;qBAClB;iBACJ;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA7GG;IADC,YAAY,EAAE;4CACU;AAMzB;IADC,YAAY,CAAC,cAAc,CAAC;yCACN;AAOvB;IADC,YAAY,CAAC,SAAS,CAAC;mDACc;AAkG1C;;GAEG;AACH,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IACxB,4DAA4D;IAC5D,iDAA6B,CAAA;AACjC,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AAeD;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAS;IAE9B,MAAM,CAAC,IAAI,GAAkB,EAAE,CAAC;IACxC,6DAA6D;IAC7D,MAAM,KAAK,GAAG;QACV,OAAO,WAAW,CAAC,IAAI,CAAC;IAC5B,CAAC;IAAA,CAAC;IAEM,MAAM,CAAC,MAAM,GAAkB,EAAE,CAAC;IAC1C,gEAAgE;IAChE,MAAM,KAAK,KAAK;QACZ,OAAO,WAAW,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAAC,GAAyB;QACnC,IAAI,GAAG,YAAY,QAAQ,EAAE;YACzB,OAAO,UAAU,CAAC,oBAAoB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;SAC5D;aACI,IAAI,GAAG,YAAY,SAAS,EAAE;YAC/B,OAAO,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;SACvE;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,GAAyB;QAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,KAAK,EAAE,aAAa,IAAI,KAAK,CAAC;IACzC,CAAC;IAEO,MAAM,CAAC,UAAU,GAAkD,EAAE,CAAC;IAC9E;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAuB,EAAE,EAA4B;QACzE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAuB,EAAE,EAA4B;QAC5E,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,KAAK,IAAI,CAAC;YAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IACO,MAAM,CAAC,aAAa,CAAC,KAAuB,EAAE,IAA8C;QAChG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO;QACpC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YACrC,EAAE,CAAC,IAAI,CAAC,CAAC;SACZ;IACL,CAAC;IAGD,iEAAiE;IAC1D,kBAAkB,GAAG,IAAI,SAAS,EAAE,CAAC;IAE5C,8EAA8E;IACvE,uBAAuB,GAAG,IAAI,SAAS,EAAE,CAAC;IAEjD,0DAA0D;IACnD,QAAQ,GAAG,KAAK,CAAC;IAExB;;;OAGG;IAEH,KAAK,CAAU;IAEf;;OAEG;IACH,WAAW,GAAY,KAAK,CAAC;IAE7B;;OAEG;IACH,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,QAAgB,EAAE,QAAgB;QACpD,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B,QAAQ,MAAM,QAAQ,SAAS,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,GAAG,CAAC,CAAC;QAE5H,uDAAuD;QACvD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,KAAK,IAAI,CAAC;YAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAEpD,qCAAqC;QACrC,MAAM,MAAM,GAAgC;YACxC,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;SACrB,CAAA;QAED,oBAAoB;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;SAChD;QAED,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAExC,qBAAqB;QACrB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE;YACrD,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,kHAAkH;YAClH,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;SAC3B;QACD,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACxB,WAAW,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC;IAED,gBAAgB;IAChB,KAAK;QACD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;QAE5G,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IACtF,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,KAAK;QACP,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;QAE1G,2EAA2E;QAC3E,uFAAuF;QACvF,sEAAsE;QACtE,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,gLAAgL;YAChL,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ;gBAAE,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YACxD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE;gBAC3D,IAAI,KAAK;oBAAE,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,CAAC,IAAI,qBAAqB,IAAI,CAAC,KAAK,8BAA8B,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;gBAChM,IAAI,CAAC,SAAS,EAAE,CAAC;aACpB;SACJ;aACI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAClB,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9E,oGAAoG;YACpG,4HAA4H;YAC5H,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBAChC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;wBACnB,IAAI,KAAK;4BAAE,OAAO,CAAC,IAAI,CAAC,8DAA8D,IAAI,CAAC,IAAI,iBAAiB,CAAC,CAAC;wBAClH,IAAI,CAAC,SAAS,EAAE,CAAC;qBACpB;yBACI,IAAI,KAAK;wBAAE,OAAO,CAAC,IAAI,CAAC,6EAA6E,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC1H;qBACI,IAAI,KAAK;oBAAE,OAAO,CAAC,GAAG,CAAC,uCAAuC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACrF,CAAC,EAAE,IAAI,CAAC,CAAC;SACZ;IACL,CAAC;IAED,gIAAgI;IAChI,SAAS;QACL,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,gBAAgB;IAChB,SAAS;QACL,IAAG,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QACjF,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAEzD,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,KAAK,IAAI,CAAC;gBACV,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC3C;IACL,CAAC;IAED;;;OAGG;IACK,cAAc,GAAG,CAAC,KAAyB,EAAE,EAAE;QACnD,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,KAAK;gBACL,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO;SACV;IACL,CAAC,CAAA;;AA3HD;IADC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC;0CAChC"}
1
+ {"version":3,"file":"PlayerSync.js","sourceRoot":"","sources":["../../../src/engine-components-experimental/networking/PlayerSync.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export * from "./engine-components/api.js";
6
6
  export * from "./engine-components-experimental/api.js";
7
7
  export * from "./engine-schemes/api.js";
8
8
  // make accessible for external javascript
9
- import { Context, loadAsset, NeedleXRSession, onAfterRender, onBeforeRender, onClear, onDestroy, onInitialized, onStart, onUpdate, VERSION } from "./engine/api.js";
9
+ import { Context, loadAsset, NeedleXRSession, onAfterRender, onBeforeRender, onClear, onDestroy, onInitialized, onStart, onUpdate, TypeStore, VERSION } from "./engine/api.js";
10
10
  const Needle = {
11
11
  VERSION: VERSION,
12
12
  Context: Context,
@@ -14,6 +14,7 @@ const Needle = {
14
14
  assets: {
15
15
  loadFromURL: loadAsset,
16
16
  },
17
+ types: TypeStore,
17
18
  onStart: onStart,
18
19
  onUpdate: onUpdate,
19
20
  onBeforeRender: onBeforeRender,
@@ -1 +1 @@
1
- {"version":3,"file":"needle-engine.js","sourceRoot":"","sources":["../src/needle-engine.ts"],"names":[],"mappings":"AAAA,OAAO,yCAAyC,CAAC;AACjD,OAAO,0BAA0B,CAAC;AAClC,OAAO,0BAA0B,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AACxD,cAAc,yBAAyB,CAAC;AAExC,0CAA0C;AAC1C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACpK,MAAM,MAAM,GAAG;IACX,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,eAAe,EAAE,eAAe;IAChC,MAAM,EAAE;QACJ,WAAW,EAAE,SAAS;KACzB;IACD,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,QAAQ;IAClB,cAAc,EAAE,cAAc;IAC9B,aAAa,EAAE,aAAa;IAC5B,oBAAoB,EAAE,aAAa;IACnC,gBAAgB,EAAE,SAAS;IAC3B,cAAc,EAAE,OAAO;CAC1B,CAAC;AACF,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,KAAK,SAAS,EAAE;IAC7C,OAAO,CAAC,IAAI,CAAC,sCAAsC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;CACtF;AACD,SAAS,cAAc,CAAC,GAAW;IAC/B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;KAC1B;AACL,CAAC;AACD,OAAO,KAAK,SAAS,MAAM,kCAAkC,CAAC;AAC9D,cAAc,CAAC,SAAS,CAAC,CAAC;AAE1B,OAAO,KAAK,UAAU,MAAM,2CAA2C,CAAC;AACxE,cAAc,CAAC,UAAU,CAAC,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE;IACzD,QAAQ,MAAM,EAAE;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACP,SAAS;QACb;YACI,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM;KACb;CACJ;AAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;IACvB,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;CACjC;KACI;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACtB,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;KAC3C;CACJ;AAGD,wBAAwB;AACxB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IACtB,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;CAC/B;;IACI,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC"}
1
+ {"version":3,"file":"needle-engine.js","sourceRoot":"","sources":["../src/needle-engine.ts"],"names":[],"mappings":"AAAA,OAAO,yCAAyC,CAAC;AACjD,OAAO,0BAA0B,CAAC;AAClC,OAAO,0BAA0B,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yCAAyC,CAAC;AACxD,cAAc,yBAAyB,CAAC;AAExC,0CAA0C;AAC1C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/K,MAAM,MAAM,GAAG;IACX,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,OAAO;IAChB,eAAe,EAAE,eAAe;IAChC,MAAM,EAAE;QACJ,WAAW,EAAE,SAAS;KACzB;IACD,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,QAAQ;IAClB,cAAc,EAAE,cAAc;IAC9B,aAAa,EAAE,aAAa;IAC5B,oBAAoB,EAAE,aAAa;IACnC,gBAAgB,EAAE,SAAS;IAC3B,cAAc,EAAE,OAAO;CACjB,CAAC;AAEX,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,KAAK,SAAS,EAAE;IAC7C,OAAO,CAAC,IAAI,CAAC,sCAAsC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;CACtF;AACD,SAAS,cAAc,CAAC,GAAW;IAC/B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;KAC1B;AACL,CAAC;AACD,OAAO,KAAK,SAAS,MAAM,kCAAkC,CAAC;AAC9D,cAAc,CAAC,SAAS,CAAC,CAAC;AAE1B,OAAO,KAAK,UAAU,MAAM,2CAA2C,CAAC;AACxE,cAAc,CAAC,UAAU,CAAC,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE;IACzD,QAAQ,MAAM,EAAE;QACZ,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,QAAQ,CAAC;QACd,KAAK,MAAM;YACP,SAAS;QACb;YACI,MAAM,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM;KACb;CACJ;AAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;IACvB,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;CACjC;KACI;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;QACtB,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;KAC3C;CACJ;AAGD,wBAAwB;AACxB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IACtB,UAAU,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;CAC/B;;IACI,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,27 +1,35 @@
1
1
  {
2
2
  "name": "@needle-tools/engine",
3
- "version": "4.11.5-next.a900688",
3
+ "version": "4.11.5-next.b35161f",
4
4
  "description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.",
5
5
  "main": "dist/needle-engine.min.js",
6
6
  "exports": {
7
7
  ".": {
8
+ "types": "./dist/needle-engine.d.ts",
8
9
  "import": "./lib/needle-engine.js",
9
10
  "require": "./dist/needle-engine.umd.cjs"
10
11
  },
11
12
  "./package.json": "./package.json",
13
+ "./components.json": "./components.needle.json",
12
14
  "./asap": "./lib/asap/needle-asap.js",
13
15
  "./vite": {
14
- "types": "./plugins/types/vite.d.js",
16
+ "types": "./plugins/types/vite.d.ts",
15
17
  "import": "./plugins/vite/index.js",
16
18
  "require": "./plugins/vite/index.js"
17
19
  },
18
20
  "./next": {
19
- "types": "./plugins/types/next.d.js",
21
+ "types": "./plugins/types/next.d.ts",
20
22
  "import": "./plugins/next/index.js",
21
23
  "require": "./plugins/next/index.js"
22
24
  },
23
- "./plugins/vite/index.js": "./plugins/vite/index.js",
24
- "./plugins/next/index.js": "./plugins/next/index.js"
25
+ "./plugins/vite/index.js": {
26
+ "types": "./plugins/types/vite.d.ts",
27
+ "default": "./plugins/vite/index.js"
28
+ },
29
+ "./plugins/next/index.js": {
30
+ "types": "./plugins/types/next.d.ts",
31
+ "default": "./plugins/next/index.js"
32
+ }
25
33
  },
26
34
  "type": "module",
27
35
  "repository": {
@@ -48,6 +56,8 @@
48
56
  "test": "node plugins/test/test.mjs",
49
57
  "test:circular-imports": "node plugins/test/check-circular-imports.mjs",
50
58
  "test:tsc": "tsc --strict false && tsc --strict true",
59
+ "test:attw": "npx --yes @arethetypeswrong/cli --pack dist",
60
+ "generate:custom-elements": "npx web-component-analyzer src --format vscode --outFile custom-elements.json && node plugins/publish/clean-wca-json.mjs",
51
61
  "lint": "eslint --ext .ts src",
52
62
  "lint:fix": "eslint --ext .ts src --fix",
53
63
  "stats": "howfat ."
@@ -60,13 +70,9 @@
60
70
  "src",
61
71
  "lib",
62
72
  "dist",
63
- "dist/needle-engine.js",
64
- "dist/needle-engine.d.ts",
65
- "dist/needle-engine.umd.cjs",
66
- "dist/needle-engine.min.js",
67
- "dist/needle-engine.light.min.js",
68
73
  "plugins",
69
- "components.needle.json"
74
+ "components.needle.json",
75
+ "custom-elements.json"
70
76
  ],
71
77
  "keywords": [
72
78
  "needle",
@@ -141,7 +147,7 @@
141
147
  "npm-watch": "^0.11.0",
142
148
  "typescript": "^4.5.5",
143
149
  "vite": "7",
144
- "vite-plugin-dts": "^4.5.0"
150
+ "vite-plugin-dts": "^4.5.4"
145
151
  },
146
152
  "peerDependencies": {
147
153
  "open": "^10.1.0"
@@ -166,6 +172,7 @@
166
172
  "quiet": false
167
173
  }
168
174
  },
175
+ "customElements": "./custom-elements.json",
169
176
  "module": "lib/needle-engine.js",
170
177
  "typings": "lib/needle-engine.d.ts",
171
178
  "types": "lib/needle-engine.d.ts"
@@ -1,4 +1,4 @@
1
- import { License } from "./license";
1
+ import { License } from "./license.js";
2
2
 
3
3
  export type needleMeta = {
4
4
  needleEditor: string | null,
@@ -1,3 +1,3 @@
1
- import { userSettings } from './userconfig';
1
+ import { userSettings } from './userconfig.js';
2
2
 
3
3
  export declare function needleNext(nextConfig?: import('next').NextConfig, userSettings?: userSettings): Promise<import('next').NextConfig>;
@@ -1,4 +1,4 @@
1
- import { License } from "./license";
1
+ import { License } from "./license.js";
2
2
 
3
3
  export type needleModules = {
4
4
  webpack: object | undefined
@@ -128,4 +128,7 @@ export type userSettings = {
128
128
  loadMaterialX?: boolean;
129
129
 
130
130
  disableLogging?: boolean;
131
+
132
+ /** Set to true to disable the plugin that ensures VSCode workspace settings for custom-elements.json data */
133
+ noCustomElementData?: boolean;
131
134
  }
@@ -0,0 +1,80 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+
4
+ /**
5
+ * Ensure the repo workspace or .vscode settings include Needle Engine custom HTML data if they exist
6
+ * - Adds `./../node_modules/@needle-tools/engine/custom-elements.json`
7
+ * to `.code-workspace settings.html.customData`
8
+ * - Adds `./node_modules/@needle-tools/engine/custom-elements.json`
9
+ * to `.vscode/settings.json html.customData`
10
+ * @param {string} command
11
+ * @param {import('../types').needleMeta | null} config
12
+ * @param {import('../types').userSettings} userSettings
13
+ */
14
+ export const needleCustomElementData = (command, config, userSettings = {}) => {
15
+ // Allow disabling the workspace updater
16
+ if (config?.noCustomElementData === true || userSettings?.noCustomElementData === true) return;
17
+
18
+ return {
19
+ name: 'needle:custom-element-data',
20
+ configResolved() {
21
+ try {
22
+ const cwd = process.cwd();
23
+
24
+ // 1) workspace file(s)
25
+ const files = fs.readdirSync(cwd);
26
+ const workspaceFiles = files.filter(f => f.endsWith('.code-workspace'));
27
+ for (const f of workspaceFiles) {
28
+ const full = path.join(cwd, f);
29
+ try {
30
+ const raw = fs.readFileSync(full, 'utf8');
31
+ const data = JSON.parse(raw);
32
+
33
+ // Ensure settings.html.customData contains the workspace-relative path
34
+ data.settings = data.settings || {};
35
+ data.settings['html.customData'] = data.settings['html.customData'] || [];
36
+ const wantedCustomData = './../node_modules/@needle-tools/engine/custom-elements.json';
37
+ if (!data.settings['html.customData'].includes(wantedCustomData)) {
38
+ data.settings['html.customData'].push(wantedCustomData);
39
+
40
+ const newRaw = JSON.stringify(data, null, 2);
41
+ fs.writeFileSync(full, newRaw, 'utf8');
42
+ }
43
+ } catch (err) {
44
+ // ignore
45
+ }
46
+ }
47
+
48
+ // 2) .vscode/settings.json
49
+ const vscodeDir = path.join(cwd, '.vscode');
50
+
51
+ const settingsFile = path.join(vscodeDir, 'settings.json');
52
+ /** @type {Record<string, any>} */
53
+ let settings = {};
54
+ let rawSettings = "";
55
+ if (fs.existsSync(settingsFile)) {
56
+ try {
57
+ rawSettings = fs.readFileSync(settingsFile, 'utf8');
58
+ settings = JSON.parse(rawSettings) || {};
59
+
60
+ settings['html.customData'] = settings['html.customData'] || [];
61
+ const wantedCustomData = './node_modules/@needle-tools/engine/custom-elements.json';
62
+ if (!settings['html.customData'].includes(wantedCustomData)) {
63
+ settings['html.customData'].push(wantedCustomData);
64
+
65
+ // Write back settings.json if changed
66
+ const newRawSettings = JSON.stringify(settings, null, 2);
67
+ fs.writeFileSync(settingsFile, newRawSettings, 'utf8');
68
+ }
69
+ } catch (err) {
70
+ // ignore
71
+ }
72
+ }
73
+ } catch (err) {
74
+ // ignore
75
+ }
76
+ }
77
+ }
78
+ }
79
+
80
+ export default needleCustomElementData;
@@ -34,6 +34,9 @@ export { needleCopyFiles } from "./copyfiles.js";
34
34
  import { needleViteAlias } from "./alias.js";
35
35
  export { needleViteAlias } from "./alias.js";
36
36
 
37
+ import { needleCustomElementData } from './custom-element-data.js';
38
+ export { needleCustomElementData } from './custom-element-data.js';
39
+
37
40
  import { needleTransformCodegen } from "./transform-codegen.js";
38
41
  export { needleTransformCodegen } from "./transform-codegen.js";
39
42
 
@@ -120,6 +123,7 @@ export const needlePlugins = async (command, config = undefined, userSettings =
120
123
  needleLogger(command, config, userSettings),
121
124
  needleDefines(command, config, userSettings),
122
125
  needleLicense(command, config, userSettings),
126
+ needleCustomElementData(command, config, userSettings),
123
127
  needleViteAlias(command, config, userSettings),
124
128
  needleMeta(command, config, userSettings),
125
129
  needlePoster(command, config, userSettings),
@@ -0,0 +1,43 @@
1
+ import type { Context } from "../engine_setup.js";
2
+ import { isDevEnvironment } from "./debug.js";
3
+
4
+ declare global {
5
+ interface Window {
6
+ SPECTOR?: {
7
+ Spector: new () => Spector;
8
+ }
9
+ }
10
+ interface Spector {
11
+ displayUI: () => void;
12
+ setCanvas: (canvas: HTMLCanvasElement) => void;
13
+ spyCanvases: boolean;
14
+ startCaptureOnNextFrame: () => void;
15
+ captureCanvas: (canvas: HTMLCanvasElement) => any;
16
+ }
17
+ }
18
+
19
+
20
+ export function initSpectorIfAvailable(_context: Context, canvas: HTMLCanvasElement): void {
21
+ if (typeof window !== undefined && window.SPECTOR) {
22
+ console.log(window.SPECTOR);
23
+ const params = new URLSearchParams(window.location.search);
24
+ if (params.has("spector")) {
25
+ const frame = Number.parseInt(params.get("spector") || "0") || 0;
26
+ console.log("Scheduled Spector capture at frame #" + frame);
27
+ const spector = new window.SPECTOR.Spector();
28
+ spector.spyCanvases = true;
29
+ waitForFrameAndCapture();
30
+ return;
31
+
32
+ function waitForFrameAndCapture() {
33
+ if (frame > _context.time.frame) return window.requestAnimationFrame(() => waitForFrameAndCapture());
34
+ const res = spector.captureCanvas(canvas);
35
+ if (res && res instanceof Promise) res.then(() => spector.displayUI());
36
+ else spector.displayUI();
37
+ }
38
+ }
39
+ else if (isDevEnvironment()) {
40
+ console.debug("Spector available: Add '?spector=<frame>' to the URL to enable it and capture a frame.");
41
+ }
42
+ }
43
+ }
@@ -15,7 +15,7 @@ const userInteractionCallbacks: Function[] = [];
15
15
  */
16
16
  export function internalOnUserInputRegistered() {
17
17
  if (userInteractionRegistered) return;
18
- if (isDevEnvironment()) console.debug("User interaction registered: audio can now be played");
18
+ if (isDevEnvironment()) console.debug("[Needle Engine] User input registered: Media playback is now allowed.");
19
19
  userInteractionRegistered = true;
20
20
  const copy = [...userInteractionCallbacks];
21
21
  userInteractionCallbacks.length = 0;
@@ -28,6 +28,21 @@ document.addEventListener('dragstart', internalOnUserInputRegistered);
28
28
  document.addEventListener('touchend', internalOnUserInputRegistered);
29
29
  document.addEventListener('keydown', internalOnUserInputRegistered);
30
30
 
31
+
32
+ declare global {
33
+ interface Navigator {
34
+ userActivation?: {
35
+ isActive: boolean;
36
+ };
37
+ }
38
+ }
39
+ // User Activation should be available across browsers since November 2023 https://developer.mozilla.org/en-US/docs/Web/API/UserActivation
40
+ if (typeof window !== "undefined" && "userActivation" in navigator && navigator.userActivation?.isActive) {
41
+ if (isDevEnvironment()) console.debug("[Needle Engine] User input already active: Media playback is now allowed.");
42
+ userInteractionCallbacks.length = 0;
43
+ userInteractionRegistered = true;
44
+ }
45
+
31
46
  /**
32
47
  * The Application class can be used to mute audio globally, and to check if the application (canvas) is currently visible (it's tab is active and not minimized).
33
48
  */
@@ -2,7 +2,6 @@ import { Bone, BufferAttribute, BufferGeometry, InterleavedBuffer, InterleavedBu
2
2
 
3
3
  import { addPatch } from "./engine_patcher.js";
4
4
  import { Physics } from "./engine_physics.js";
5
- import { Model } from "./engine_types.js";
6
5
  import { getParam } from "./engine_utils.js";
7
6
  import { InternalUsageTrackerPlugin } from "./extensions/usage_tracker.js";
8
7
 
@@ -21,26 +20,6 @@ export class AssetDatabase {
21
20
  }
22
21
  });
23
22
  }
24
-
25
- dispose() {
26
- this._models.clear();
27
- }
28
-
29
- private readonly _models = new Map<string, Model>();
30
-
31
- add(url: string, model: Model) {
32
- if (!this._models.has(url)) {
33
- this._models.set(url, model);
34
- }
35
- }
36
-
37
- has(url: string): boolean {
38
- return this._models.has(url);
39
- }
40
-
41
- get(url: string): Model | null {
42
- return this._models.get(url) || null;
43
- }
44
23
  }
45
24
 
46
25
  const trackUsageParam = getParam("trackresources");
@@ -13,6 +13,7 @@ import * as Stats from 'three/examples/jsm/libs/stats.module.js';
13
13
  import type { EffectComposer as ThreeEffectComposer } from "three/examples/jsm/postprocessing/EffectComposer.js";
14
14
  import { nodeFrame } from "three/examples/jsm/renderers/webgl-legacy/nodes/WebGLNodeBuilder.js";
15
15
 
16
+ import { initSpectorIfAvailable } from './debug/debug_spector.js';
16
17
  import { isDevEnvironment, LogType, showBalloonError, showBalloonMessage } from './debug/index.js';
17
18
  import { Addressables } from './engine_addressables.js';
18
19
  import { AnimationsRegistry } from './engine_animation.js';
@@ -487,6 +488,7 @@ export class Context implements IContext {
487
488
  physics: Physics;
488
489
  /** access networking methods (use it to send or listen to messages or join a networking backend) */
489
490
  connection: NetworkConnection;
491
+ /** @deprecated AssetDatabase is deprecated */
490
492
  assets: AssetDatabase;
491
493
  /** The main light in the scene */
492
494
  mainLight: ILight | null = null;
@@ -621,6 +623,8 @@ export class Context implements IContext {
621
623
 
622
624
  this.input.bindEvents();
623
625
 
626
+ initSpectorIfAvailable(this, this.renderer.domElement);
627
+
624
628
  return this.renderer;
625
629
  }
626
630
 
@@ -789,7 +793,6 @@ export class Context implements IContext {
789
793
  this.lightmaps?.clear();
790
794
  this.physics?.engine?.clearCaches();
791
795
  this.lodsManager.disable();
792
- this.assets.dispose();
793
796
 
794
797
  this._onBeforeRenderListeners.clear();
795
798
  this._onAfterRenderListeners.clear();
@@ -1706,7 +1709,8 @@ export class Context implements IContext {
1706
1709
 
1707
1710
  if (this._stats) {
1708
1711
  this._stats.end();
1709
- if (this.time.frameCount % 150 === 0)
1712
+ const dt = this.time.fps < 20 ? 50 : 150;
1713
+ if (this.time.frameCount % dt === 0)
1710
1714
  console.log(this.renderer.info.render.calls + " DrawCalls", "\nRender:", { ...this.renderer.info.render }, "\nMemory:", { ...this.renderer.info.memory }, "\nTarget Framerate: " + this.targetFrameRate);
1711
1715
  }
1712
1716
 
@@ -236,20 +236,20 @@ function onBeforeLoad(loader: Loader | CustomLoader, context: Context): { compon
236
236
 
237
237
 
238
238
  /** Call after a 3d model has been loaded to compile shaders and construct the needle engine model structure with relevant metadata (if necessary) */
239
- async function onAfterLoaded(loader: Loader | CustomLoader, context: Context, pathOrUrl: string, asset: ValidLoaderReturnType, seed: number | null | UIDProvider, componentsExtension: NEEDLE_components | null): Promise<Model> {
240
- if (printGltf) console.warn("Loaded", pathOrUrl, asset);
239
+ async function onAfterLoaded(loader: Loader | CustomLoader, context: Context, gltfId: string, model: ValidLoaderReturnType, seed: number | null | UIDProvider, componentsExtension: NEEDLE_components | null): Promise<Model> {
240
+ if (printGltf) console.warn("Loaded", gltfId, model);
241
241
 
242
242
  // Handle loader was registered but no model was returned - should not completely break the engine
243
- if (asset == null) {
244
- console.error(`Loaded model is null '${pathOrUrl}' - please make sure the loader is registered correctly`);
243
+ if (model == null) {
244
+ console.error(`Loaded model is null '${gltfId}' - please make sure the loader is registered correctly`);
245
245
  return {
246
246
  scene: new Object3D(),
247
247
  animations: [],
248
248
  scenes: []
249
249
  };
250
250
  }
251
- else if (typeof asset !== "object") {
252
- console.error(`Loaded model is not an object '${pathOrUrl}' - please make sure the loader is registered correctly`);
251
+ else if (typeof model !== "object") {
252
+ console.error(`Loaded model is not an object '${gltfId}' - please make sure the loader is registered correctly`);
253
253
  return {
254
254
  scene: new Object3D(),
255
255
  animations: [],
@@ -258,50 +258,48 @@ async function onAfterLoaded(loader: Loader | CustomLoader, context: Context, pa
258
258
  }
259
259
 
260
260
  // Handle OBJ or FBX loader results
261
- if (asset instanceof Object3D) {
262
- asset = {
263
- scene: asset,
264
- animations: asset.animations,
265
- scenes: [asset]
261
+ if (model instanceof Object3D) {
262
+ model = {
263
+ scene: model,
264
+ animations: model.animations,
265
+ scenes: [model]
266
266
  }
267
267
  }
268
268
  // Handle STL loader results
269
- else if (asset instanceof BufferGeometry) {
269
+ else if (model instanceof BufferGeometry) {
270
270
  const mat = new MeshStandardMaterial({
271
271
  color: new Color(0xdddddd)
272
272
  });
273
- const mesh = new Mesh(asset, mat);
274
- asset = {
273
+ const mesh = new Mesh(model, mat);
274
+ model = {
275
275
  scene: mesh,
276
276
  animations: [],
277
277
  scenes: [mesh]
278
278
  }
279
279
  }
280
- else if (Array.isArray(asset.scenes) === false) {
281
- console.error(`[Needle Engine] The loaded model object does not have a scenes property '${pathOrUrl}' - please make sure the loader is registered correctly and three.js is not imported multiple times.`);
280
+ else if (Array.isArray(model.scenes) === false) {
281
+ console.error(`[Needle Engine] The loaded model object does not have a scenes property '${gltfId}' - please make sure the loader is registered correctly and three.js is not imported multiple times.`);
282
282
  }
283
283
 
284
284
 
285
285
  // Remove query parameters from gltfId
286
- if (pathOrUrl.includes("?")) {
287
- pathOrUrl = pathOrUrl.split("?")[0];
286
+ if (gltfId.includes("?")) {
287
+ gltfId = gltfId.split("?")[0];
288
288
  }
289
289
 
290
290
  // E.g. fbx material cleanup
291
- postprocessLoadedFile(loader, asset);
292
-
293
- context.assets.add(pathOrUrl, asset);
291
+ postprocessLoadedFile(loader, model);
294
292
 
295
293
  // load components
296
- if (isGLTFModel(asset)) {
297
- invokeLoadedImportPluginHooks(pathOrUrl, asset, context);
298
- await getLoader().createBuiltinComponents(context, pathOrUrl, asset, seed, componentsExtension || undefined);
294
+ if (isGLTFModel(model)) {
295
+ invokeLoadedImportPluginHooks(gltfId, model, context);
296
+ await getLoader().createBuiltinComponents(context, gltfId, model, seed, componentsExtension || undefined);
299
297
  }
300
298
 
301
299
  // Warmup the scene
302
- await compileAsync(asset.scene, context, context.mainCamera);
300
+ await compileAsync(model.scene, context, context.mainCamera);
303
301
 
304
- return asset;
302
+ return model;
305
303
  }
306
304
 
307
305
  async function compileAsync(scene: Object3D, context: Context, camera?: Camera | null) {
@@ -13,6 +13,7 @@ import type { IPhysicsEngine } from './engine_types.js';
13
13
  import { getParam } from "./engine_utils.js"
14
14
 
15
15
  const debugPhysics = getParam("debugphysics");
16
+ const debugWorker = getParam("debugworker");
16
17
  const layerMaskHelper: Layers = new Layers();
17
18
 
18
19
 
@@ -654,6 +655,9 @@ namespace NEMeshBVH {
654
655
  // if there are no workers available, create a new one
655
656
  if (!workerInstance && workerInstances.length < 3) {
656
657
  try {
658
+ if (debugWorker) {
659
+ console.warn("[GenerateMeshBVHWorker] Creating worker with import.meta.url:", import.meta.url);
660
+ }
657
661
  workerInstance = new _GenerateMeshBVHWorker();
658
662
  workerInstances.push(workerInstance);
659
663
  }
@@ -665,8 +669,8 @@ namespace NEMeshBVH {
665
669
  failedToCreateMeshBVHWorker += 10;
666
670
  }
667
671
  else {
668
- console.error("Failed to create MeshBVH worker");
669
- console.debug(err);
672
+ console.error("Failed to create MeshBVH worker. Please see below for more details:");
673
+ console.log(err);
670
674
  }
671
675
  failedToCreateMeshBVHWorker++;
672
676
  }
@@ -67,7 +67,7 @@ export class RapierPhysics implements IPhysicsEngine {
67
67
  debugRenderRaycasts: boolean = false;
68
68
 
69
69
  removeBody(obj: IComponent) {
70
- if(debugPhysics) console.log("REMOVE BODY", obj?.name, obj[$bodyKey]);
70
+ if (debugPhysics) console.log("REMOVE BODY", obj?.name, obj[$bodyKey]);
71
71
  if (!obj) return;
72
72
  this.validate();
73
73
  const body = obj[$bodyKey];
@@ -817,7 +817,16 @@ export class RapierPhysics implements IPhysicsEngine {
817
817
  return component;
818
818
  }
819
819
 
820
- private createCollider(collider: ICollider, desc: ColliderDesc) {
820
+ /**
821
+ * Creates a collider in the physics world.
822
+ *
823
+ * @param collider - The collider component.
824
+ * @param desc - The collider description.
825
+ * @returns The created collider.
826
+ *
827
+ * @throws Will throw an error if the physics world is not initialized. Make sure to call `initialize()` before creating colliders.
828
+ */
829
+ createCollider(collider: ICollider, desc: ColliderDesc) {
821
830
  if (!this.world) throw new Error("Physics world not initialized");
822
831
  const matrix = this._tempMatrix;
823
832
  let rigidBody: RigidBody | undefined = undefined;
@@ -1,6 +1,6 @@
1
1
  import type { EffectComposer } from "postprocessing";
2
2
  import { Camera, Mesh, Object3D, Texture, WebGLRenderer, WebGLRenderTarget } from "three";
3
- import type { EffectComposer as ThreeEffectComposer } from "three/examples/jsm/postprocessing/EffectComposer";
3
+ import type { EffectComposer as ThreeEffectComposer } from "three/examples/jsm/postprocessing/EffectComposer.js";
4
4
 
5
5
  import { findResourceUsers } from "./engine_assetdatabase.js";
6
6
 
@@ -1,7 +1,7 @@
1
1
  import { ACESFilmicToneMapping, AgXToneMapping, NeutralToneMapping, NoToneMapping, ShaderChunk, ToneMapping } from "three";
2
2
 
3
3
  import { isDevEnvironment } from "./debug/index.js";
4
- import type { Context } from "./engine_setup";
4
+ import type { Context } from "./engine_setup.js";
5
5
 
6
6
  let patchedTonemapping = false;
7
7
  export function patchTonemapping(_ctx?: Context) {
@@ -566,6 +566,23 @@ export interface IPhysicsEngine {
566
566
  */
567
567
  boxOverlap(point: Vector3, size: Vector3, rotation: Vector4Like | null): Array<ShapeOverlapResult>;
568
568
 
569
+ /**
570
+ * Creates a collider in the physics world.
571
+ *
572
+ * @param collider - The collider component.
573
+ * @param desc - The collider description.
574
+ * @returns The created collider.
575
+ *
576
+ * @throws Will throw an error if the physics world is not initialized. Make sure to call `initialize()` before creating colliders.
577
+ *
578
+ * @example
579
+ * ```typescript
580
+ * const boxColliderDesc = NEEDLE_ENGINE_MODULES.RAPIER_PHYSICS.MODULE.ColliderDesc.cuboid(1, 1, 1);
581
+ * const collider = physicsEngine.createCollider(myBoxColliderComponent, boxColliderDesc);
582
+ * ```
583
+ */
584
+ createCollider(collider: ICollider, desc: any): any;
585
+
569
586
  // Collider methods
570
587
  /**
571
588
  * Adds a sphere collider to the physics world