@needle-tools/engine 2.35.5-pre → 2.37.0-pre
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 +31 -0
- package/dist/needle-engine.d.ts +312 -232
- package/dist/needle-engine.js +456 -437
- package/dist/needle-engine.js.map +4 -4
- package/dist/needle-engine.min.js +81 -76
- package/dist/needle-engine.min.js.map +4 -4
- package/lib/engine/api.d.ts +1 -0
- package/lib/engine/api.js +1 -0
- package/lib/engine/api.js.map +1 -1
- package/lib/engine/debug/debug.d.ts +1 -0
- package/lib/engine/debug/debug.js +3 -0
- package/lib/engine/debug/debug.js.map +1 -1
- package/lib/engine/debug/debug_overlay.js +12 -1
- package/lib/engine/debug/debug_overlay.js.map +1 -1
- package/lib/engine/engine_element_loading.js +1 -1
- package/lib/engine/engine_element_loading.js.map +1 -1
- package/lib/engine/engine_gameobject.d.ts +1 -0
- package/lib/engine/engine_gameobject.js +15 -2
- package/lib/engine/engine_gameobject.js.map +1 -1
- package/lib/engine/engine_gltf_builtin_components.js +4 -0
- package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
- package/lib/engine/engine_mainloop_utils.d.ts +1 -1
- package/lib/engine/engine_mainloop_utils.js +7 -3
- package/lib/engine/engine_mainloop_utils.js.map +1 -1
- package/lib/engine/engine_physics.d.ts +49 -57
- package/lib/engine/engine_physics.js +464 -417
- package/lib/engine/engine_physics.js.map +1 -1
- package/lib/engine/engine_physics.types.d.ts +16 -0
- package/lib/engine/engine_physics.types.js +19 -0
- package/lib/engine/engine_physics.types.js.map +1 -0
- package/lib/engine/engine_serialization_core.d.ts +3 -0
- package/lib/engine/engine_serialization_core.js +19 -6
- package/lib/engine/engine_serialization_core.js.map +1 -1
- package/lib/engine/engine_setup.js +4 -2
- package/lib/engine/engine_setup.js.map +1 -1
- package/lib/engine/engine_time.d.ts +1 -0
- package/lib/engine/engine_time.js +1 -0
- package/lib/engine/engine_time.js.map +1 -1
- package/lib/engine/engine_types.d.ts +46 -26
- package/lib/engine/engine_types.js +24 -37
- package/lib/engine/engine_types.js.map +1 -1
- package/lib/engine/engine_typestore.d.ts +1 -0
- package/lib/engine/engine_typestore.js +1 -0
- package/lib/engine/engine_typestore.js.map +1 -1
- package/lib/engine/engine_util_decorator.d.ts +6 -0
- package/lib/engine/engine_util_decorator.js +54 -0
- package/lib/engine/engine_util_decorator.js.map +1 -0
- package/lib/engine/engine_utils.d.ts +1 -1
- package/lib/engine/engine_utils.js +2 -2
- package/lib/engine/engine_utils.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_animator_controller_model.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_gameobject_data.js +2 -0
- package/lib/engine/extensions/NEEDLE_gameobject_data.js.map +1 -1
- package/lib/engine/extensions/NEEDLE_techniques_webgl.js +5 -0
- package/lib/engine/extensions/NEEDLE_techniques_webgl.js.map +1 -1
- package/lib/engine-components/Animation.d.ts +5 -0
- package/lib/engine-components/Animation.js +14 -0
- package/lib/engine-components/Animation.js.map +1 -1
- package/lib/engine-components/AnimatorController.d.ts +1 -0
- package/lib/engine-components/AnimatorController.js +14 -7
- package/lib/engine-components/AnimatorController.js.map +1 -1
- package/lib/engine-components/BoxHelperComponent.d.ts +2 -2
- package/lib/engine-components/BoxHelperComponent.js +28 -9
- package/lib/engine-components/BoxHelperComponent.js.map +1 -1
- package/lib/engine-components/Collider.d.ts +7 -2
- package/lib/engine-components/Collider.js +27 -15
- package/lib/engine-components/Collider.js.map +1 -1
- package/lib/engine-components/Component.d.ts +8 -16
- package/lib/engine-components/Component.js +18 -117
- package/lib/engine-components/Component.js.map +1 -1
- package/lib/engine-components/DragControls.js +9 -6
- package/lib/engine-components/DragControls.js.map +1 -1
- package/lib/engine-components/GroundProjection.d.ts +2 -0
- package/lib/engine-components/GroundProjection.js +18 -6
- package/lib/engine-components/GroundProjection.js.map +1 -1
- package/lib/engine-components/NavMesh.d.ts +0 -5
- package/lib/engine-components/NavMesh.js +100 -10
- package/lib/engine-components/NavMesh.js.map +1 -1
- package/lib/engine-components/NestedGltf.js +2 -0
- package/lib/engine-components/NestedGltf.js.map +1 -1
- package/lib/engine-components/ReflectionProbe.d.ts +22 -0
- package/lib/engine-components/ReflectionProbe.js +134 -0
- package/lib/engine-components/ReflectionProbe.js.map +1 -0
- package/lib/engine-components/Renderer.d.ts +13 -2
- package/lib/engine-components/Renderer.js +96 -45
- package/lib/engine-components/Renderer.js.map +1 -1
- package/lib/engine-components/RigidBody.d.ts +40 -25
- package/lib/engine-components/RigidBody.js +253 -142
- package/lib/engine-components/RigidBody.js.map +1 -1
- package/lib/engine-components/SpatialTrigger.js +1 -1
- package/lib/engine-components/SpatialTrigger.js.map +1 -1
- package/lib/engine-components/SpectatorCamera.d.ts +1 -0
- package/lib/engine-components/SpectatorCamera.js +9 -2
- package/lib/engine-components/SpectatorCamera.js.map +1 -1
- package/lib/engine-components/SpringJoint.d.ts +0 -13
- package/lib/engine-components/SpringJoint.js +42 -41
- package/lib/engine-components/SpringJoint.js.map +1 -1
- package/lib/engine-components/VideoPlayer.js.map +1 -1
- package/lib/engine-components/WebARSessionRoot.d.ts +7 -7
- package/lib/engine-components/WebARSessionRoot.js +7 -7
- package/lib/engine-components/WebARSessionRoot.js.map +1 -1
- package/lib/engine-components/WebXR.d.ts +10 -8
- package/lib/engine-components/WebXR.js +50 -26
- package/lib/engine-components/WebXR.js.map +1 -1
- package/lib/engine-components/WebXRAvatar.d.ts +4 -5
- package/lib/engine-components/WebXRAvatar.js +9 -8
- package/lib/engine-components/WebXRAvatar.js.map +1 -1
- package/lib/engine-components/WebXRController.d.ts +21 -21
- package/lib/engine-components/WebXRController.js +90 -68
- package/lib/engine-components/WebXRController.js.map +1 -1
- package/lib/engine-components/WebXRGrabRendering.d.ts +3 -3
- package/lib/engine-components/WebXRGrabRendering.js +2 -2
- package/lib/engine-components/WebXRGrabRendering.js.map +1 -1
- package/lib/engine-components/WebXRSync.d.ts +8 -8
- package/lib/engine-components/WebXRSync.js +15 -15
- package/lib/engine-components/WebXRSync.js.map +1 -1
- package/lib/engine-components/codegen/components.d.ts +2 -3
- package/lib/engine-components/codegen/components.js +2 -3
- package/lib/engine-components/codegen/components.js.map +1 -1
- package/lib/engine-components/ui/EventSystem.d.ts +1 -0
- package/lib/engine-components/ui/EventSystem.js +21 -1
- package/lib/engine-components/ui/EventSystem.js.map +1 -1
- package/package.json +3 -4
- package/src/engine/api.ts +2 -1
- package/src/engine/codegen/register_types.js +291 -6
- package/src/engine/debug/debug.ts +4 -0
- package/src/engine/debug/debug_overlay.ts +9 -2
- package/src/engine/engine_element_loading.ts +1 -1
- package/src/engine/engine_gameobject.ts +19 -6
- package/src/engine/engine_gltf_builtin_components.ts +5 -1
- package/src/engine/engine_mainloop_utils.ts +7 -3
- package/src/engine/engine_physics.ts +508 -469
- package/src/engine/engine_physics.types.ts +19 -0
- package/src/engine/engine_serialization_core.ts +22 -8
- package/src/engine/engine_setup.ts +6 -2
- package/src/engine/engine_time.ts +2 -0
- package/src/engine/engine_types.ts +82 -55
- package/src/engine/engine_typestore.ts +2 -0
- package/src/engine/engine_util_decorator.ts +69 -0
- package/src/engine/engine_utils.ts +6 -5
- package/src/engine/extensions/EXT_texture_exr.js +1 -1
- package/src/engine/extensions/NEEDLE_animator_controller_model.ts +2 -1
- package/src/engine/extensions/NEEDLE_gameobject_data.ts +2 -0
- package/src/engine/extensions/NEEDLE_techniques_webgl.ts +7 -0
- package/src/engine-components/Animation.ts +14 -1
- package/src/engine-components/AnimatorController.ts +19 -9
- package/src/engine-components/BoxHelperComponent.ts +30 -9
- package/src/engine-components/Collider.ts +29 -29
- package/src/engine-components/Component.ts +26 -135
- package/src/engine-components/DragControls.ts +9 -5
- package/src/engine-components/GroundProjection.ts +22 -7
- package/src/engine-components/NavMesh.ts +114 -115
- package/src/engine-components/NestedGltf.ts +2 -0
- package/src/engine-components/ReflectionProbe.ts +141 -0
- package/src/engine-components/Renderer.ts +796 -737
- package/src/engine-components/RigidBody.ts +258 -149
- package/src/engine-components/SpatialTrigger.ts +1 -1
- package/src/engine-components/SpectatorCamera.ts +10 -2
- package/src/engine-components/SpringJoint.ts +41 -41
- package/src/engine-components/VideoPlayer.ts +1 -2
- package/src/engine-components/WebARSessionRoot.ts +16 -16
- package/src/engine-components/WebXR.ts +65 -50
- package/src/engine-components/WebXRAvatar.ts +16 -16
- package/src/engine-components/WebXRController.ts +143 -112
- package/src/engine-components/WebXRGrabRendering.ts +6 -6
- package/src/engine-components/WebXRSync.ts +20 -20
- package/src/engine-components/codegen/components.ts +2 -3
- package/src/engine-components/ui/EventSystem.ts +26 -3
|
@@ -5,213 +5,324 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { Behaviour } from "./Component";
|
|
8
|
-
import { BodyOptions } from '../engine/engine_physics';
|
|
9
|
-
import * as CANNON from 'cannon-es';
|
|
10
8
|
import * as THREE from 'three';
|
|
11
9
|
import { getWorldPosition } from "../engine/engine_three_utils";
|
|
12
10
|
import { serializeable } from "../engine/engine_serialization_decorator";
|
|
13
11
|
import { Watch } from "../engine/engine_utils";
|
|
14
12
|
import { Vector3 } from "three";
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
import { CollisionDetectionMode, RigidbodyConstraints } from "../engine/engine_physics.types";
|
|
14
|
+
import { validate } from "../engine/engine_util_decorator";
|
|
15
|
+
class TransformWatch {
|
|
16
|
+
get isDirty() {
|
|
17
|
+
return this.positionChanged || this.rotationChanged;
|
|
18
|
+
}
|
|
19
|
+
positionChanged = false;
|
|
20
|
+
rotationChanged = false;
|
|
21
|
+
position;
|
|
22
|
+
quaternion;
|
|
23
|
+
reset() {
|
|
24
|
+
this.positionChanged = false;
|
|
25
|
+
this.rotationChanged = false;
|
|
26
|
+
this.mute = false;
|
|
27
|
+
}
|
|
28
|
+
mute = false;
|
|
29
|
+
applyValues() {
|
|
30
|
+
if (this.positionChanged) {
|
|
31
|
+
this.obj.position.copy(this.position);
|
|
32
|
+
}
|
|
33
|
+
if (this.rotationChanged) {
|
|
34
|
+
this.obj.quaternion.copy(this.quaternion);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
context;
|
|
38
|
+
obj;
|
|
39
|
+
_positionWatch;
|
|
40
|
+
_rotationWatch;
|
|
41
|
+
constructor(obj, context) {
|
|
42
|
+
this.context = context;
|
|
43
|
+
this.obj = obj;
|
|
44
|
+
}
|
|
45
|
+
start(position, rotation) {
|
|
46
|
+
this.reset();
|
|
47
|
+
if (position) {
|
|
48
|
+
if (!this._positionWatch)
|
|
49
|
+
this._positionWatch = new Watch(this.obj.position, ["x", "y", "z"]);
|
|
50
|
+
this._positionWatch.apply();
|
|
51
|
+
this.position = this.obj.position.clone();
|
|
52
|
+
this._positionWatch.subscribeWrite((val, prop) => {
|
|
53
|
+
if (this.context.physics.isUpdating || this.mute)
|
|
54
|
+
return;
|
|
55
|
+
// if (this.position![prop] !== val) {
|
|
56
|
+
this.position[prop] = val;
|
|
57
|
+
this.positionChanged = true;
|
|
58
|
+
// }
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
if (rotation) {
|
|
62
|
+
if (!this._rotationWatch)
|
|
63
|
+
this._rotationWatch = new Watch(this.obj.quaternion, ["_x", "_y", "_z", "_w"]);
|
|
64
|
+
this._rotationWatch.apply();
|
|
65
|
+
this.quaternion = this.obj.quaternion.clone();
|
|
66
|
+
this._rotationWatch.subscribeWrite((val, prop) => {
|
|
67
|
+
if (this.context.physics.isUpdating || this.mute)
|
|
68
|
+
return;
|
|
69
|
+
// if (this.quaternion![prop] !== val) {
|
|
70
|
+
this.quaternion[prop] = val;
|
|
71
|
+
this.rotationChanged = true;
|
|
72
|
+
// }
|
|
73
|
+
});
|
|
21
74
|
}
|
|
22
75
|
}
|
|
23
|
-
|
|
24
|
-
|
|
76
|
+
stop() {
|
|
77
|
+
this._positionWatch?.revoke();
|
|
78
|
+
this._rotationWatch?.revoke();
|
|
25
79
|
}
|
|
26
|
-
|
|
80
|
+
}
|
|
81
|
+
export class Rigidbody extends Behaviour {
|
|
82
|
+
mass = 1;
|
|
83
|
+
useGravity = true;
|
|
84
|
+
constraints = RigidbodyConstraints.None;
|
|
85
|
+
isKinematic = false;
|
|
27
86
|
drag = 0;
|
|
28
87
|
angularDrag = 1;
|
|
29
88
|
detectCollisions = true;
|
|
30
89
|
sleepThreshold = 0.01;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
90
|
+
collisionDetectionMode = CollisionDetectionMode.Discrete;
|
|
91
|
+
get lockPositionX() {
|
|
92
|
+
return (this.constraints & RigidbodyConstraints.FreezePositionX) !== 0;
|
|
93
|
+
}
|
|
94
|
+
get lockPositionY() {
|
|
95
|
+
return (this.constraints & RigidbodyConstraints.FreezePositionY) !== 0;
|
|
96
|
+
}
|
|
97
|
+
get lockPositionZ() {
|
|
98
|
+
return (this.constraints & RigidbodyConstraints.FreezePositionZ) !== 0;
|
|
99
|
+
}
|
|
100
|
+
get lockRotationX() {
|
|
101
|
+
return (this.constraints & RigidbodyConstraints.FreezeRotationX) !== 0;
|
|
36
102
|
}
|
|
103
|
+
get lockRotationY() {
|
|
104
|
+
return (this.constraints & RigidbodyConstraints.FreezeRotationY) !== 0;
|
|
105
|
+
}
|
|
106
|
+
get lockRotationZ() {
|
|
107
|
+
return (this.constraints & RigidbodyConstraints.FreezeRotationZ) !== 0;
|
|
108
|
+
}
|
|
109
|
+
set lockPositionX(v) {
|
|
110
|
+
if (v)
|
|
111
|
+
this.constraints |= RigidbodyConstraints.FreezePositionX;
|
|
112
|
+
else
|
|
113
|
+
this.constraints &= ~RigidbodyConstraints.FreezePositionX;
|
|
114
|
+
}
|
|
115
|
+
set lockPositionY(v) {
|
|
116
|
+
if (v)
|
|
117
|
+
this.constraints |= RigidbodyConstraints.FreezePositionY;
|
|
118
|
+
else
|
|
119
|
+
this.constraints &= ~RigidbodyConstraints.FreezePositionY;
|
|
120
|
+
}
|
|
121
|
+
set lockPositionZ(v) {
|
|
122
|
+
if (v)
|
|
123
|
+
this.constraints |= RigidbodyConstraints.FreezePositionZ;
|
|
124
|
+
else
|
|
125
|
+
this.constraints &= ~RigidbodyConstraints.FreezePositionZ;
|
|
126
|
+
}
|
|
127
|
+
set lockRotationX(v) {
|
|
128
|
+
if (v)
|
|
129
|
+
this.constraints |= RigidbodyConstraints.FreezeRotationX;
|
|
130
|
+
else
|
|
131
|
+
this.constraints &= ~RigidbodyConstraints.FreezeRotationX;
|
|
132
|
+
}
|
|
133
|
+
set lockRotationY(v) {
|
|
134
|
+
if (v)
|
|
135
|
+
this.constraints |= RigidbodyConstraints.FreezeRotationY;
|
|
136
|
+
else
|
|
137
|
+
this.constraints &= ~RigidbodyConstraints.FreezeRotationY;
|
|
138
|
+
}
|
|
139
|
+
set lockRotationZ(v) {
|
|
140
|
+
if (v)
|
|
141
|
+
this.constraints |= RigidbodyConstraints.FreezeRotationZ;
|
|
142
|
+
else
|
|
143
|
+
this.constraints &= ~RigidbodyConstraints.FreezeRotationZ;
|
|
144
|
+
}
|
|
145
|
+
_propertiesChanged = false;
|
|
37
146
|
static tempPosition = new THREE.Vector3();
|
|
38
|
-
|
|
39
|
-
currentVelocity;
|
|
147
|
+
_currentVelocity;
|
|
40
148
|
_smoothedVelocity;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
_positionWatch;
|
|
45
|
-
_matrixWatch;
|
|
46
|
-
_setMatrix;
|
|
47
|
-
constructor() {
|
|
48
|
-
super();
|
|
49
|
-
this._setMatrix = new THREE.Matrix4();
|
|
50
|
-
}
|
|
149
|
+
_smoothedVelocityGetter;
|
|
150
|
+
_lastPosition;
|
|
151
|
+
_watch;
|
|
51
152
|
awake() {
|
|
52
|
-
this.
|
|
53
|
-
this.
|
|
153
|
+
this._watch = undefined;
|
|
154
|
+
this._currentVelocity = new THREE.Vector3();
|
|
54
155
|
this._smoothedVelocity = new THREE.Vector3();
|
|
55
|
-
this.
|
|
56
|
-
this.
|
|
57
|
-
this._positionWatch = undefined;
|
|
156
|
+
this._smoothedVelocityGetter = new THREE.Vector3();
|
|
157
|
+
this._lastPosition = new THREE.Vector3();
|
|
58
158
|
}
|
|
59
|
-
// start() {
|
|
60
|
-
// this.setBodyFromGameObject();
|
|
61
|
-
// }
|
|
62
159
|
onEnable() {
|
|
63
|
-
if (this.
|
|
64
|
-
this.
|
|
65
|
-
}
|
|
66
|
-
else
|
|
67
|
-
this.initialize();
|
|
68
|
-
if (this.body) {
|
|
69
|
-
this.body.wakeUp();
|
|
70
|
-
this.gameObject.updateWorldMatrix(true, false);
|
|
71
|
-
this.setBodyFromGameObject();
|
|
160
|
+
if (!this._watch) {
|
|
161
|
+
this._watch = new TransformWatch(this.gameObject, this.context);
|
|
72
162
|
}
|
|
73
|
-
|
|
74
|
-
this._positionWatch = new Watch(this.gameObject.position, ["x", "y", "z"]);
|
|
75
|
-
this._positionWatch.subscribeWrite(_ => {
|
|
76
|
-
if (!this.context.physics.isUpdating && !this._ignoreChange) {
|
|
77
|
-
this._dirty = true;
|
|
78
|
-
this._setMatrix.copy(this.gameObject.matrix);
|
|
79
|
-
this._setMatrix.setPosition(this.gameObject.position);
|
|
80
|
-
}
|
|
81
|
-
});
|
|
163
|
+
this._watch.start(true, true);
|
|
82
164
|
}
|
|
83
165
|
onDisable() {
|
|
84
|
-
|
|
85
|
-
|
|
166
|
+
this._watch?.stop();
|
|
167
|
+
this.context.physics.removeBody(this);
|
|
86
168
|
}
|
|
87
169
|
onDestroy() {
|
|
88
|
-
|
|
89
|
-
this.context.physics.removeBody(this.gameObject, this._body);
|
|
90
|
-
}
|
|
91
|
-
onBeforeRender() {
|
|
92
|
-
this._ignoreChange = true;
|
|
93
|
-
this.updateVelocity();
|
|
94
|
-
if (this._dirty) {
|
|
95
|
-
this._dirty = false;
|
|
96
|
-
this._setMatrix.decompose(this.gameObject.position, this.gameObject.quaternion, this.gameObject.scale);
|
|
97
|
-
this.setBodyFromGameObject();
|
|
98
|
-
}
|
|
99
|
-
this._ignoreChange = false;
|
|
170
|
+
this.context.physics.removeBody(this);
|
|
100
171
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
172
|
+
onValidate() {
|
|
173
|
+
this._propertiesChanged = true;
|
|
174
|
+
}
|
|
175
|
+
earlyUpdate() {
|
|
176
|
+
if (this._propertiesChanged) {
|
|
177
|
+
this._propertiesChanged = false;
|
|
178
|
+
this.context.physics.updateProperties(this);
|
|
104
179
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
180
|
+
if (this._watch?.isDirty) {
|
|
181
|
+
this._watch.mute = true;
|
|
182
|
+
this._watch.applyValues();
|
|
183
|
+
this.context.physics.updateBody(this, this._watch.positionChanged, this._watch.rotationChanged);
|
|
184
|
+
this._watch.reset();
|
|
185
|
+
}
|
|
186
|
+
this.captureVelocity();
|
|
187
|
+
}
|
|
188
|
+
get body() {
|
|
189
|
+
return this.context.physics.internal_getRigidbody(this);
|
|
190
|
+
}
|
|
191
|
+
// TODO: we need to differentiate between setting a physics body to a new position and moving it where we also want to affect the velocity
|
|
192
|
+
// public teleport(){
|
|
193
|
+
// this.context.physics.updateBody(this);
|
|
194
|
+
// }
|
|
195
|
+
resetForces() {
|
|
196
|
+
this.body?.resetForces(true);
|
|
197
|
+
}
|
|
198
|
+
resetTorques() {
|
|
199
|
+
this.body?.resetTorques(true);
|
|
200
|
+
}
|
|
201
|
+
resetVelocities() {
|
|
202
|
+
this.setVelocity(0, 0, 0);
|
|
203
|
+
this.setAngularVelocity(0, 0, 0);
|
|
204
|
+
}
|
|
205
|
+
resetForcesAndTorques() {
|
|
206
|
+
this.resetForces();
|
|
207
|
+
this.resetTorques();
|
|
113
208
|
}
|
|
114
209
|
wakeUp() {
|
|
115
210
|
this.body?.wakeUp();
|
|
116
211
|
}
|
|
117
|
-
applyForce(vec,
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
212
|
+
applyForce(vec, _rel) {
|
|
213
|
+
this.body?.addForce(vec, true);
|
|
214
|
+
}
|
|
215
|
+
applyImpulse(vec) {
|
|
216
|
+
this.body?.applyImpulse(vec, true);
|
|
121
217
|
}
|
|
122
218
|
setForce(x, y, z) {
|
|
123
|
-
this.body?.
|
|
219
|
+
this.body?.resetForces(true);
|
|
220
|
+
this.body?.addForce({ x, y, z }, true);
|
|
124
221
|
}
|
|
125
222
|
getVelocity() {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
223
|
+
const vel = this.body?.linvel();
|
|
224
|
+
if (!vel)
|
|
225
|
+
return this._currentVelocity.set(0, 0, 0);
|
|
226
|
+
this._currentVelocity.x = vel.x;
|
|
227
|
+
this._currentVelocity.y = vel.y;
|
|
228
|
+
this._currentVelocity.z = vel.z;
|
|
229
|
+
return this._currentVelocity;
|
|
129
230
|
}
|
|
130
231
|
setVelocity(x, y, z) {
|
|
131
|
-
if (!this.body)
|
|
132
|
-
return;
|
|
133
232
|
if (x instanceof Vector3) {
|
|
134
233
|
const vec = x;
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
z = vec.z;
|
|
234
|
+
this.body?.setLinvel(vec, true);
|
|
235
|
+
return;
|
|
138
236
|
}
|
|
139
|
-
|
|
140
|
-
this.body.velocity.y = y / this.context.time.deltaTime;
|
|
141
|
-
this.body.velocity.z = z / this.context.time.deltaTime;
|
|
142
|
-
}
|
|
143
|
-
getTorque() {
|
|
144
|
-
if (this.body)
|
|
145
|
-
return Rigidbody.tempPosition.set(this.body?.torque.x, this.body?.torque.y, this.body?.torque.z);
|
|
146
|
-
return Rigidbody.tempPosition.set(0, 0, 0);
|
|
147
|
-
}
|
|
148
|
-
setTorque(x, y, z) {
|
|
149
|
-
if (!this.body)
|
|
237
|
+
if (y === undefined || z === undefined)
|
|
150
238
|
return;
|
|
239
|
+
this.body?.setLinvel({ x: x, y: y, z: z }, true);
|
|
240
|
+
}
|
|
241
|
+
setAngularVelocity(x, y, z) {
|
|
151
242
|
if (x instanceof Vector3) {
|
|
152
243
|
const vec = x;
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
z = vec.z;
|
|
244
|
+
this.body?.setAngvel(vec, true);
|
|
245
|
+
return;
|
|
156
246
|
}
|
|
157
|
-
|
|
158
|
-
this.body.torque.y = y / this.context.time.deltaTime;
|
|
159
|
-
this.body.torque.z = z / this.context.time.deltaTime;
|
|
160
|
-
}
|
|
161
|
-
get smoothedVelocity() { return this._smoothedVelocity; }
|
|
162
|
-
setAngularVelocity(x, y, z) {
|
|
163
|
-
if (!this.body)
|
|
247
|
+
if (y === undefined || z === undefined)
|
|
164
248
|
return;
|
|
165
|
-
this.body
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
this.
|
|
249
|
+
this.body?.setAngvel({ x: x, y: y, z: z }, true);
|
|
250
|
+
}
|
|
251
|
+
setTorque(x, y, z) {
|
|
252
|
+
this.setAngularVelocity(x, y, z);
|
|
253
|
+
}
|
|
254
|
+
get smoothedVelocity() {
|
|
255
|
+
this._smoothedVelocityGetter.copy(this._smoothedVelocity);
|
|
256
|
+
return this._smoothedVelocityGetter.multiplyScalar(1 / this.context.time.deltaTime);
|
|
257
|
+
}
|
|
258
|
+
// public get smoothedVelocity() { return this._smoothedVelocity; }
|
|
259
|
+
/**d
|
|
260
|
+
* @deprecated not used anymore
|
|
261
|
+
*/
|
|
262
|
+
setBodyFromGameObject(_velocity = null) {
|
|
263
|
+
if (this.gameObject && !this.destroyed) {
|
|
264
|
+
// this.context.physics.updateBody(this);
|
|
265
|
+
// this._ignoreChange = true;
|
|
266
|
+
// const wp = this.worldPosition;
|
|
267
|
+
// this.body.position.set(wp.x, wp.y, wp.z);
|
|
268
|
+
// const wr = this.worldQuaternion;
|
|
269
|
+
// this.body.quaternion.set(wr.x, wr.y, wr.z, wr.w);
|
|
270
|
+
// if (velocity) {
|
|
271
|
+
// Rigidbody.copyVector3.set(velocity.x, velocity.y, velocity.z);
|
|
272
|
+
// this._smoothedVelocity.lerp(Rigidbody.copyVector3, this.context.time.deltaTime / .1);
|
|
273
|
+
// const sm = this._smoothedVelocity;
|
|
274
|
+
// this.body.velocity.x = sm.x;
|
|
275
|
+
// this.body.velocity.y = sm.y;
|
|
276
|
+
// this.body.velocity.z = sm.z;
|
|
277
|
+
// }
|
|
278
|
+
// this._ignoreChange = false;
|
|
186
279
|
}
|
|
187
280
|
}
|
|
188
|
-
|
|
189
|
-
if (
|
|
190
|
-
return;
|
|
191
|
-
if (this.body && this.gameObject) {
|
|
281
|
+
captureVelocity() {
|
|
282
|
+
if (this.body) {
|
|
192
283
|
const wp = getWorldPosition(this.gameObject);
|
|
193
|
-
|
|
194
|
-
this.
|
|
195
|
-
this.
|
|
284
|
+
Rigidbody.tempPosition.copy(wp);
|
|
285
|
+
const vel = wp.sub(this._lastPosition);
|
|
286
|
+
this._lastPosition.copy(Rigidbody.tempPosition);
|
|
287
|
+
this._smoothedVelocity.lerp(vel, this.context.time.deltaTime / .1);
|
|
288
|
+
// this._smoothedVelocity.set(0, 1 / this.context.time.deltaTime, 0);
|
|
196
289
|
}
|
|
197
290
|
}
|
|
198
291
|
}
|
|
199
292
|
__decorate([
|
|
293
|
+
validate(),
|
|
200
294
|
serializeable()
|
|
201
295
|
], Rigidbody.prototype, "mass", void 0);
|
|
202
296
|
__decorate([
|
|
297
|
+
validate(),
|
|
298
|
+
serializeable()
|
|
299
|
+
], Rigidbody.prototype, "useGravity", void 0);
|
|
300
|
+
__decorate([
|
|
301
|
+
validate(),
|
|
203
302
|
serializeable()
|
|
204
|
-
], Rigidbody.prototype, "
|
|
303
|
+
], Rigidbody.prototype, "constraints", void 0);
|
|
205
304
|
__decorate([
|
|
305
|
+
validate(),
|
|
306
|
+
serializeable()
|
|
307
|
+
], Rigidbody.prototype, "isKinematic", void 0);
|
|
308
|
+
__decorate([
|
|
309
|
+
validate(),
|
|
206
310
|
serializeable()
|
|
207
311
|
], Rigidbody.prototype, "drag", void 0);
|
|
208
312
|
__decorate([
|
|
313
|
+
validate(),
|
|
209
314
|
serializeable()
|
|
210
315
|
], Rigidbody.prototype, "angularDrag", void 0);
|
|
211
316
|
__decorate([
|
|
317
|
+
validate(),
|
|
212
318
|
serializeable()
|
|
213
319
|
], Rigidbody.prototype, "detectCollisions", void 0);
|
|
214
320
|
__decorate([
|
|
321
|
+
validate(),
|
|
215
322
|
serializeable()
|
|
216
323
|
], Rigidbody.prototype, "sleepThreshold", void 0);
|
|
324
|
+
__decorate([
|
|
325
|
+
validate(),
|
|
326
|
+
serializeable()
|
|
327
|
+
], Rigidbody.prototype, "collisionDetectionMode", void 0);
|
|
217
328
|
//# sourceMappingURL=RigidBody.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RigidBody.js","sourceRoot":"","sources":["../../../engine-components/RigidBody.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"RigidBody.js","sourceRoot":"","sources":["../../../engine-components/RigidBody.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,7 +95,7 @@ export class SpatialTrigger extends Behaviour {
|
|
|
95
95
|
SpatialTrigger.triggers.push(this);
|
|
96
96
|
if (!this.boxHelper) {
|
|
97
97
|
this.boxHelper = GameObject.addNewComponent(this.gameObject, BoxHelperComponent);
|
|
98
|
-
this.boxHelper?.showHelper();
|
|
98
|
+
this.boxHelper?.showHelper(null, debug);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
onDisable() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpatialTrigger.js","sourceRoot":"","sources":["../../../engine-components/SpatialTrigger.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SpatialTrigger.js","sourceRoot":"","sources":["../../../engine-components/SpatialTrigger.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export declare class SpectatorCamera extends Behaviour {
|
|
|
17
17
|
/** list of other users that are following me */
|
|
18
18
|
get followers(): string[];
|
|
19
19
|
stopSpectating(): void;
|
|
20
|
+
private get localId();
|
|
20
21
|
/** player view to follow */
|
|
21
22
|
set target(target: PlayerView | undefined);
|
|
22
23
|
get target(): PlayerView | undefined;
|
|
@@ -45,6 +45,9 @@ export class SpectatorCamera extends Behaviour {
|
|
|
45
45
|
}
|
|
46
46
|
this.target = undefined;
|
|
47
47
|
}
|
|
48
|
+
get localId() {
|
|
49
|
+
return this.context.connection.connectionId ?? "local";
|
|
50
|
+
}
|
|
48
51
|
/** player view to follow */
|
|
49
52
|
set target(target) {
|
|
50
53
|
if (this._handler) {
|
|
@@ -56,7 +59,7 @@ export class SpectatorCamera extends Behaviour {
|
|
|
56
59
|
// }
|
|
57
60
|
// }
|
|
58
61
|
const prev = this._handler.currentTarget?.userId;
|
|
59
|
-
const self = this.context.players.getPlayerView(this.
|
|
62
|
+
const self = this.context.players.getPlayerView(this.localId);
|
|
60
63
|
// if user is in XR and sets target to self disable it
|
|
61
64
|
if (target === undefined || (this.context.isInXR === false && self?.currentObject === target.currentObject)) {
|
|
62
65
|
if (this._handler.currentTarget !== undefined) {
|
|
@@ -83,7 +86,7 @@ export class SpectatorCamera extends Behaviour {
|
|
|
83
86
|
this._networking.onRequestFollowMe();
|
|
84
87
|
}
|
|
85
88
|
get isSpectatingSelf() {
|
|
86
|
-
return this.isSpectating && this.target?.currentObject === this.context.players.getPlayerView(this.
|
|
89
|
+
return this.isSpectating && this.target?.currentObject === this.context.players.getPlayerView(this.localId)?.currentObject;
|
|
87
90
|
}
|
|
88
91
|
// private currentViewport : THREE.Vector4 = new THREE.Vector4();
|
|
89
92
|
// private currentScissor : THREE.Vector4 = new THREE.Vector4();
|
|
@@ -155,6 +158,10 @@ export class SpectatorCamera extends Behaviour {
|
|
|
155
158
|
}
|
|
156
159
|
followSelf() {
|
|
157
160
|
this.target = this.context.players.getPlayerView(this.context.connection.connectionId);
|
|
161
|
+
if (!this.target) {
|
|
162
|
+
this.context.players.setPlayerView(this.localId, this.context.mainCamera, ViewDevice.Headset);
|
|
163
|
+
this.target = this.context.players.getPlayerView(this.localId);
|
|
164
|
+
}
|
|
158
165
|
if (debug)
|
|
159
166
|
console.log("Follow self", this.target);
|
|
160
167
|
}
|