@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.
- package/CHANGELOG.md +86 -0
- package/SKILL.md +4 -1
- package/components.needle.json +1 -1
- package/dist/{needle-engine.bundle-BFSj2Fz8.js → needle-engine.bundle-BNqUjnSQ.js} +19180 -18386
- package/dist/needle-engine.bundle-Bt8ULD7E.umd.cjs +1733 -0
- package/dist/needle-engine.bundle-DF6ovbwD.min.js +1733 -0
- package/dist/needle-engine.d.ts +1487 -356
- package/dist/needle-engine.js +544 -542
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/three.js +1 -0
- package/dist/three.min.js +21 -21
- package/dist/three.umd.cjs +16 -16
- package/lib/engine/api.d.ts +8 -1
- package/lib/engine/api.js +7 -1
- package/lib/engine/api.js.map +1 -1
- package/lib/engine/codegen/register_types.js +10 -18
- package/lib/engine/codegen/register_types.js.map +1 -1
- package/lib/engine/engine_audio.d.ts +68 -0
- package/lib/engine/engine_audio.js +172 -0
- package/lib/engine/engine_audio.js.map +1 -1
- package/lib/engine/engine_camera.fit.js +16 -4
- package/lib/engine/engine_camera.fit.js.map +1 -1
- package/lib/engine/engine_components.js +1 -1
- package/lib/engine/engine_components.js.map +1 -1
- package/lib/engine/engine_context.d.ts +21 -8
- package/lib/engine/engine_context.js +32 -16
- package/lib/engine/engine_context.js.map +1 -1
- package/lib/engine/engine_context_eventbus.d.ts +47 -0
- package/lib/engine/engine_context_eventbus.js +47 -0
- package/lib/engine/engine_context_eventbus.js.map +1 -0
- package/lib/engine/engine_disposable.d.ts +172 -0
- package/lib/engine/engine_disposable.js +136 -0
- package/lib/engine/engine_disposable.js.map +1 -0
- package/lib/engine/engine_gameobject.d.ts +1 -10
- package/lib/engine/engine_gameobject.js +22 -120
- package/lib/engine/engine_gameobject.js.map +1 -1
- package/lib/engine/engine_gltf_builtin_components.js +7 -69
- package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
- package/lib/engine/engine_init.js +7 -7
- package/lib/engine/engine_init.js.map +1 -1
- package/lib/engine/engine_input.d.ts +24 -5
- package/lib/engine/engine_input.js +3 -2
- package/lib/engine/engine_input.js.map +1 -1
- package/lib/engine/engine_instantiate_resolve.d.ts +42 -0
- package/lib/engine/engine_instantiate_resolve.js +372 -0
- package/lib/engine/engine_instantiate_resolve.js.map +1 -0
- package/lib/engine/engine_license.d.ts +7 -7
- package/lib/engine/engine_license.js +183 -57
- package/lib/engine/engine_license.js.map +1 -1
- package/lib/engine/engine_mainloop_utils.js +7 -4
- package/lib/engine/engine_mainloop_utils.js.map +1 -1
- package/lib/engine/engine_networking.d.ts +51 -37
- package/lib/engine/engine_networking.js +132 -82
- package/lib/engine/engine_networking.js.map +1 -1
- package/lib/engine/engine_networking.transport.websocket.d.ts +15 -0
- package/lib/engine/engine_networking.transport.websocket.js +38 -0
- package/lib/engine/engine_networking.transport.websocket.js.map +1 -0
- package/lib/engine/engine_networking_blob.js +4 -4
- package/lib/engine/engine_networking_blob.js.map +1 -1
- package/lib/engine/engine_networking_instantiate.js +2 -2
- package/lib/engine/engine_networking_instantiate.js.map +1 -1
- package/lib/engine/engine_networking_types.d.ts +39 -1
- package/lib/engine/engine_networking_types.js +7 -0
- package/lib/engine/engine_networking_types.js.map +1 -1
- package/lib/engine/engine_physics_rapier.d.ts +21 -3
- package/lib/engine/engine_physics_rapier.js +94 -25
- package/lib/engine/engine_physics_rapier.js.map +1 -1
- package/lib/engine/engine_scenedata.js +2 -2
- package/lib/engine/engine_scenedata.js.map +1 -1
- package/lib/engine/engine_serialization_builtin_serializer.js +28 -5
- package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
- package/lib/engine/engine_serialization_core.d.ts +1 -0
- package/lib/engine/engine_serialization_core.js +7 -0
- package/lib/engine/engine_serialization_core.js.map +1 -1
- package/lib/engine/engine_types.d.ts +29 -11
- package/lib/engine/engine_types.js +1 -1
- package/lib/engine/engine_types.js.map +1 -1
- package/lib/engine/engine_util_decorator.js +7 -2
- package/lib/engine/engine_util_decorator.js.map +1 -1
- package/lib/engine/engine_utils.d.ts +1 -1
- package/lib/engine/engine_utils.js +19 -5
- package/lib/engine/engine_utils.js.map +1 -1
- package/lib/engine/engine_utils_qrcode.js +2 -2
- package/lib/engine/engine_utils_qrcode.js.map +1 -1
- package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +1 -1
- package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js.map +1 -1
- package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +2 -2
- package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js.map +1 -1
- package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +1 -1
- package/lib/engine/webcomponents/needle menu/needle-menu.js +6 -6
- package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.d.ts +10 -4
- package/lib/engine/webcomponents/needle-engine.js +3 -3
- package/lib/engine/webcomponents/needle-engine.js.map +1 -1
- package/lib/engine/webcomponents/needle-engine.loading.js +2 -2
- package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
- package/lib/engine/xr/NeedleXRSession.d.ts +3 -2
- package/lib/engine/xr/NeedleXRSession.js +50 -14
- package/lib/engine/xr/NeedleXRSession.js.map +1 -1
- package/lib/engine/xr/TempXRContext.js +2 -2
- package/lib/engine/xr/TempXRContext.js.map +1 -1
- package/lib/engine/xr/events.d.ts +1 -1
- package/lib/engine/xr/events.js.map +1 -1
- package/lib/engine-components/Animation.js +17 -16
- package/lib/engine-components/Animation.js.map +1 -1
- package/lib/engine-components/AnimationBuilder.d.ts +158 -0
- package/lib/engine-components/AnimationBuilder.js +305 -0
- package/lib/engine-components/AnimationBuilder.js.map +1 -0
- package/lib/engine-components/Animator.d.ts +6 -0
- package/lib/engine-components/Animator.js +23 -13
- package/lib/engine-components/Animator.js.map +1 -1
- package/lib/engine-components/AnimatorController.builder.d.ts +191 -0
- package/lib/engine-components/AnimatorController.builder.js +263 -0
- package/lib/engine-components/AnimatorController.builder.js.map +1 -0
- package/lib/engine-components/AnimatorController.d.ts +2 -119
- package/lib/engine-components/AnimatorController.js +33 -232
- package/lib/engine-components/AnimatorController.js.map +1 -1
- package/lib/engine-components/AudioSource.d.ts +19 -3
- package/lib/engine-components/AudioSource.js +121 -68
- package/lib/engine-components/AudioSource.js.map +1 -1
- package/lib/engine-components/Collider.d.ts +18 -9
- package/lib/engine-components/Collider.js +61 -14
- package/lib/engine-components/Collider.js.map +1 -1
- package/lib/engine-components/Component.d.ts +72 -9
- package/lib/engine-components/Component.js +114 -10
- package/lib/engine-components/Component.js.map +1 -1
- package/lib/engine-components/ContactShadows.d.ts +1 -0
- package/lib/engine-components/ContactShadows.js +14 -1
- package/lib/engine-components/ContactShadows.js.map +1 -1
- package/lib/engine-components/DragControls.d.ts +7 -0
- package/lib/engine-components/DragControls.js +19 -7
- package/lib/engine-components/DragControls.js.map +1 -1
- package/lib/engine-components/DropListener.js +3 -0
- package/lib/engine-components/DropListener.js.map +1 -1
- package/lib/engine-components/EventList.d.ts +31 -9
- package/lib/engine-components/EventList.js +37 -76
- package/lib/engine-components/EventList.js.map +1 -1
- package/lib/engine-components/Joints.d.ts +4 -2
- package/lib/engine-components/Joints.js +19 -3
- package/lib/engine-components/Joints.js.map +1 -1
- package/lib/engine-components/Light.js +9 -1
- package/lib/engine-components/Light.js.map +1 -1
- package/lib/engine-components/Networking.d.ts +1 -1
- package/lib/engine-components/Networking.js +1 -1
- package/lib/engine-components/OrbitControls.d.ts +0 -2
- package/lib/engine-components/OrbitControls.js +30 -12
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/RigidBody.d.ts +12 -4
- package/lib/engine-components/RigidBody.js +18 -4
- package/lib/engine-components/RigidBody.js.map +1 -1
- package/lib/engine-components/SceneSwitcher.js +3 -0
- package/lib/engine-components/SceneSwitcher.js.map +1 -1
- package/lib/engine-components/SeeThrough.js +2 -2
- package/lib/engine-components/SeeThrough.js.map +1 -1
- package/lib/engine-components/api.d.ts +2 -1
- package/lib/engine-components/api.js +2 -1
- package/lib/engine-components/api.js.map +1 -1
- package/lib/engine-components/codegen/components.d.ts +7 -13
- package/lib/engine-components/codegen/components.js +7 -13
- package/lib/engine-components/codegen/components.js.map +1 -1
- package/lib/engine-components/export/usdz/USDZExporter.js +4 -4
- package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
- package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.d.ts +1 -1
- package/lib/engine-components/timeline/PlayableDirector.d.ts +21 -11
- package/lib/engine-components/timeline/PlayableDirector.js +75 -67
- package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
- package/lib/engine-components/timeline/SignalAsset.d.ts +3 -1
- package/lib/engine-components/timeline/SignalAsset.js +1 -0
- package/lib/engine-components/timeline/SignalAsset.js.map +1 -1
- package/lib/engine-components/timeline/TimelineBuilder.d.ts +413 -0
- package/lib/engine-components/timeline/TimelineBuilder.js +506 -0
- package/lib/engine-components/timeline/TimelineBuilder.js.map +1 -0
- package/lib/engine-components/timeline/TimelineModels.d.ts +2 -1
- package/lib/engine-components/timeline/TimelineModels.js +3 -0
- package/lib/engine-components/timeline/TimelineModels.js.map +1 -1
- package/lib/engine-components/timeline/TimelineTracks.d.ts +37 -6
- package/lib/engine-components/timeline/TimelineTracks.js +92 -26
- package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
- package/lib/engine-components/timeline/index.d.ts +2 -1
- package/lib/engine-components/timeline/index.js +2 -0
- package/lib/engine-components/timeline/index.js.map +1 -1
- package/lib/engine-components/ui/Canvas.d.ts +1 -1
- package/lib/engine-components/ui/Canvas.js +2 -8
- package/lib/engine-components/ui/Canvas.js.map +1 -1
- package/lib/engine-components/ui/Text.d.ts +1 -0
- package/lib/engine-components/ui/Text.js +10 -7
- package/lib/engine-components/ui/Text.js.map +1 -1
- package/lib/engine-components/web/CursorFollow.d.ts +0 -1
- package/lib/engine-components/web/CursorFollow.js +21 -13
- package/lib/engine-components/web/CursorFollow.js.map +1 -1
- package/lib/engine-components/webxr/WebXRImageTracking.js +4 -0
- package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
- package/package.json +2 -83
- package/plugins/common/cloud.js +6 -1
- package/plugins/common/license.js +31 -10
- package/plugins/common/worker.js +9 -4
- package/plugins/vite/asap.js +17 -8
- package/plugins/vite/dependencies.js +29 -10
- package/plugins/vite/dependency-watcher.js +2 -2
- package/plugins/vite/editor-connection.js +3 -3
- package/plugins/vite/license.js +46 -7
- package/plugins/vite/local-files-core.js +3 -3
- package/plugins/vite/local-files-utils.d.ts +3 -1
- package/plugins/vite/local-files-utils.js +29 -5
- package/plugins/vite/reload.js +1 -1
- package/plugins/vite/server.js +2 -1
- package/src/engine/api.ts +11 -1
- package/src/engine/codegen/register_types.ts +10 -18
- package/src/engine/engine_audio.ts +184 -0
- package/src/engine/engine_camera.fit.ts +15 -4
- package/src/engine/engine_components.ts +1 -1
- package/src/engine/engine_context.ts +34 -18
- package/src/engine/engine_context_eventbus.ts +73 -0
- package/src/engine/engine_disposable.ts +214 -0
- package/src/engine/engine_gameobject.ts +54 -159
- package/src/engine/engine_gltf_builtin_components.ts +7 -76
- package/src/engine/engine_init.ts +7 -7
- package/src/engine/engine_input.ts +28 -7
- package/src/engine/engine_instantiate_resolve.ts +407 -0
- package/src/engine/engine_license.ts +197 -55
- package/src/engine/engine_mainloop_utils.ts +7 -4
- package/src/engine/engine_networking.transport.websocket.ts +45 -0
- package/src/engine/engine_networking.ts +161 -137
- package/src/engine/engine_networking_blob.ts +4 -4
- package/src/engine/engine_networking_instantiate.ts +2 -2
- package/src/engine/engine_networking_types.ts +41 -1
- package/src/engine/engine_physics_rapier.ts +102 -33
- package/src/engine/engine_scenedata.ts +3 -3
- package/src/engine/engine_serialization_builtin_serializer.ts +32 -9
- package/src/engine/engine_serialization_core.ts +9 -0
- package/src/engine/engine_types.ts +46 -27
- package/src/engine/engine_util_decorator.ts +7 -2
- package/src/engine/engine_utils.ts +16 -5
- package/src/engine/engine_utils_qrcode.ts +2 -2
- package/src/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +1 -1
- package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +2 -2
- package/src/engine/webcomponents/needle menu/needle-menu.ts +6 -6
- package/src/engine/webcomponents/needle-engine.loading.ts +6 -6
- package/src/engine/webcomponents/needle-engine.ts +12 -6
- package/src/engine/xr/NeedleXRSession.ts +48 -13
- package/src/engine/xr/TempXRContext.ts +2 -2
- package/src/engine/xr/events.ts +1 -1
- package/src/engine-components/Animation.ts +19 -16
- package/src/engine-components/AnimationBuilder.ts +472 -0
- package/src/engine-components/Animator.ts +24 -12
- package/src/engine-components/AnimatorController.builder.ts +387 -0
- package/src/engine-components/AnimatorController.ts +20 -291
- package/src/engine-components/AudioSource.ts +130 -79
- package/src/engine-components/Collider.ts +66 -18
- package/src/engine-components/Component.ts +118 -20
- package/src/engine-components/ContactShadows.ts +15 -1
- package/src/engine-components/DragControls.ts +18 -11
- package/src/engine-components/DropListener.ts +3 -0
- package/src/engine-components/EventList.ts +45 -83
- package/src/engine-components/Joints.ts +20 -4
- package/src/engine-components/Light.ts +10 -2
- package/src/engine-components/Networking.ts +1 -1
- package/src/engine-components/OrbitControls.ts +34 -14
- package/src/engine-components/RigidBody.ts +18 -4
- package/src/engine-components/SceneSwitcher.ts +3 -0
- package/src/engine-components/SeeThrough.ts +2 -2
- package/src/engine-components/api.ts +2 -1
- package/src/engine-components/codegen/components.ts +7 -13
- package/src/engine-components/export/usdz/USDZExporter.ts +4 -4
- package/src/engine-components/timeline/PlayableDirector.ts +83 -81
- package/src/engine-components/timeline/SignalAsset.ts +4 -1
- package/src/engine-components/timeline/TimelineBuilder.ts +824 -0
- package/src/engine-components/timeline/TimelineModels.ts +5 -1
- package/src/engine-components/timeline/TimelineTracks.ts +96 -27
- package/src/engine-components/timeline/index.ts +2 -1
- package/src/engine-components/ui/Canvas.ts +2 -8
- package/src/engine-components/ui/Text.ts +12 -8
- package/src/engine-components/web/CursorFollow.ts +21 -14
- package/src/engine-components/webxr/WebXRImageTracking.ts +2 -0
- package/dist/needle-engine.bundle-CmxIO5uH.min.js +0 -1732
- package/dist/needle-engine.bundle-tJIZukCz.umd.cjs +0 -1732
- package/lib/engine-components/AvatarLoader.d.ts +0 -80
- package/lib/engine-components/AvatarLoader.js +0 -232
- package/lib/engine-components/AvatarLoader.js.map +0 -1
- package/lib/engine-components/avatar/AvatarBlink_Simple.d.ts +0 -11
- package/lib/engine-components/avatar/AvatarBlink_Simple.js +0 -77
- package/lib/engine-components/avatar/AvatarBlink_Simple.js.map +0 -1
- package/lib/engine-components/avatar/AvatarEyeLook_Rotation.d.ts +0 -14
- package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js +0 -69
- package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js.map +0 -1
- package/lib/engine-components/avatar/Avatar_Brain_LookAt.d.ts +0 -29
- package/lib/engine-components/avatar/Avatar_Brain_LookAt.js +0 -122
- package/lib/engine-components/avatar/Avatar_Brain_LookAt.js.map +0 -1
- package/lib/engine-components/avatar/Avatar_MouthShapes.d.ts +0 -15
- package/lib/engine-components/avatar/Avatar_MouthShapes.js +0 -80
- package/lib/engine-components/avatar/Avatar_MouthShapes.js.map +0 -1
- package/lib/engine-components/avatar/Avatar_MustacheShake.d.ts +0 -9
- package/lib/engine-components/avatar/Avatar_MustacheShake.js +0 -30
- package/lib/engine-components/avatar/Avatar_MustacheShake.js.map +0 -1
- package/plugins/dts-generator/dts.codegen.js +0 -334
- package/plugins/dts-generator/dts.scan.js +0 -99
- package/plugins/dts-generator/dts.writer.js +0 -59
- package/plugins/dts-generator/glb.discovery.js +0 -279
- package/plugins/dts-generator/glb.extractor.js +0 -215
- package/plugins/dts-generator/glb.reader.js +0 -167
- package/plugins/dts-generator/index.js +0 -36
- package/plugins/dts-generator/manifest.types.js +0 -174
- package/plugins/gltf-packer.mjs +0 -1
- package/src/engine-components/AvatarLoader.ts +0 -264
- package/src/engine-components/avatar/AvatarBlink_Simple.ts +0 -70
- package/src/engine-components/avatar/AvatarEyeLook_Rotation.ts +0 -64
- package/src/engine-components/avatar/Avatar_Brain_LookAt.ts +0 -140
- package/src/engine-components/avatar/Avatar_MouthShapes.ts +0 -84
- package/src/engine-components/avatar/Avatar_MustacheShake.ts +0 -32
- 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
|