@needle-tools/engine 5.1.0-canary.fbdfce3 → 5.1.0-experimental.03e8105

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 (311) hide show
  1. package/CHANGELOG.md +86 -0
  2. package/SKILL.md +4 -1
  3. package/components.needle.json +1 -1
  4. package/dist/{needle-engine.bundle-BFSj2Fz8.js → needle-engine.bundle-BNqUjnSQ.js} +19180 -18386
  5. package/dist/needle-engine.bundle-Bt8ULD7E.umd.cjs +1733 -0
  6. package/dist/needle-engine.bundle-DF6ovbwD.min.js +1733 -0
  7. package/dist/needle-engine.d.ts +1487 -356
  8. package/dist/needle-engine.js +544 -542
  9. package/dist/needle-engine.min.js +1 -1
  10. package/dist/needle-engine.umd.cjs +1 -1
  11. package/dist/three.js +1 -0
  12. package/dist/three.min.js +21 -21
  13. package/dist/three.umd.cjs +16 -16
  14. package/lib/engine/api.d.ts +8 -1
  15. package/lib/engine/api.js +7 -1
  16. package/lib/engine/api.js.map +1 -1
  17. package/lib/engine/codegen/register_types.js +10 -18
  18. package/lib/engine/codegen/register_types.js.map +1 -1
  19. package/lib/engine/engine_audio.d.ts +68 -0
  20. package/lib/engine/engine_audio.js +172 -0
  21. package/lib/engine/engine_audio.js.map +1 -1
  22. package/lib/engine/engine_camera.fit.js +16 -4
  23. package/lib/engine/engine_camera.fit.js.map +1 -1
  24. package/lib/engine/engine_components.js +1 -1
  25. package/lib/engine/engine_components.js.map +1 -1
  26. package/lib/engine/engine_context.d.ts +21 -8
  27. package/lib/engine/engine_context.js +32 -16
  28. package/lib/engine/engine_context.js.map +1 -1
  29. package/lib/engine/engine_context_eventbus.d.ts +47 -0
  30. package/lib/engine/engine_context_eventbus.js +47 -0
  31. package/lib/engine/engine_context_eventbus.js.map +1 -0
  32. package/lib/engine/engine_disposable.d.ts +172 -0
  33. package/lib/engine/engine_disposable.js +136 -0
  34. package/lib/engine/engine_disposable.js.map +1 -0
  35. package/lib/engine/engine_gameobject.d.ts +1 -10
  36. package/lib/engine/engine_gameobject.js +22 -120
  37. package/lib/engine/engine_gameobject.js.map +1 -1
  38. package/lib/engine/engine_gltf_builtin_components.js +7 -69
  39. package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
  40. package/lib/engine/engine_init.js +7 -7
  41. package/lib/engine/engine_init.js.map +1 -1
  42. package/lib/engine/engine_input.d.ts +24 -5
  43. package/lib/engine/engine_input.js +3 -2
  44. package/lib/engine/engine_input.js.map +1 -1
  45. package/lib/engine/engine_instantiate_resolve.d.ts +42 -0
  46. package/lib/engine/engine_instantiate_resolve.js +372 -0
  47. package/lib/engine/engine_instantiate_resolve.js.map +1 -0
  48. package/lib/engine/engine_license.d.ts +7 -7
  49. package/lib/engine/engine_license.js +183 -57
  50. package/lib/engine/engine_license.js.map +1 -1
  51. package/lib/engine/engine_mainloop_utils.js +7 -4
  52. package/lib/engine/engine_mainloop_utils.js.map +1 -1
  53. package/lib/engine/engine_networking.d.ts +51 -37
  54. package/lib/engine/engine_networking.js +132 -82
  55. package/lib/engine/engine_networking.js.map +1 -1
  56. package/lib/engine/engine_networking.transport.websocket.d.ts +15 -0
  57. package/lib/engine/engine_networking.transport.websocket.js +38 -0
  58. package/lib/engine/engine_networking.transport.websocket.js.map +1 -0
  59. package/lib/engine/engine_networking_blob.js +4 -4
  60. package/lib/engine/engine_networking_blob.js.map +1 -1
  61. package/lib/engine/engine_networking_instantiate.js +2 -2
  62. package/lib/engine/engine_networking_instantiate.js.map +1 -1
  63. package/lib/engine/engine_networking_types.d.ts +39 -1
  64. package/lib/engine/engine_networking_types.js +7 -0
  65. package/lib/engine/engine_networking_types.js.map +1 -1
  66. package/lib/engine/engine_physics_rapier.d.ts +21 -3
  67. package/lib/engine/engine_physics_rapier.js +94 -25
  68. package/lib/engine/engine_physics_rapier.js.map +1 -1
  69. package/lib/engine/engine_scenedata.js +2 -2
  70. package/lib/engine/engine_scenedata.js.map +1 -1
  71. package/lib/engine/engine_serialization_builtin_serializer.js +28 -5
  72. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  73. package/lib/engine/engine_serialization_core.d.ts +1 -0
  74. package/lib/engine/engine_serialization_core.js +7 -0
  75. package/lib/engine/engine_serialization_core.js.map +1 -1
  76. package/lib/engine/engine_types.d.ts +29 -11
  77. package/lib/engine/engine_types.js +1 -1
  78. package/lib/engine/engine_types.js.map +1 -1
  79. package/lib/engine/engine_util_decorator.js +7 -2
  80. package/lib/engine/engine_util_decorator.js.map +1 -1
  81. package/lib/engine/engine_utils.d.ts +1 -1
  82. package/lib/engine/engine_utils.js +19 -5
  83. package/lib/engine/engine_utils.js.map +1 -1
  84. package/lib/engine/engine_utils_qrcode.js +2 -2
  85. package/lib/engine/engine_utils_qrcode.js.map +1 -1
  86. package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +1 -1
  87. package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js.map +1 -1
  88. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +2 -2
  89. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js.map +1 -1
  90. package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +1 -1
  91. package/lib/engine/webcomponents/needle menu/needle-menu.js +6 -6
  92. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  93. package/lib/engine/webcomponents/needle-engine.d.ts +10 -4
  94. package/lib/engine/webcomponents/needle-engine.js +3 -3
  95. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  96. package/lib/engine/webcomponents/needle-engine.loading.js +2 -2
  97. package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
  98. package/lib/engine/xr/NeedleXRSession.d.ts +3 -2
  99. package/lib/engine/xr/NeedleXRSession.js +50 -14
  100. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  101. package/lib/engine/xr/TempXRContext.js +2 -2
  102. package/lib/engine/xr/TempXRContext.js.map +1 -1
  103. package/lib/engine/xr/events.d.ts +1 -1
  104. package/lib/engine/xr/events.js.map +1 -1
  105. package/lib/engine-components/Animation.js +17 -16
  106. package/lib/engine-components/Animation.js.map +1 -1
  107. package/lib/engine-components/AnimationBuilder.d.ts +158 -0
  108. package/lib/engine-components/AnimationBuilder.js +305 -0
  109. package/lib/engine-components/AnimationBuilder.js.map +1 -0
  110. package/lib/engine-components/Animator.d.ts +6 -0
  111. package/lib/engine-components/Animator.js +23 -13
  112. package/lib/engine-components/Animator.js.map +1 -1
  113. package/lib/engine-components/AnimatorController.builder.d.ts +191 -0
  114. package/lib/engine-components/AnimatorController.builder.js +263 -0
  115. package/lib/engine-components/AnimatorController.builder.js.map +1 -0
  116. package/lib/engine-components/AnimatorController.d.ts +2 -119
  117. package/lib/engine-components/AnimatorController.js +33 -232
  118. package/lib/engine-components/AnimatorController.js.map +1 -1
  119. package/lib/engine-components/AudioSource.d.ts +19 -3
  120. package/lib/engine-components/AudioSource.js +121 -68
  121. package/lib/engine-components/AudioSource.js.map +1 -1
  122. package/lib/engine-components/Collider.d.ts +18 -9
  123. package/lib/engine-components/Collider.js +61 -14
  124. package/lib/engine-components/Collider.js.map +1 -1
  125. package/lib/engine-components/Component.d.ts +72 -9
  126. package/lib/engine-components/Component.js +114 -10
  127. package/lib/engine-components/Component.js.map +1 -1
  128. package/lib/engine-components/ContactShadows.d.ts +1 -0
  129. package/lib/engine-components/ContactShadows.js +14 -1
  130. package/lib/engine-components/ContactShadows.js.map +1 -1
  131. package/lib/engine-components/DragControls.d.ts +7 -0
  132. package/lib/engine-components/DragControls.js +19 -7
  133. package/lib/engine-components/DragControls.js.map +1 -1
  134. package/lib/engine-components/DropListener.js +3 -0
  135. package/lib/engine-components/DropListener.js.map +1 -1
  136. package/lib/engine-components/EventList.d.ts +31 -9
  137. package/lib/engine-components/EventList.js +37 -76
  138. package/lib/engine-components/EventList.js.map +1 -1
  139. package/lib/engine-components/Joints.d.ts +4 -2
  140. package/lib/engine-components/Joints.js +19 -3
  141. package/lib/engine-components/Joints.js.map +1 -1
  142. package/lib/engine-components/Light.js +9 -1
  143. package/lib/engine-components/Light.js.map +1 -1
  144. package/lib/engine-components/Networking.d.ts +1 -1
  145. package/lib/engine-components/Networking.js +1 -1
  146. package/lib/engine-components/OrbitControls.d.ts +0 -2
  147. package/lib/engine-components/OrbitControls.js +30 -12
  148. package/lib/engine-components/OrbitControls.js.map +1 -1
  149. package/lib/engine-components/RigidBody.d.ts +12 -4
  150. package/lib/engine-components/RigidBody.js +18 -4
  151. package/lib/engine-components/RigidBody.js.map +1 -1
  152. package/lib/engine-components/SceneSwitcher.js +3 -0
  153. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  154. package/lib/engine-components/SeeThrough.js +2 -2
  155. package/lib/engine-components/SeeThrough.js.map +1 -1
  156. package/lib/engine-components/api.d.ts +2 -1
  157. package/lib/engine-components/api.js +2 -1
  158. package/lib/engine-components/api.js.map +1 -1
  159. package/lib/engine-components/codegen/components.d.ts +7 -13
  160. package/lib/engine-components/codegen/components.js +7 -13
  161. package/lib/engine-components/codegen/components.js.map +1 -1
  162. package/lib/engine-components/export/usdz/USDZExporter.js +4 -4
  163. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  164. package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.d.ts +1 -1
  165. package/lib/engine-components/timeline/PlayableDirector.d.ts +21 -11
  166. package/lib/engine-components/timeline/PlayableDirector.js +75 -67
  167. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  168. package/lib/engine-components/timeline/SignalAsset.d.ts +3 -1
  169. package/lib/engine-components/timeline/SignalAsset.js +1 -0
  170. package/lib/engine-components/timeline/SignalAsset.js.map +1 -1
  171. package/lib/engine-components/timeline/TimelineBuilder.d.ts +413 -0
  172. package/lib/engine-components/timeline/TimelineBuilder.js +506 -0
  173. package/lib/engine-components/timeline/TimelineBuilder.js.map +1 -0
  174. package/lib/engine-components/timeline/TimelineModels.d.ts +2 -1
  175. package/lib/engine-components/timeline/TimelineModels.js +3 -0
  176. package/lib/engine-components/timeline/TimelineModels.js.map +1 -1
  177. package/lib/engine-components/timeline/TimelineTracks.d.ts +37 -6
  178. package/lib/engine-components/timeline/TimelineTracks.js +92 -26
  179. package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
  180. package/lib/engine-components/timeline/index.d.ts +2 -1
  181. package/lib/engine-components/timeline/index.js +2 -0
  182. package/lib/engine-components/timeline/index.js.map +1 -1
  183. package/lib/engine-components/ui/Canvas.d.ts +1 -1
  184. package/lib/engine-components/ui/Canvas.js +2 -8
  185. package/lib/engine-components/ui/Canvas.js.map +1 -1
  186. package/lib/engine-components/ui/Text.d.ts +1 -0
  187. package/lib/engine-components/ui/Text.js +10 -7
  188. package/lib/engine-components/ui/Text.js.map +1 -1
  189. package/lib/engine-components/web/CursorFollow.d.ts +0 -1
  190. package/lib/engine-components/web/CursorFollow.js +21 -13
  191. package/lib/engine-components/web/CursorFollow.js.map +1 -1
  192. package/lib/engine-components/webxr/WebXRImageTracking.js +4 -0
  193. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  194. package/package.json +2 -83
  195. package/plugins/common/cloud.js +6 -1
  196. package/plugins/common/license.js +31 -10
  197. package/plugins/common/worker.js +9 -4
  198. package/plugins/vite/asap.js +17 -8
  199. package/plugins/vite/dependencies.js +29 -10
  200. package/plugins/vite/dependency-watcher.js +2 -2
  201. package/plugins/vite/editor-connection.js +3 -3
  202. package/plugins/vite/license.js +46 -7
  203. package/plugins/vite/local-files-core.js +3 -3
  204. package/plugins/vite/local-files-utils.d.ts +3 -1
  205. package/plugins/vite/local-files-utils.js +29 -5
  206. package/plugins/vite/reload.js +1 -1
  207. package/plugins/vite/server.js +2 -1
  208. package/src/engine/api.ts +11 -1
  209. package/src/engine/codegen/register_types.ts +10 -18
  210. package/src/engine/engine_audio.ts +184 -0
  211. package/src/engine/engine_camera.fit.ts +15 -4
  212. package/src/engine/engine_components.ts +1 -1
  213. package/src/engine/engine_context.ts +34 -18
  214. package/src/engine/engine_context_eventbus.ts +73 -0
  215. package/src/engine/engine_disposable.ts +214 -0
  216. package/src/engine/engine_gameobject.ts +54 -159
  217. package/src/engine/engine_gltf_builtin_components.ts +7 -76
  218. package/src/engine/engine_init.ts +7 -7
  219. package/src/engine/engine_input.ts +28 -7
  220. package/src/engine/engine_instantiate_resolve.ts +407 -0
  221. package/src/engine/engine_license.ts +197 -55
  222. package/src/engine/engine_mainloop_utils.ts +7 -4
  223. package/src/engine/engine_networking.transport.websocket.ts +45 -0
  224. package/src/engine/engine_networking.ts +161 -137
  225. package/src/engine/engine_networking_blob.ts +4 -4
  226. package/src/engine/engine_networking_instantiate.ts +2 -2
  227. package/src/engine/engine_networking_types.ts +41 -1
  228. package/src/engine/engine_physics_rapier.ts +102 -33
  229. package/src/engine/engine_scenedata.ts +3 -3
  230. package/src/engine/engine_serialization_builtin_serializer.ts +32 -9
  231. package/src/engine/engine_serialization_core.ts +9 -0
  232. package/src/engine/engine_types.ts +46 -27
  233. package/src/engine/engine_util_decorator.ts +7 -2
  234. package/src/engine/engine_utils.ts +16 -5
  235. package/src/engine/engine_utils_qrcode.ts +2 -2
  236. package/src/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +1 -1
  237. package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +2 -2
  238. package/src/engine/webcomponents/needle menu/needle-menu.ts +6 -6
  239. package/src/engine/webcomponents/needle-engine.loading.ts +6 -6
  240. package/src/engine/webcomponents/needle-engine.ts +12 -6
  241. package/src/engine/xr/NeedleXRSession.ts +48 -13
  242. package/src/engine/xr/TempXRContext.ts +2 -2
  243. package/src/engine/xr/events.ts +1 -1
  244. package/src/engine-components/Animation.ts +19 -16
  245. package/src/engine-components/AnimationBuilder.ts +472 -0
  246. package/src/engine-components/Animator.ts +24 -12
  247. package/src/engine-components/AnimatorController.builder.ts +387 -0
  248. package/src/engine-components/AnimatorController.ts +20 -291
  249. package/src/engine-components/AudioSource.ts +130 -79
  250. package/src/engine-components/Collider.ts +66 -18
  251. package/src/engine-components/Component.ts +118 -20
  252. package/src/engine-components/ContactShadows.ts +15 -1
  253. package/src/engine-components/DragControls.ts +18 -11
  254. package/src/engine-components/DropListener.ts +3 -0
  255. package/src/engine-components/EventList.ts +45 -83
  256. package/src/engine-components/Joints.ts +20 -4
  257. package/src/engine-components/Light.ts +10 -2
  258. package/src/engine-components/Networking.ts +1 -1
  259. package/src/engine-components/OrbitControls.ts +34 -14
  260. package/src/engine-components/RigidBody.ts +18 -4
  261. package/src/engine-components/SceneSwitcher.ts +3 -0
  262. package/src/engine-components/SeeThrough.ts +2 -2
  263. package/src/engine-components/api.ts +2 -1
  264. package/src/engine-components/codegen/components.ts +7 -13
  265. package/src/engine-components/export/usdz/USDZExporter.ts +4 -4
  266. package/src/engine-components/timeline/PlayableDirector.ts +83 -81
  267. package/src/engine-components/timeline/SignalAsset.ts +4 -1
  268. package/src/engine-components/timeline/TimelineBuilder.ts +824 -0
  269. package/src/engine-components/timeline/TimelineModels.ts +5 -1
  270. package/src/engine-components/timeline/TimelineTracks.ts +96 -27
  271. package/src/engine-components/timeline/index.ts +2 -1
  272. package/src/engine-components/ui/Canvas.ts +2 -8
  273. package/src/engine-components/ui/Text.ts +12 -8
  274. package/src/engine-components/web/CursorFollow.ts +21 -14
  275. package/src/engine-components/webxr/WebXRImageTracking.ts +2 -0
  276. package/dist/needle-engine.bundle-CmxIO5uH.min.js +0 -1732
  277. package/dist/needle-engine.bundle-tJIZukCz.umd.cjs +0 -1732
  278. package/lib/engine-components/AvatarLoader.d.ts +0 -80
  279. package/lib/engine-components/AvatarLoader.js +0 -232
  280. package/lib/engine-components/AvatarLoader.js.map +0 -1
  281. package/lib/engine-components/avatar/AvatarBlink_Simple.d.ts +0 -11
  282. package/lib/engine-components/avatar/AvatarBlink_Simple.js +0 -77
  283. package/lib/engine-components/avatar/AvatarBlink_Simple.js.map +0 -1
  284. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.d.ts +0 -14
  285. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js +0 -69
  286. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js.map +0 -1
  287. package/lib/engine-components/avatar/Avatar_Brain_LookAt.d.ts +0 -29
  288. package/lib/engine-components/avatar/Avatar_Brain_LookAt.js +0 -122
  289. package/lib/engine-components/avatar/Avatar_Brain_LookAt.js.map +0 -1
  290. package/lib/engine-components/avatar/Avatar_MouthShapes.d.ts +0 -15
  291. package/lib/engine-components/avatar/Avatar_MouthShapes.js +0 -80
  292. package/lib/engine-components/avatar/Avatar_MouthShapes.js.map +0 -1
  293. package/lib/engine-components/avatar/Avatar_MustacheShake.d.ts +0 -9
  294. package/lib/engine-components/avatar/Avatar_MustacheShake.js +0 -30
  295. package/lib/engine-components/avatar/Avatar_MustacheShake.js.map +0 -1
  296. package/plugins/dts-generator/dts.codegen.js +0 -334
  297. package/plugins/dts-generator/dts.scan.js +0 -99
  298. package/plugins/dts-generator/dts.writer.js +0 -59
  299. package/plugins/dts-generator/glb.discovery.js +0 -279
  300. package/plugins/dts-generator/glb.extractor.js +0 -215
  301. package/plugins/dts-generator/glb.reader.js +0 -167
  302. package/plugins/dts-generator/index.js +0 -36
  303. package/plugins/dts-generator/manifest.types.js +0 -174
  304. package/plugins/gltf-packer.mjs +0 -1
  305. package/src/engine-components/AvatarLoader.ts +0 -264
  306. package/src/engine-components/avatar/AvatarBlink_Simple.ts +0 -70
  307. package/src/engine-components/avatar/AvatarEyeLook_Rotation.ts +0 -64
  308. package/src/engine-components/avatar/Avatar_Brain_LookAt.ts +0 -140
  309. package/src/engine-components/avatar/Avatar_MouthShapes.ts +0 -84
  310. package/src/engine-components/avatar/Avatar_MustacheShake.ts +0 -32
  311. package/src/vite-env.d.ts +0 -16
@@ -1,140 +0,0 @@
1
- import { Object3D, Vector3 } from "three";
2
-
3
- import { OwnershipModel } from "../../engine/engine_networking.js";
4
- import type { IModel } from "../../engine/engine_networking_types.js";
5
- import { Context } from "../../engine/engine_setup.js";
6
- import * as utils from "../../engine/engine_three_utils.js";
7
- import { TypeStore } from "../../engine/engine_typestore.js";
8
- import { Behaviour, GameObject } from "../Component.js";
9
- import { AvatarMarker } from "../webxr/WebXRAvatar.js";
10
-
11
- /** @internal */
12
- export class Avatar_POI {
13
-
14
- public static Pois: { obj: Object3D, avatar: AvatarMarker | null }[] = [];
15
- public static LastChangeTime: number = 0;
16
-
17
- public static Add(context: Context, obj: Object3D, ignoredBy: AvatarMarker | null = null) {
18
- if (!obj) return;
19
- for (const e of this.Pois) {
20
- if (e.obj === obj) return;
21
- }
22
- this.Pois.push({ obj: obj, avatar: ignoredBy });
23
- this.LastChangeTime = context.time.time;
24
- // console.log("Added", obj?.name);
25
- }
26
-
27
- public static Remove(context: Context | null, obj: Object3D | null) {
28
-
29
- if (!obj) return;
30
- for (const e of this.Pois) {
31
- if (e.obj === obj) {
32
- this.Pois.splice(this.Pois.indexOf(e), 1);
33
- this.LastChangeTime = context?.time.time ?? Context.Current?.time.time;
34
- // console.log("Removed", obj?.name);
35
- return;
36
- }
37
- }
38
- }
39
- }
40
-
41
- enum NetworkEvents {
42
- TargetChanged = "avatar-look-target-changed"
43
- }
44
-
45
- class TargetModel implements IModel {
46
- public guid!: string;
47
- public position: Vector3 = new Vector3();
48
- }
49
-
50
- /** @internal */
51
- export class Avatar_Brain_LookAt extends Behaviour {
52
-
53
- public set controlledTarget(target: Object3D) {
54
- this.target = target;
55
- // HACK
56
- const r = TypeStore.get("MoveRandom");
57
- if (r && this.target) {
58
- const rm = GameObject.getComponent(this.target, r) as Behaviour;
59
- if (rm) {
60
- rm.destroy();
61
- }
62
- }
63
-
64
- // this.target.add(new AxesHelper(.1));
65
- }
66
-
67
- // that target to copy positions into
68
- private target: Object3D | null = null;
69
-
70
- private avatar: AvatarMarker | null = null;
71
- private _model: OwnershipModel | null = null;
72
- private _targetModel: TargetModel = new TargetModel();
73
- private _currentTargetObject: Object3D | null = null;
74
- private _lastUpdateTime: number = 0;
75
- private _lookDuration: number = 0;
76
- private _lastPoiChangedTime: number = 0;
77
-
78
- awake(): void {
79
- this.avatar = GameObject.getComponentInParent(this.gameObject, AvatarMarker);
80
-
81
- if (this.avatar) {
82
- const marker = GameObject.getComponentInParent(this.gameObject, AvatarMarker);
83
- this._model = new OwnershipModel(this.context.connection, this.guid);
84
- if (marker?.isLocalAvatar) {
85
- this._model.requestOwnership();
86
- }
87
- }
88
-
89
- this.context.connection.beginListen(NetworkEvents.TargetChanged, (cb: TargetModel) => {
90
- if (this.target && cb && cb.guid === this.avatar?.guid) {
91
- utils.setWorldPosition(this.target, cb.position);
92
- }
93
- });
94
-
95
- // console.log(this);
96
- }
97
-
98
- update(): void {
99
- const connected = this.context.connection.isConnected;
100
- if (!connected || this._model?.hasOwnership) {
101
-
102
- if (Avatar_POI.LastChangeTime !== this._lastPoiChangedTime) {
103
- this._lastPoiChangedTime = Avatar_POI.LastChangeTime;
104
- this._lookDuration = 0;
105
- }
106
-
107
- this.selectTarget();
108
-
109
- // send target info
110
- if (this._currentTargetObject && this.context.time.frameCount % 10 === 0 && this.target) {
111
- const wp = utils.getWorldPosition(this._currentTargetObject);
112
- utils.setWorldPosition(this.target, wp);
113
-
114
- if (this.context.connection.isConnected && this.avatar) {
115
- this.context.connection.send(NetworkEvents.TargetChanged, this._targetModel);
116
- this._targetModel.guid = this.avatar.guid;
117
- this._targetModel.position.copy(wp);
118
- }
119
- }
120
- }
121
- }
122
-
123
- private selectTarget() {
124
- // select random target
125
- const td = this.context.time.time - this._lastUpdateTime;
126
- if (td > this._lookDuration) {
127
- this._lastUpdateTime = this.context.time.time;
128
- this._lookDuration = Math.random() * .5 + .2;
129
- const pois = Avatar_POI.Pois;
130
- if (pois.length > 0) {
131
- const poi = pois[Math.floor(Math.random() * pois.length)];
132
- if (poi && poi.obj) {
133
- if (poi.avatar && poi.avatar === this.avatar) return;
134
- this._currentTargetObject = poi.obj;
135
- // console.log(this._currentTargetObject);
136
- }
137
- }
138
- }
139
- }
140
- }
@@ -1,84 +0,0 @@
1
- import { Object3D } from "three";
2
-
3
- import { serializable } from "../../engine/engine_serialization_decorator.js";
4
- import * as utils from "../../engine/engine_utils.js";
5
- import { Behaviour, GameObject } from "../Component.js";
6
- import { Voip } from "../Voip.js";
7
- import { AvatarMarker } from "../webxr/WebXRAvatar.js";
8
-
9
- const debug = utils.getParam("debugmouth");
10
-
11
- /** @internal */
12
- export class Avatar_MouthShapes extends Behaviour {
13
- @serializable(Object3D)
14
- public idle: Object3D[] = [];
15
- @serializable(Object3D)
16
- public talking: Object3D[] = [];
17
-
18
- private marker: AvatarMarker | null = null;
19
- private voip: Voip | null = null;
20
- private lastMouthChangeTime = 0;
21
- private mouthChangeLength = 0;
22
-
23
- awake(): void {
24
- setTimeout(()=>{
25
- this.voip = GameObject.findObjectOfType(Voip, this.context);
26
- if (!this.marker) this.marker = GameObject.getComponentInParent(this.gameObject, AvatarMarker);
27
- }, 3000)
28
- }
29
-
30
- update(): void {
31
- if (!this.voip) return;
32
- if (this.context.time.frameCount % 10 !== 0) return;
33
- let id = this.marker?.connectionId ?? null;
34
- if (!id) {
35
- if (debug) id = null;
36
- return;
37
- }
38
- const freq = this.voip.getFrequency(id) ?? 0;
39
- this.updateLips(freq);
40
- }
41
-
42
- private updateLips(frequency: number) {
43
- if (this.context.time.time - this.lastMouthChangeTime > this.mouthChangeLength) {
44
- this.mouthChangeLength = .05 + Math.random() * .1;
45
- if (this.talking && this.talking.length > 0 && frequency > 30) {
46
- this.lastMouthChangeTime = this.context.time.time;
47
- const index = Math.floor(Math.random() * this.talking.length);
48
- this.setMouthShapeActive(this.talking, index);
49
- }
50
- else if (this.idle.length > 0 && this.context.time.time - this.lastMouthChangeTime > .5) {
51
- this.lastMouthChangeTime = this.context.time.time;
52
- const index = Math.floor(Math.random() * this.idle.length);
53
- this.setMouthShapeActive(this.idle, index);
54
- }
55
- }
56
- }
57
-
58
- private setMouthShapeActive(arr: Object3D[], index: number) {
59
- if (!arr) return;
60
-
61
- // hide other
62
- if (arr != this.idle) this.idle.map(i => i.visible = false);
63
- else this.talking.map(i => i.visible = false);
64
-
65
- for (let i = 0; i < arr.length; i++) {
66
- const shape = arr[i];
67
- if (shape) {
68
- shape.visible = i === index;
69
- }
70
- }
71
- }
72
-
73
- // private tryFindMouthShapes() {
74
- // if (this.mouthShapes) return;
75
- // this.mouthShapes = [];
76
- // this.head?.traverse(o => {
77
- // if (o && o.type === "Mesh") {
78
- // if (o.name.lastIndexOf("mouth") > 0) {
79
- // this.mouthShapes.push(o as Mesh);
80
- // }
81
- // }
82
- // });
83
- // }
84
- }
@@ -1,32 +0,0 @@
1
- import { Vector3 } from "three";
2
-
3
- import { Behaviour, GameObject } from "../Component.js";
4
- import { Voip } from "../Voip.js";
5
- import { AvatarMarker } from "../webxr/WebXRAvatar.js";
6
-
7
- /** @internal */
8
- export class Avatar_MustacheShake extends Behaviour {
9
- private voip: Voip | null = null;
10
- private marker: AvatarMarker | null = null;
11
-
12
- private _startPosition : Vector3 | null = null;
13
-
14
- awake() {
15
- this.voip = GameObject.findObjectOfType(Voip, this.context);
16
- this.marker = GameObject.getComponentInParent(this.gameObject, AvatarMarker);
17
- // console.log(this);
18
- }
19
-
20
- update() {
21
- if (!this.voip || !this.marker) return;
22
- if(this.context.time.frameCount % 10 !== 0) return;
23
- const id = this.marker.connectionId;
24
- const freq = this.voip.getFrequency(id);
25
- if(freq == null) return;
26
- if(!this._startPosition) {
27
- this._startPosition = this.gameObject.position.clone();
28
- }
29
- const t = freq / 100;
30
- this.gameObject.position.y = this._startPosition.y + t * 0.07;
31
- }
32
- }
package/src/vite-env.d.ts DELETED
@@ -1,16 +0,0 @@
1
- // Vite global defines — see plugins/vite/defines.js
2
- // declare const entries here are picked up globally (ambient, no import/export).
3
- // Vite sets these as globals in dev and statically replaces them at build time.
4
- // Webpack DefinePlugin replaces them at build time too.
5
- // The globalThis fallbacks for vanilla JS are in engine_constants.ts.
6
-
7
- declare const NEEDLE_ENGINE_VERSION: string;
8
- declare const NEEDLE_ENGINE_GENERATOR: string;
9
- declare const NEEDLE_PROJECT_BUILD_TIME: string;
10
- declare const NEEDLE_PUBLIC_KEY: string;
11
-
12
- // #region treeshake flags
13
- // declare var (not const) so globalThis["NEEDLE_USE_*"] access is also type-safe
14
- declare var NEEDLE_USE_RAPIER: boolean;
15
- declare var NEEDLE_USE_POSTPROCESSING: boolean;
16
- // #endregion treeshake flags