@dcl/ecs 7.22.6-25007982108.commit-83012ab → 7.22.6-25375246959.commit-ec25d50
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/dist/components/extended/MeshCollider.d.ts +0 -8
- package/dist/components/extended/MeshCollider.js +0 -6
- package/dist/components/extended/MeshRenderer.d.ts +0 -8
- package/dist/components/extended/MeshRenderer.js +0 -5
- package/dist/components/extended/ParticleSystem.d.ts +24 -0
- package/dist/components/extended/ParticleSystem.js +23 -0
- package/dist/components/extended/Tween.d.ts +48 -1
- package/dist/components/extended/Tween.js +66 -0
- package/dist/components/generated/{TextureCamera.gen.js → AudioAnalysis.gen.js} +7 -7
- package/dist/components/generated/component-names.gen.js +1 -10
- package/dist/components/generated/global.gen.d.ts +2 -20
- package/dist/components/generated/global.gen.js +1 -10
- package/dist/components/generated/index.gen.d.ts +4 -40
- package/dist/components/generated/index.gen.js +5 -50
- package/dist/components/generated/pb/decentraland/common/texture.gen.d.ts +0 -20
- package/dist/components/generated/pb/decentraland/common/texture.gen.js +0 -65
- package/dist/components/generated/pb/decentraland/sdk/components/audio_analysis.gen.d.ts +37 -0
- package/dist/components/generated/pb/decentraland/sdk/components/audio_analysis.gen.js +161 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +0 -2
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +1 -10
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +0 -43
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +1 -151
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +0 -2
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +0 -10
- package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +1 -37
- package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +1 -119
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +2 -4
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +1 -3
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +0 -19
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +1 -46
- package/dist/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +0 -22
- package/dist/components/generated/pb/decentraland/sdk/components/material.gen.js +1 -57
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +0 -20
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +0 -56
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +3 -21
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +0 -56
- package/dist/components/generated/pb/decentraland/sdk/components/particle_system.gen.d.ts +14 -1
- package/dist/components/generated/pb/decentraland/sdk/components/particle_system.gen.js +42 -4
- package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +2 -8
- package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +0 -3
- package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.d.ts +0 -13
- package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.js +0 -30
- package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +0 -2
- package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +0 -10
- package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +0 -4
- package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +0 -20
- package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +0 -35
- package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +0 -90
- package/dist/components/generated/types.gen.d.ts +1 -0
- package/dist/components/generated/types.gen.js +1 -0
- package/dist/components/index.d.ts +9 -11
- package/dist/components/index.js +8 -11
- package/dist/components/manual/Transform.d.ts +13 -0
- package/dist/components/manual/Transform.js +8 -0
- package/dist/components/types.d.ts +2 -3
- package/dist/engine/entity.js +4 -2
- package/dist/engine/grow-only-value-set-component-definition.js +1 -1
- package/dist/engine/input.d.ts +0 -6
- package/dist/engine/input.js +4 -9
- package/dist/engine/lww-element-set-component-definition.d.ts +2 -2
- package/dist/engine/lww-element-set-component-definition.js +24 -7
- package/dist/index.d.ts +4 -2
- package/dist/index.js +4 -1
- package/dist/runtime/globals.d.ts +1 -2
- package/dist/runtime/globals.js +1 -2
- package/dist/runtime/helpers/index.d.ts +1 -0
- package/dist/runtime/helpers/index.js +1 -0
- package/dist/runtime/helpers/tree.d.ts +6 -0
- package/dist/runtime/helpers/tree.js +2 -2
- package/dist/runtime/helpers/vectors.js +36 -0
- package/dist/runtime/initialization/index.d.ts +7 -0
- package/dist/runtime/initialization/index.js +6 -0
- package/dist/systems/crdt/index.js +6 -6
- package/dist/systems/events.d.ts +25 -59
- package/dist/systems/events.js +129 -145
- package/dist/systems/physics-force.js +140 -0
- package/dist/systems/physics-impulse.d.ts +12 -0
- package/dist/systems/physics-impulse.js +85 -0
- package/dist/systems/physics.d.ts +77 -0
- package/dist/systems/physics.js +18 -0
- package/dist/systems/raycast.d.ts +1 -3
- package/dist/systems/raycast.js +0 -2
- package/dist-cjs/components/extended/MeshCollider.d.ts +0 -8
- package/dist-cjs/components/extended/MeshCollider.js +0 -6
- package/dist-cjs/components/extended/MeshRenderer.d.ts +0 -8
- package/dist-cjs/components/extended/MeshRenderer.js +0 -5
- package/dist-cjs/components/extended/ParticleSystem.d.ts +24 -0
- package/dist-cjs/components/extended/ParticleSystem.js +28 -0
- package/dist-cjs/components/extended/Tween.d.ts +48 -1
- package/dist-cjs/components/extended/Tween.js +66 -0
- package/dist-cjs/components/generated/{TextureCamera.gen.js → AudioAnalysis.gen.js} +8 -8
- package/dist-cjs/components/generated/component-names.gen.js +1 -10
- package/dist-cjs/components/generated/global.gen.d.ts +2 -20
- package/dist-cjs/components/generated/global.gen.js +3 -12
- package/dist-cjs/components/generated/index.gen.d.ts +4 -40
- package/dist-cjs/components/generated/index.gen.js +8 -62
- package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.d.ts +0 -20
- package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.js +1 -66
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/audio_analysis.gen.d.ts +37 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/audio_analysis.gen.js +167 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +0 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +1 -10
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +0 -43
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +2 -152
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +0 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +0 -10
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +1 -37
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +2 -120
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +2 -4
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +1 -3
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +0 -19
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +1 -46
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +0 -22
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.js +2 -58
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +0 -20
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +1 -57
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +3 -21
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +1 -57
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/particle_system.gen.d.ts +14 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/particle_system.gen.js +43 -5
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +2 -8
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +0 -3
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/raycast.gen.d.ts +0 -13
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/raycast.gen.js +1 -31
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +0 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +0 -10
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +0 -4
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +0 -20
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +0 -35
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +1 -91
- package/dist-cjs/components/generated/types.gen.d.ts +1 -0
- package/dist-cjs/components/generated/types.gen.js +3 -0
- package/dist-cjs/components/index.d.ts +9 -11
- package/dist-cjs/components/index.js +11 -15
- package/dist-cjs/components/manual/Transform.d.ts +13 -0
- package/dist-cjs/components/manual/Transform.js +31 -0
- package/dist-cjs/components/types.d.ts +2 -3
- package/dist-cjs/engine/entity.js +4 -2
- package/dist-cjs/engine/grow-only-value-set-component-definition.js +1 -1
- package/dist-cjs/engine/input.d.ts +0 -6
- package/dist-cjs/engine/input.js +4 -9
- package/dist-cjs/engine/lww-element-set-component-definition.d.ts +2 -2
- package/dist-cjs/engine/lww-element-set-component-definition.js +24 -7
- package/dist-cjs/index.d.ts +4 -2
- package/dist-cjs/index.js +5 -2
- package/dist-cjs/runtime/globals.d.ts +1 -2
- package/dist-cjs/runtime/globals.js +1 -2
- package/dist-cjs/runtime/helpers/index.d.ts +1 -0
- package/dist-cjs/runtime/helpers/index.js +1 -0
- package/dist-cjs/runtime/helpers/tree.d.ts +6 -0
- package/dist-cjs/runtime/helpers/tree.js +3 -2
- package/dist-cjs/runtime/helpers/vectors.js +39 -0
- package/dist-cjs/runtime/initialization/index.d.ts +7 -0
- package/dist-cjs/runtime/initialization/index.js +7 -1
- package/dist-cjs/systems/crdt/index.js +6 -6
- package/dist-cjs/systems/events.d.ts +25 -59
- package/dist-cjs/systems/events.js +129 -145
- package/dist-cjs/systems/physics-force.js +167 -0
- package/dist-cjs/systems/physics-impulse.d.ts +12 -0
- package/dist-cjs/systems/physics-impulse.js +112 -0
- package/dist-cjs/systems/physics.d.ts +77 -0
- package/dist-cjs/systems/physics.js +23 -0
- package/dist-cjs/systems/raycast.d.ts +1 -3
- package/dist-cjs/systems/raycast.js +0 -2
- package/package.json +3 -2
- package/dist/components/extended/AvatarEquippedData.d.ts +0 -10
- package/dist/components/extended/AvatarEquippedData.js +0 -15
- package/dist/components/extended/AvatarShape.d.ts +0 -10
- package/dist/components/extended/AvatarShape.js +0 -15
- package/dist/components/generated/AvatarMovement.gen.d.ts +0 -1
- package/dist/components/generated/AvatarMovement.gen.js +0 -25
- package/dist/components/generated/AvatarMovementInfo.gen.d.ts +0 -1
- package/dist/components/generated/AvatarMovementInfo.gen.js +0 -25
- package/dist/components/generated/CameraLayer.gen.d.ts +0 -1
- package/dist/components/generated/CameraLayer.gen.js +0 -25
- package/dist/components/generated/CameraLayers.gen.d.ts +0 -1
- package/dist/components/generated/CameraLayers.gen.js +0 -25
- package/dist/components/generated/GlobalLight.gen.d.ts +0 -1
- package/dist/components/generated/GlobalLight.gen.js +0 -25
- package/dist/components/generated/GltfNode.gen.d.ts +0 -1
- package/dist/components/generated/GltfNode.gen.js +0 -25
- package/dist/components/generated/GltfNodeState.gen.d.ts +0 -1
- package/dist/components/generated/GltfNodeState.gen.js +0 -25
- package/dist/components/generated/TextureCamera.gen.d.ts +0 -1
- package/dist/components/generated/UiCanvas.gen.d.ts +0 -1
- package/dist/components/generated/UiCanvas.gen.js +0 -25
- package/dist/components/generated/UiScrollResult.gen.d.ts +0 -1
- package/dist/components/generated/UiScrollResult.gen.js +0 -25
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.d.ts +0 -20
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +0 -69
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +0 -32
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +0 -126
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +0 -30
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +0 -104
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +0 -14
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +0 -50
- package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +0 -34
- package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.js +0 -61
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +0 -50
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +0 -41
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +0 -27
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +0 -59
- package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +0 -74
- package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +0 -191
- package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +0 -19
- package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +0 -60
- package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +0 -15
- package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +0 -42
- package/dist-cjs/components/extended/AvatarEquippedData.d.ts +0 -10
- package/dist-cjs/components/extended/AvatarEquippedData.js +0 -19
- package/dist-cjs/components/extended/AvatarShape.d.ts +0 -10
- package/dist-cjs/components/extended/AvatarShape.js +0 -19
- package/dist-cjs/components/generated/AvatarMovement.gen.js +0 -28
- package/dist-cjs/components/generated/AvatarMovementInfo.gen.js +0 -28
- package/dist-cjs/components/generated/CameraLayer.gen.js +0 -28
- package/dist-cjs/components/generated/CameraLayers.gen.js +0 -28
- package/dist-cjs/components/generated/GlobalLight.gen.js +0 -28
- package/dist-cjs/components/generated/GltfNode.gen.js +0 -28
- package/dist-cjs/components/generated/GltfNodeState.gen.d.ts +0 -1
- package/dist-cjs/components/generated/GltfNodeState.gen.js +0 -28
- package/dist-cjs/components/generated/TextureCamera.gen.d.ts +0 -1
- package/dist-cjs/components/generated/UiCanvas.gen.d.ts +0 -1
- package/dist-cjs/components/generated/UiCanvas.gen.js +0 -28
- package/dist-cjs/components/generated/UiScrollResult.gen.d.ts +0 -1
- package/dist-cjs/components/generated/UiScrollResult.gen.js +0 -28
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.d.ts +0 -20
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +0 -75
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +0 -32
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +0 -132
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +0 -30
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +0 -110
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +0 -14
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +0 -56
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +0 -34
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.js +0 -67
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +0 -50
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +0 -47
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +0 -27
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +0 -65
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +0 -74
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +0 -197
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +0 -19
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +0 -66
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +0 -15
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +0 -48
- /package/{dist-cjs/components/generated/CameraLayers.gen.d.ts → dist/components/generated/AudioAnalysis.gen.d.ts} +0 -0
- /package/{dist-cjs/components/generated/GlobalLight.gen.d.ts → dist/runtime/helpers/vectors.d.ts} +0 -0
- /package/{dist-cjs/components/generated/GltfNode.gen.d.ts → dist/systems/physics-force.d.ts} +0 -0
- /package/dist-cjs/components/generated/{AvatarMovement.gen.d.ts → AudioAnalysis.gen.d.ts} +0 -0
- /package/dist-cjs/{components/generated/AvatarMovementInfo.gen.d.ts → runtime/helpers/vectors.d.ts} +0 -0
- /package/dist-cjs/{components/generated/CameraLayer.gen.d.ts → systems/physics-force.d.ts} +0 -0
|
@@ -30,7 +30,7 @@ export function createDumpLwwFunctionFromCrdt(componentId, timestamps, schema, d
|
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
-
export function createUpdateLwwFromCrdt(componentId, timestamps, schema, data) {
|
|
33
|
+
export function createUpdateLwwFromCrdt(componentId, timestamps, schema, data, lastSentData) {
|
|
34
34
|
/**
|
|
35
35
|
* Process the received message only if the lamport number recieved is higher
|
|
36
36
|
* than the stored one. If its lower, we spread it to the network to correct the peer.
|
|
@@ -96,9 +96,11 @@ export function createUpdateLwwFromCrdt(componentId, timestamps, schema, data) {
|
|
|
96
96
|
if (msg.type === CrdtMessageType.PUT_COMPONENT || msg.type === CrdtMessageType.PUT_COMPONENT_NETWORK) {
|
|
97
97
|
const buf = new ReadWriteByteBuffer(msg.data);
|
|
98
98
|
data.set(entity, schema.deserialize(buf));
|
|
99
|
+
lastSentData.set(entity, new Uint8Array(msg.data));
|
|
99
100
|
}
|
|
100
101
|
else {
|
|
101
102
|
data.delete(entity);
|
|
103
|
+
lastSentData.delete(entity);
|
|
102
104
|
}
|
|
103
105
|
return [null, data.get(entity)];
|
|
104
106
|
}
|
|
@@ -134,23 +136,34 @@ export function createUpdateLwwFromCrdt(componentId, timestamps, schema, data) {
|
|
|
134
136
|
return [null, data.get(entity)];
|
|
135
137
|
};
|
|
136
138
|
}
|
|
137
|
-
export function createGetCrdtMessagesForLww(componentId, timestamps, dirtyIterator, schema, data) {
|
|
139
|
+
export function createGetCrdtMessagesForLww(componentId, timestamps, dirtyIterator, schema, data, lastSentData) {
|
|
138
140
|
return function* () {
|
|
141
|
+
const writeBuffer = new ReadWriteByteBuffer();
|
|
139
142
|
for (const entity of dirtyIterator) {
|
|
140
|
-
const newTimestamp = incrementTimestamp(entity, timestamps);
|
|
141
143
|
if (data.has(entity)) {
|
|
142
|
-
|
|
144
|
+
writeBuffer.resetBuffer();
|
|
143
145
|
schema.serialize(data.get(entity), writeBuffer);
|
|
146
|
+
// Compare against last-sent snapshot using the zero-copy subarray view.
|
|
147
|
+
// Only allocate a copy when bytes actually differ.
|
|
148
|
+
const previousBytes = lastSentData.get(entity);
|
|
149
|
+
if (previousBytes && dataCompare(writeBuffer.toBinary(), previousBytes) === 0) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
const currentBytes = writeBuffer.toCopiedBinary();
|
|
153
|
+
const newTimestamp = incrementTimestamp(entity, timestamps);
|
|
154
|
+
lastSentData.set(entity, currentBytes);
|
|
144
155
|
const msg = {
|
|
145
156
|
type: CrdtMessageType.PUT_COMPONENT,
|
|
146
157
|
componentId,
|
|
147
158
|
entityId: entity,
|
|
148
|
-
data:
|
|
159
|
+
data: currentBytes,
|
|
149
160
|
timestamp: newTimestamp
|
|
150
161
|
};
|
|
151
162
|
yield msg;
|
|
152
163
|
}
|
|
153
164
|
else {
|
|
165
|
+
lastSentData.delete(entity);
|
|
166
|
+
const newTimestamp = incrementTimestamp(entity, timestamps);
|
|
154
167
|
const msg = {
|
|
155
168
|
type: CrdtMessageType.DELETE_COMPONENT,
|
|
156
169
|
componentId,
|
|
@@ -170,6 +183,7 @@ export function createComponentDefinitionFromSchema(componentName, componentId,
|
|
|
170
183
|
const data = new Map();
|
|
171
184
|
const dirtyIterator = new Set();
|
|
172
185
|
const timestamps = new Map();
|
|
186
|
+
const lastSentData = new Map();
|
|
173
187
|
const onChangeCallbacks = new Map();
|
|
174
188
|
return {
|
|
175
189
|
get componentId() {
|
|
@@ -191,12 +205,14 @@ export function createComponentDefinitionFromSchema(componentName, componentId,
|
|
|
191
205
|
if (data.delete(entity) && markAsDirty) {
|
|
192
206
|
dirtyIterator.add(entity);
|
|
193
207
|
}
|
|
208
|
+
lastSentData.delete(entity);
|
|
194
209
|
return component || null;
|
|
195
210
|
},
|
|
196
211
|
entityDeleted(entity, markAsDirty) {
|
|
197
212
|
if (data.delete(entity) && markAsDirty) {
|
|
198
213
|
dirtyIterator.add(entity);
|
|
199
214
|
}
|
|
215
|
+
lastSentData.delete(entity);
|
|
200
216
|
},
|
|
201
217
|
getOrNull(entity) {
|
|
202
218
|
const component = data.get(entity);
|
|
@@ -223,6 +239,7 @@ export function createComponentDefinitionFromSchema(componentName, componentId,
|
|
|
223
239
|
const usedValue = value === undefined ? schema.create() : schema.extend ? schema.extend(value) : value;
|
|
224
240
|
data.set(entity, usedValue);
|
|
225
241
|
dirtyIterator.add(entity);
|
|
242
|
+
lastSentData.delete(entity);
|
|
226
243
|
return usedValue;
|
|
227
244
|
},
|
|
228
245
|
getMutableOrNull(entity) {
|
|
@@ -260,8 +277,8 @@ export function createComponentDefinitionFromSchema(componentName, componentId,
|
|
|
260
277
|
yield entity;
|
|
261
278
|
}
|
|
262
279
|
},
|
|
263
|
-
getCrdtUpdates: createGetCrdtMessagesForLww(componentId, timestamps, dirtyIterator, schema, data),
|
|
264
|
-
updateFromCrdt: createUpdateLwwFromCrdt(componentId, timestamps, schema, data),
|
|
280
|
+
getCrdtUpdates: createGetCrdtMessagesForLww(componentId, timestamps, dirtyIterator, schema, data, lastSentData),
|
|
281
|
+
updateFromCrdt: createUpdateLwwFromCrdt(componentId, timestamps, schema, data, lastSentData),
|
|
265
282
|
dumpCrdtStateToBuffer: createDumpLwwFunctionFromCrdt(componentId, timestamps, schema, data),
|
|
266
283
|
onChange(entity, cb) {
|
|
267
284
|
const cbs = onChangeCallbacks.get(entity) ?? [];
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export * from './engine';
|
|
2
2
|
export * from './schemas';
|
|
3
|
+
export * from './runtime/globals';
|
|
3
4
|
export * from './runtime/initialization';
|
|
4
5
|
export * from './runtime/types';
|
|
5
6
|
export * from './runtime/helpers';
|
|
6
|
-
export * from './runtime/globals';
|
|
7
7
|
export { cyclicParentingChecker } from './systems/cyclicParentingChecker';
|
|
8
8
|
export * from './systems/events';
|
|
9
9
|
export * from './systems/raycast';
|
|
@@ -12,9 +12,10 @@ export * from './systems/assetLoad';
|
|
|
12
12
|
export * from './systems/async-task';
|
|
13
13
|
export * from './systems/tween';
|
|
14
14
|
export * from './systems/triggerArea';
|
|
15
|
+
export * from './systems/physics';
|
|
15
16
|
export * from './engine/entity';
|
|
16
17
|
export * from './components/types';
|
|
17
|
-
import { MaterialComponentDefinitionExtended, MeshColliderComponentDefinitionExtended, MeshRendererComponentDefinitionExtended, TransformComponentExtended, AnimatorComponentDefinitionExtended, AudioSourceComponentDefinitionExtended, AudioStreamComponentDefinitionExtended, ISyncComponents, TweenComponentDefinitionExtended, INetowrkEntity, INetowrkParent, VirtualCameraComponentDefinitionExtended, InputModifierComponentDefinitionExtended, LightSourceComponentDefinitionExtended, TriggerAreaComponentDefinitionExtended } from './components/types';
|
|
18
|
+
import { MaterialComponentDefinitionExtended, MeshColliderComponentDefinitionExtended, MeshRendererComponentDefinitionExtended, TransformComponentExtended, AnimatorComponentDefinitionExtended, AudioSourceComponentDefinitionExtended, AudioStreamComponentDefinitionExtended, ISyncComponents, TweenComponentDefinitionExtended, INetowrkEntity, INetowrkParent, VirtualCameraComponentDefinitionExtended, InputModifierComponentDefinitionExtended, LightSourceComponentDefinitionExtended, TriggerAreaComponentDefinitionExtended, ParticleSystemComponentDefinitionExtended } from './components/types';
|
|
18
19
|
import { NameComponent } from './components/manual/Name';
|
|
19
20
|
import { TagsComponentDefinitionExtended } from './components/manual/Tags';
|
|
20
21
|
export declare const Transform: TransformComponentExtended;
|
|
@@ -31,6 +32,7 @@ export declare const VirtualCamera: VirtualCameraComponentDefinitionExtended;
|
|
|
31
32
|
export declare const InputModifier: InputModifierComponentDefinitionExtended;
|
|
32
33
|
export declare const LightSource: LightSourceComponentDefinitionExtended;
|
|
33
34
|
export declare const TriggerArea: TriggerAreaComponentDefinitionExtended;
|
|
35
|
+
export declare const ParticleSystem: ParticleSystemComponentDefinitionExtended;
|
|
34
36
|
/**
|
|
35
37
|
* @alpha
|
|
36
38
|
* This is going to be used for sync components through a server.
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// The order of the following imports matters. Please do not auto-sort
|
|
2
2
|
export * from './engine';
|
|
3
3
|
export * from './schemas';
|
|
4
|
+
export * from './runtime/globals';
|
|
4
5
|
export * from './runtime/initialization';
|
|
5
6
|
export * from './runtime/types';
|
|
6
7
|
export * from './runtime/helpers';
|
|
7
|
-
export * from './runtime/globals';
|
|
8
8
|
export { cyclicParentingChecker } from './systems/cyclicParentingChecker';
|
|
9
9
|
export * from './systems/events';
|
|
10
10
|
export * from './systems/raycast';
|
|
@@ -13,6 +13,7 @@ export * from './systems/assetLoad';
|
|
|
13
13
|
export * from './systems/async-task';
|
|
14
14
|
export * from './systems/tween';
|
|
15
15
|
export * from './systems/triggerArea';
|
|
16
|
+
export * from './systems/physics';
|
|
16
17
|
export * from './engine/entity';
|
|
17
18
|
export * from './components/types';
|
|
18
19
|
// @internal
|
|
@@ -35,6 +36,8 @@ export const VirtualCamera = /* @__PURE__*/ components.VirtualCamera(engine);
|
|
|
35
36
|
export const InputModifier = /* @__PURE__*/ components.InputModifier(engine);
|
|
36
37
|
export const LightSource = /* @__PURE__*/ components.LightSource(engine);
|
|
37
38
|
export const TriggerArea = /* @__PURE__*/ components.TriggerArea(engine);
|
|
39
|
+
export const ParticleSystem =
|
|
40
|
+
/* @__PURE__*/ components.ParticleSystem(engine);
|
|
38
41
|
/**
|
|
39
42
|
* @alpha
|
|
40
43
|
* This is going to be used for sync components through a server.
|
package/dist/runtime/globals.js
CHANGED
|
@@ -2,6 +2,12 @@ import { Entity } from '../../engine/entity';
|
|
|
2
2
|
import { ComponentDefinition, IEngine } from '../../engine';
|
|
3
3
|
import { Vector3Type } from '../../schemas/custom/Vector3';
|
|
4
4
|
import { QuaternionType } from '../../schemas/custom/Quaternion';
|
|
5
|
+
/**
|
|
6
|
+
* @public
|
|
7
|
+
* Rotate a vector by a quaternion
|
|
8
|
+
* Uses the formula: v' = q * v * q^(-1), optimized version
|
|
9
|
+
*/
|
|
10
|
+
export declare function rotateVectorByQuaternion(v: Vector3Type, q: QuaternionType): Vector3Type;
|
|
5
11
|
/**
|
|
6
12
|
* Get an iterator of entities that follow a tree structure for a component
|
|
7
13
|
* @public
|
|
@@ -35,11 +35,11 @@ function multiplyQuaternions(q1, q2) {
|
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
37
|
/**
|
|
38
|
-
* @
|
|
38
|
+
* @public
|
|
39
39
|
* Rotate a vector by a quaternion
|
|
40
40
|
* Uses the formula: v' = q * v * q^(-1), optimized version
|
|
41
41
|
*/
|
|
42
|
-
function rotateVectorByQuaternion(v, q) {
|
|
42
|
+
export function rotateVectorByQuaternion(v, q) {
|
|
43
43
|
// Extract quaternion components
|
|
44
44
|
const qx = q.x, qy = q.y, qz = q.z, qw = q.w;
|
|
45
45
|
// Calculate cross product terms (q.xyz × v) * 2
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight Vector3 math utilities for internal use.
|
|
3
|
+
* Mirrors the subset of @dcl/ecs-math Vector3 API used by the physics helpers.
|
|
4
|
+
*
|
|
5
|
+
* TEMPORARY WORKAROUND: @dcl/ecs-math ships ESM-only, which breaks the dist-cjs build.
|
|
6
|
+
* The proper fix is to add a CJS build to @dcl/ecs-math upstream, then replace this
|
|
7
|
+
* file with `import { Vector3 } from '@dcl/ecs-math'`.
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export const Vector3 = {
|
|
12
|
+
add(a, b) {
|
|
13
|
+
return { x: a.x + b.x, y: a.y + b.y, z: a.z + b.z };
|
|
14
|
+
},
|
|
15
|
+
subtract(a, b) {
|
|
16
|
+
return { x: a.x - b.x, y: a.y - b.y, z: a.z - b.z };
|
|
17
|
+
},
|
|
18
|
+
scale(v, s) {
|
|
19
|
+
return { x: v.x * s, y: v.y * s, z: v.z * s };
|
|
20
|
+
},
|
|
21
|
+
length(v) {
|
|
22
|
+
return Math.sqrt(v.x * v.x + v.y * v.y + v.z * v.z);
|
|
23
|
+
},
|
|
24
|
+
normalize(v) {
|
|
25
|
+
const len = Vector3.length(v);
|
|
26
|
+
if (len === 0)
|
|
27
|
+
return { x: 0, y: 0, z: 0 };
|
|
28
|
+
return { x: v.x / len, y: v.y / len, z: v.z / len };
|
|
29
|
+
},
|
|
30
|
+
equals(a, b) {
|
|
31
|
+
return a.x === b.x && a.y === b.y && a.z === b.z;
|
|
32
|
+
},
|
|
33
|
+
equalsToFloats(v, x, y, z) {
|
|
34
|
+
return v.x === x && v.y === y && v.z === z;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
@@ -12,6 +12,7 @@ import { AssetLoadLoadingStateSystem } from '../../systems/assetLoad';
|
|
|
12
12
|
import { TweenSystem } from '../../systems/tween';
|
|
13
13
|
import { TriggerAreaEventsSystem } from '../../systems/triggerArea';
|
|
14
14
|
import { createTimers, Timers } from '../helpers/timers';
|
|
15
|
+
import { PhysicsSystem } from '../../systems/physics';
|
|
15
16
|
/**
|
|
16
17
|
* @public
|
|
17
18
|
* The engine is the part of the scene that sits in the middle and manages all of the other parts.
|
|
@@ -77,6 +78,12 @@ export { TriggerAreaEventsSystem };
|
|
|
77
78
|
*/
|
|
78
79
|
export declare const timers: Timers;
|
|
79
80
|
export { Timers, createTimers };
|
|
81
|
+
/**
|
|
82
|
+
* @public
|
|
83
|
+
* Physics helpers for applying impulses and forces to the player.
|
|
84
|
+
*/
|
|
85
|
+
export declare const Physics: PhysicsSystem;
|
|
86
|
+
export { PhysicsSystem };
|
|
80
87
|
/**
|
|
81
88
|
* @public
|
|
82
89
|
* Runs an async function
|
|
@@ -14,6 +14,7 @@ import { pointerEventColliderChecker } from '../../systems/pointer-event-collide
|
|
|
14
14
|
import { createTriggerAreaEventsSystem } from '../../systems/triggerArea';
|
|
15
15
|
import { createTimers } from '../helpers/timers';
|
|
16
16
|
import { setGlobalPolyfill } from '../globals';
|
|
17
|
+
import { createPhysicsSystem } from '../../systems/physics';
|
|
17
18
|
/**
|
|
18
19
|
* @public
|
|
19
20
|
* The engine is the part of the scene that sits in the middle and manages all of the other parts.
|
|
@@ -77,6 +78,11 @@ setGlobalPolyfill('setTimeout', timers.setTimeout);
|
|
|
77
78
|
setGlobalPolyfill('clearTimeout', timers.clearTimeout);
|
|
78
79
|
setGlobalPolyfill('setInterval', timers.setInterval);
|
|
79
80
|
setGlobalPolyfill('clearInterval', timers.clearInterval);
|
|
81
|
+
/**
|
|
82
|
+
* @public
|
|
83
|
+
* Physics helpers for applying impulses and forces to the player.
|
|
84
|
+
*/
|
|
85
|
+
export const Physics = /* @__PURE__ */ createPhysicsSystem(engine);
|
|
80
86
|
/**
|
|
81
87
|
* Adds pointer event collider system only in DEV env
|
|
82
88
|
*/
|
|
@@ -218,6 +218,12 @@ export function crdtSceneSystem(engine, onProcessEntityComponentChange) {
|
|
|
218
218
|
const buffer = new ReadWriteByteBuffer();
|
|
219
219
|
// Then we send all the new crdtMessages that the transport needs to process
|
|
220
220
|
for (const message of crdtMessages) {
|
|
221
|
+
// Avoid echo messages
|
|
222
|
+
if (message.transportId === transportIndex)
|
|
223
|
+
continue;
|
|
224
|
+
// Redundant message for the transport
|
|
225
|
+
if (!transport.filter(message))
|
|
226
|
+
continue;
|
|
221
227
|
// Check if adding this message would exceed the size limit
|
|
222
228
|
const currentBufferSize = transportBuffer.toBinary().byteLength;
|
|
223
229
|
const messageSize = message.messageBuffer.byteLength;
|
|
@@ -234,12 +240,6 @@ export function crdtSceneSystem(engine, onProcessEntityComponentChange) {
|
|
|
234
240
|
continue;
|
|
235
241
|
}
|
|
236
242
|
}
|
|
237
|
-
// Avoid echo messages
|
|
238
|
-
if (message.transportId === transportIndex)
|
|
239
|
-
continue;
|
|
240
|
-
// Redundant message for the transport
|
|
241
|
-
if (!transport.filter(message))
|
|
242
|
-
continue;
|
|
243
243
|
const { entityId } = findNetworkId(message);
|
|
244
244
|
const transformNeedsFix = 'componentId' in message &&
|
|
245
245
|
message.componentId === Transform.componentId &&
|
package/dist/systems/events.d.ts
CHANGED
|
@@ -17,12 +17,7 @@ export type EventSystemOptions = {
|
|
|
17
17
|
showFeedback?: boolean;
|
|
18
18
|
showHighlight?: boolean;
|
|
19
19
|
maxPlayerDistance?: number;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* @public
|
|
23
|
-
*/
|
|
24
|
-
export type EventSystemOptionsCallback = EventSystemOptions & {
|
|
25
|
-
cb: EventSystemCallback;
|
|
20
|
+
priority?: number;
|
|
26
21
|
};
|
|
27
22
|
export declare const getDefaultOpts: (opts?: Partial<EventSystemOptions>) => EventSystemOptions;
|
|
28
23
|
/**
|
|
@@ -55,35 +50,33 @@ export interface PointerEventsSystem {
|
|
|
55
50
|
removeOnPointerHoverLeave(entity: Entity): void;
|
|
56
51
|
/**
|
|
57
52
|
* @public
|
|
58
|
-
* Remove the callback for
|
|
53
|
+
* Remove the callback for onProximityDown event
|
|
59
54
|
* @param entity - Entity where the callback was attached
|
|
60
55
|
*/
|
|
61
|
-
|
|
56
|
+
removeOnProximityDown(entity: Entity): void;
|
|
62
57
|
/**
|
|
63
58
|
* @public
|
|
64
|
-
* Remove the callback for
|
|
59
|
+
* Remove the callback for onProximityUp event
|
|
65
60
|
* @param entity - Entity where the callback was attached
|
|
66
61
|
*/
|
|
67
|
-
|
|
62
|
+
removeOnProximityUp(entity: Entity): void;
|
|
68
63
|
/**
|
|
69
64
|
* @public
|
|
70
|
-
* Remove the callback for
|
|
65
|
+
* Remove the callback for onProximityEnter event
|
|
71
66
|
* @param entity - Entity where the callback was attached
|
|
72
67
|
*/
|
|
73
|
-
|
|
68
|
+
removeOnProximityEnter(entity: Entity): void;
|
|
74
69
|
/**
|
|
75
70
|
* @public
|
|
76
|
-
*
|
|
77
|
-
* @param
|
|
71
|
+
* Remove the callback for onProximityLeave event
|
|
72
|
+
* @param entity - Entity where the callback was attached
|
|
78
73
|
*/
|
|
79
|
-
|
|
80
|
-
entity: Entity;
|
|
81
|
-
optsList: EventSystemOptionsCallback[];
|
|
82
|
-
}): void;
|
|
74
|
+
removeOnProximityLeave(entity: Entity): void;
|
|
83
75
|
/**
|
|
84
76
|
* @public
|
|
85
77
|
* Execute callback when the user press the InputButton pointing at the entity
|
|
86
78
|
* @param pointerData - Entity to attach the callback, Opts to trigger Feedback and Button
|
|
79
|
+
* @param cb - Function to execute when click fires
|
|
87
80
|
*/
|
|
88
81
|
onPointerDown(pointerData: {
|
|
89
82
|
entity: Entity;
|
|
@@ -96,15 +89,6 @@ export interface PointerEventsSystem {
|
|
|
96
89
|
* @param opts - Opts to trigger Feedback and Button
|
|
97
90
|
*/
|
|
98
91
|
onPointerDown(entity: Entity, cb: EventSystemCallback, opts?: Partial<EventSystemOptions>): void;
|
|
99
|
-
/**
|
|
100
|
-
* @public
|
|
101
|
-
* Execute callbacks when the user releases one of the InputButtons pointing at the entity
|
|
102
|
-
* @param pointerData - Entity to attach the callbacks, list of options to trigger Feedback, Button, and Callback
|
|
103
|
-
*/
|
|
104
|
-
onPointerUp(pointerData: {
|
|
105
|
-
entity: Entity;
|
|
106
|
-
optsList: EventSystemOptionsCallback[];
|
|
107
|
-
}): void;
|
|
108
92
|
/**
|
|
109
93
|
* @public
|
|
110
94
|
* Execute callback when the user releases the InputButton pointing at the entity
|
|
@@ -144,59 +128,41 @@ export interface PointerEventsSystem {
|
|
|
144
128
|
}, cb: EventSystemCallback): void;
|
|
145
129
|
/**
|
|
146
130
|
* @public
|
|
147
|
-
* Execute
|
|
148
|
-
* @param pointerData - Entity to attach the callbacks, list of options to trigger Feedback, Button, and Callback
|
|
149
|
-
*/
|
|
150
|
-
onPointerDrag(pointerData: {
|
|
151
|
-
entity: Entity;
|
|
152
|
-
optsList: EventSystemOptionsCallback[];
|
|
153
|
-
}): void;
|
|
154
|
-
/**
|
|
155
|
-
* @public
|
|
156
|
-
* Execute callback when the user clicks and drags the pointer from inside the entity
|
|
131
|
+
* Execute callback when the user presses the proximity button on the entity
|
|
157
132
|
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
158
133
|
* @param cb - Function to execute when click fires
|
|
159
134
|
*/
|
|
160
|
-
|
|
135
|
+
onProximityDown(pointerData: {
|
|
161
136
|
entity: Entity;
|
|
162
137
|
opts?: Partial<EventSystemOptions>;
|
|
163
138
|
}, cb: EventSystemCallback): void;
|
|
164
139
|
/**
|
|
165
140
|
* @public
|
|
166
|
-
* Execute
|
|
167
|
-
* @param pointerData - Entity to attach the callbacks, list of options to trigger Feedback, Button, and Callback
|
|
168
|
-
*/
|
|
169
|
-
onPointerDragLocked(pointerData: {
|
|
170
|
-
entity: Entity;
|
|
171
|
-
optsList: EventSystemOptionsCallback[];
|
|
172
|
-
}): void;
|
|
173
|
-
/**
|
|
174
|
-
* @public
|
|
175
|
-
* Execute callback when the user clicks and drags the pointer from inside the entity,
|
|
176
|
-
* locking the cursor in place
|
|
141
|
+
* Execute callback when the user releases the proximity button on the entity
|
|
177
142
|
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
178
|
-
* @param cb - Function to execute when
|
|
143
|
+
* @param cb - Function to execute when event fires
|
|
179
144
|
*/
|
|
180
|
-
|
|
145
|
+
onProximityUp(pointerData: {
|
|
181
146
|
entity: Entity;
|
|
182
147
|
opts?: Partial<EventSystemOptions>;
|
|
183
148
|
}, cb: EventSystemCallback): void;
|
|
184
149
|
/**
|
|
185
150
|
* @public
|
|
186
|
-
* Execute
|
|
187
|
-
* @param pointerData - Entity to attach the
|
|
151
|
+
* Execute callback when the entity enters the proximity zone of the user
|
|
152
|
+
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
153
|
+
* @param cb - Function to execute when event fires
|
|
188
154
|
*/
|
|
189
|
-
|
|
155
|
+
onProximityEnter(pointerData: {
|
|
190
156
|
entity: Entity;
|
|
191
|
-
|
|
192
|
-
}): void;
|
|
157
|
+
opts?: Partial<EventSystemOptions>;
|
|
158
|
+
}, cb: EventSystemCallback): void;
|
|
193
159
|
/**
|
|
194
160
|
* @public
|
|
195
|
-
* Execute callback when the
|
|
161
|
+
* Execute callback when the entity leaves the proximity zone of the user
|
|
196
162
|
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
197
|
-
* @param cb - Function to execute when
|
|
163
|
+
* @param cb - Function to execute when event fires
|
|
198
164
|
*/
|
|
199
|
-
|
|
165
|
+
onProximityLeave(pointerData: {
|
|
200
166
|
entity: Entity;
|
|
201
167
|
opts?: Partial<EventSystemOptions>;
|
|
202
168
|
}, cb: EventSystemCallback): void;
|