@dcl/ecs 7.21.1-22917715332.commit-e5d969d → 7.21.1-22918726402.commit-ee210ee
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/Tween.d.ts +48 -1
- package/dist/components/extended/Tween.js +66 -0
- package/dist/components/generated/PhysicsCombinedForce.gen.js +25 -0
- package/dist/components/generated/PhysicsCombinedImpulse.gen.js +25 -0
- package/dist/components/generated/component-names.gen.js +2 -11
- package/dist/components/generated/global.gen.d.ts +4 -22
- package/dist/components/generated/global.gen.js +2 -11
- package/dist/components/generated/index.gen.d.ts +8 -44
- package/dist/components/generated/index.gen.js +10 -55
- 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/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 -6
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +0 -4
- 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/input_modifier.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/input_modifier.gen.js +20 -0
- 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/physics_combined_force.gen.d.ts +25 -0
- package/dist/components/generated/pb/decentraland/sdk/components/{ui_scroll_result.gen.js → physics_combined_force.gen.js} +12 -12
- package/dist/components/generated/pb/decentraland/sdk/components/physics_combined_impulse.gen.d.ts +28 -0
- package/dist/components/generated/pb/decentraland/sdk/components/physics_combined_impulse.gen.js +51 -0
- 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/tween.gen.d.ts +21 -0
- package/dist/components/generated/pb/decentraland/sdk/components/tween.gen.js +99 -0
- 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/index.d.ts +12 -11
- package/dist/components/index.js +10 -13
- package/dist/components/manual/CreatedBy.d.ts +9 -0
- package/dist/components/manual/CreatedBy.js +8 -0
- package/dist/components/manual/Transform.d.ts +9 -0
- package/dist/components/manual/Transform.js +3 -3
- package/dist/components/types.d.ts +2 -3
- package/dist/engine/component.d.ts +52 -1
- package/dist/engine/entity.js +4 -2
- package/dist/engine/grow-only-value-set-component-definition.js +46 -3
- 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 +3 -1
- package/dist/engine/lww-element-set-component-definition.js +64 -12
- package/dist/index.d.ts +3 -2
- package/dist/index.js +2 -1
- package/dist/runtime/globals.d.ts +1 -2
- package/dist/runtime/globals.js +1 -2
- package/dist/serialization/crdt/authoritativePutComponent.d.ts +15 -0
- package/dist/serialization/crdt/authoritativePutComponent.js +47 -0
- package/dist/serialization/crdt/index.d.ts +1 -0
- package/dist/serialization/crdt/index.js +1 -0
- package/dist/serialization/crdt/types.d.ts +25 -3
- package/dist/serialization/crdt/types.js +3 -1
- package/dist/systems/crdt/index.d.ts +0 -1
- package/dist/systems/crdt/index.js +55 -146
- package/dist/systems/events.d.ts +1 -100
- package/dist/systems/events.js +65 -143
- 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/Tween.d.ts +48 -1
- package/dist-cjs/components/extended/Tween.js +66 -0
- package/dist-cjs/components/generated/PhysicsCombinedForce.gen.js +28 -0
- package/dist-cjs/components/generated/PhysicsCombinedImpulse.gen.js +28 -0
- package/dist-cjs/components/generated/component-names.gen.js +2 -11
- package/dist-cjs/components/generated/global.gen.d.ts +4 -22
- package/dist-cjs/components/generated/global.gen.js +3 -13
- package/dist-cjs/components/generated/index.gen.d.ts +8 -44
- package/dist-cjs/components/generated/index.gen.js +14 -68
- 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/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 -6
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +0 -4
- 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/input_modifier.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/input_modifier.gen.js +20 -0
- 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/physics_combined_force.gen.d.ts +25 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/{ui_scroll_result.gen.js → physics_combined_force.gen.js} +12 -12
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/physics_combined_impulse.gen.d.ts +28 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/{ui_canvas.gen.js → physics_combined_impulse.gen.js} +17 -26
- 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/tween.gen.d.ts +21 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/tween.gen.js +100 -1
- 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/index.d.ts +12 -11
- package/dist-cjs/components/index.js +13 -17
- package/dist-cjs/components/manual/CreatedBy.d.ts +9 -0
- package/dist-cjs/components/manual/CreatedBy.js +10 -0
- package/dist-cjs/components/manual/Transform.d.ts +9 -0
- package/dist-cjs/components/manual/Transform.js +3 -3
- package/dist-cjs/components/types.d.ts +2 -3
- package/dist-cjs/engine/component.d.ts +52 -1
- package/dist-cjs/engine/entity.js +4 -2
- package/dist-cjs/engine/grow-only-value-set-component-definition.js +45 -2
- 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 +3 -1
- package/dist-cjs/engine/lww-element-set-component-definition.js +67 -13
- package/dist-cjs/index.d.ts +3 -2
- package/dist-cjs/index.js +3 -2
- package/dist-cjs/runtime/globals.d.ts +1 -2
- package/dist-cjs/runtime/globals.js +1 -2
- package/dist-cjs/serialization/crdt/authoritativePutComponent.d.ts +15 -0
- package/dist-cjs/serialization/crdt/authoritativePutComponent.js +50 -0
- package/dist-cjs/serialization/crdt/index.d.ts +1 -0
- package/dist-cjs/serialization/crdt/index.js +1 -0
- package/dist-cjs/serialization/crdt/types.d.ts +25 -3
- package/dist-cjs/serialization/crdt/types.js +3 -1
- package/dist-cjs/systems/crdt/index.d.ts +0 -1
- package/dist-cjs/systems/crdt/index.js +55 -169
- package/dist-cjs/systems/events.d.ts +1 -100
- package/dist-cjs/systems/events.js +65 -143
- package/dist-cjs/systems/raycast.d.ts +1 -3
- package/dist-cjs/systems/raycast.js +0 -2
- package/package.json +2 -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/AvatarLocomotionSettings.gen.d.ts +0 -1
- package/dist/components/generated/AvatarLocomotionSettings.gen.js +0 -25
- 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/TextureCamera.gen.js +0 -25
- 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_locomotion_settings.gen.d.ts +0 -29
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_locomotion_settings.gen.js +0 -93
- 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/serialization/crdt/network/utils.d.ts +0 -9
- package/dist/serialization/crdt/network/utils.js +0 -60
- 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/AvatarLocomotionSettings.gen.js +0 -28
- 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.d.ts +0 -1
- package/dist-cjs/components/generated/CameraLayers.gen.js +0 -28
- package/dist-cjs/components/generated/GlobalLight.gen.d.ts +0 -1
- package/dist-cjs/components/generated/GlobalLight.gen.js +0 -28
- package/dist-cjs/components/generated/GltfNode.gen.d.ts +0 -1
- 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/TextureCamera.gen.js +0 -28
- 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_locomotion_settings.gen.d.ts +0 -29
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_locomotion_settings.gen.js +0 -99
- 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_scroll_result.gen.d.ts +0 -15
- package/dist-cjs/serialization/crdt/network/utils.d.ts +0 -9
- package/dist-cjs/serialization/crdt/network/utils.js +0 -67
- /package/{dist-cjs/components/generated/AvatarMovementInfo.gen.d.ts → dist/components/generated/PhysicsCombinedForce.gen.d.ts} +0 -0
- /package/{dist-cjs/components/generated/CameraLayer.gen.d.ts → dist/components/generated/PhysicsCombinedImpulse.gen.d.ts} +0 -0
- /package/dist-cjs/components/generated/{AvatarLocomotionSettings.gen.d.ts → PhysicsCombinedForce.gen.d.ts} +0 -0
- /package/dist-cjs/components/generated/{AvatarMovement.gen.d.ts → PhysicsCombinedImpulse.gen.d.ts} +0 -0
|
@@ -1,24 +1,17 @@
|
|
|
1
1
|
import { EntityState } from '../../engine/entity';
|
|
2
2
|
import { ReadWriteByteBuffer } from '../../serialization/ByteBuffer';
|
|
3
|
-
import { AppendValueOperation, CrdtMessageProtocol
|
|
3
|
+
import { AppendValueOperation, CrdtMessageProtocol } from '../../serialization/crdt';
|
|
4
4
|
import { DeleteComponent } from '../../serialization/crdt/deleteComponent';
|
|
5
5
|
import { DeleteEntity } from '../../serialization/crdt/deleteEntity';
|
|
6
6
|
import { PutComponentOperation } from '../../serialization/crdt/putComponent';
|
|
7
|
+
import { AuthoritativePutComponentOperation } from '../../serialization/crdt/authoritativePutComponent';
|
|
7
8
|
import { CrdtMessageType } from '../../serialization/crdt/types';
|
|
8
|
-
import { PutNetworkComponentOperation } from '../../serialization/crdt/network/putComponentNetwork';
|
|
9
|
-
import { NetworkEntity as defineNetworkEntity, NetworkParent as defineNetworkParent, Transform as defineTransform } from '../../components';
|
|
10
|
-
import * as networkUtils from '../../serialization/crdt/network/utils';
|
|
11
|
-
// NetworkMessages can only have a MAX_SIZE of 12kb. So we need to send it in chunks.
|
|
12
|
-
export const LIVEKIT_MAX_SIZE = 12;
|
|
13
9
|
/**
|
|
14
10
|
* @internal
|
|
15
11
|
*/
|
|
16
12
|
export function crdtSceneSystem(engine, onProcessEntityComponentChange) {
|
|
17
13
|
const transports = [];
|
|
18
|
-
//
|
|
19
|
-
const NetworkEntity = defineNetworkEntity(engine);
|
|
20
|
-
const NetworkParent = defineNetworkParent(engine);
|
|
21
|
-
const Transform = defineTransform(engine);
|
|
14
|
+
// No network components needed - pure CRDT processing only
|
|
22
15
|
// Messages that we received at transport.onMessage waiting to be processed
|
|
23
16
|
const receivedMessages = [];
|
|
24
17
|
// Messages already processed by the engine but that we need to broadcast to other transports.
|
|
@@ -43,27 +36,20 @@ export function crdtSceneSystem(engine, onProcessEntityComponentChange) {
|
|
|
43
36
|
if (header.type === CrdtMessageType.DELETE_COMPONENT) {
|
|
44
37
|
message = DeleteComponent.read(buffer);
|
|
45
38
|
}
|
|
46
|
-
else if (header.type === CrdtMessageType.DELETE_COMPONENT_NETWORK) {
|
|
47
|
-
message = DeleteComponentNetwork.read(buffer);
|
|
48
|
-
}
|
|
49
39
|
else if (header.type === CrdtMessageType.PUT_COMPONENT) {
|
|
50
40
|
message = PutComponentOperation.read(buffer);
|
|
51
41
|
}
|
|
52
|
-
else if (header.type === CrdtMessageType.
|
|
53
|
-
message =
|
|
42
|
+
else if (header.type === CrdtMessageType.AUTHORITATIVE_PUT_COMPONENT) {
|
|
43
|
+
message = AuthoritativePutComponentOperation.read(buffer);
|
|
54
44
|
}
|
|
55
45
|
else if (header.type === CrdtMessageType.DELETE_ENTITY) {
|
|
56
46
|
message = DeleteEntity.read(buffer);
|
|
57
47
|
}
|
|
58
|
-
else if (header.type === CrdtMessageType.DELETE_ENTITY_NETWORK) {
|
|
59
|
-
message = DeleteEntityNetwork.read(buffer);
|
|
60
|
-
}
|
|
61
48
|
else if (header.type === CrdtMessageType.APPEND_VALUE) {
|
|
62
49
|
message = AppendValueOperation.read(buffer);
|
|
63
|
-
// Unknown message, we skip it
|
|
64
50
|
}
|
|
65
51
|
else {
|
|
66
|
-
//
|
|
52
|
+
// Unknown message, we skip it (including NETWORK messages)
|
|
67
53
|
buffer.incrementReadOffset(header.length);
|
|
68
54
|
}
|
|
69
55
|
if (message) {
|
|
@@ -84,22 +70,6 @@ export function crdtSceneSystem(engine, onProcessEntityComponentChange) {
|
|
|
84
70
|
const messagesToProcess = value.splice(0, value.length);
|
|
85
71
|
return messagesToProcess;
|
|
86
72
|
}
|
|
87
|
-
/**
|
|
88
|
-
* Find the local entityId associated to the network component message.
|
|
89
|
-
* It's a mapping Network -> to Local
|
|
90
|
-
* If it's not a network message, return the entityId received by the message
|
|
91
|
-
*/
|
|
92
|
-
function findNetworkId(msg) {
|
|
93
|
-
const hasNetworkId = 'networkId' in msg;
|
|
94
|
-
if (hasNetworkId) {
|
|
95
|
-
for (const [entityId, network] of engine.getEntitiesWith(NetworkEntity)) {
|
|
96
|
-
if (network.networkId === msg.networkId && network.entityId === msg.entityId) {
|
|
97
|
-
return { entityId, network };
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return { entityId: msg.entityId };
|
|
102
|
-
}
|
|
103
73
|
/**
|
|
104
74
|
* This fn will be called on every tick.
|
|
105
75
|
* Process all the messages queue received by the transport
|
|
@@ -108,46 +78,52 @@ export function crdtSceneSystem(engine, onProcessEntityComponentChange) {
|
|
|
108
78
|
const messagesToProcess = getMessages(receivedMessages);
|
|
109
79
|
const entitiesShouldBeCleaned = [];
|
|
110
80
|
for (const msg of messagesToProcess) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
entityId = engine.addEntity();
|
|
115
|
-
network = { entityId: msg.entityId, networkId: msg.networkId };
|
|
116
|
-
NetworkEntity.createOrReplace(entityId, network);
|
|
117
|
-
}
|
|
118
|
-
if (msg.type === CrdtMessageType.DELETE_ENTITY || msg.type === CrdtMessageType.DELETE_ENTITY_NETWORK) {
|
|
119
|
-
entitiesShouldBeCleaned.push(entityId);
|
|
81
|
+
// Simple CRDT processing - no network logic
|
|
82
|
+
if (msg.type === CrdtMessageType.DELETE_ENTITY) {
|
|
83
|
+
entitiesShouldBeCleaned.push(msg.entityId);
|
|
120
84
|
broadcastMessages.push(msg);
|
|
121
85
|
}
|
|
122
86
|
else {
|
|
123
|
-
const entityState = engine.entityContainer.getEntityState(entityId);
|
|
124
|
-
// Skip updates from removed
|
|
87
|
+
const entityState = engine.entityContainer.getEntityState(msg.entityId);
|
|
88
|
+
// Skip updates from removed entities
|
|
125
89
|
if (entityState === EntityState.Removed)
|
|
126
90
|
continue;
|
|
127
|
-
// Entities with unknown
|
|
91
|
+
// Entities with unknown state should update its entity state
|
|
128
92
|
if (entityState === EntityState.Unknown) {
|
|
129
|
-
engine.entityContainer.updateUsedEntity(entityId);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
if (
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
93
|
+
engine.entityContainer.updateUsedEntity(msg.entityId);
|
|
94
|
+
}
|
|
95
|
+
// Only process component-related messages (not DELETE_ENTITY)
|
|
96
|
+
if ('componentId' in msg) {
|
|
97
|
+
const component = engine.getComponentOrNull(msg.componentId);
|
|
98
|
+
if (component) {
|
|
99
|
+
// Handle authoritative messages differently - they force the state regardless of timestamp
|
|
100
|
+
const tryUpdate = () => {
|
|
101
|
+
try {
|
|
102
|
+
return msg.type === CrdtMessageType.AUTHORITATIVE_PUT_COMPONENT
|
|
103
|
+
? component.__forceUpdateFromCrdt(msg)
|
|
104
|
+
: component.updateFromCrdt(msg);
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
console.error('[receiveMessages] ERROR processing message', msg, e);
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
const result = tryUpdate();
|
|
112
|
+
if (!result)
|
|
113
|
+
continue;
|
|
114
|
+
const [conflictMessage, value] = result;
|
|
115
|
+
if (!conflictMessage) {
|
|
116
|
+
// Add message to broadcast queue when no conflict
|
|
117
|
+
broadcastMessages.push(msg);
|
|
118
|
+
onProcessEntityComponentChange && onProcessEntityComponentChange(msg.entityId, msg.type, component, value);
|
|
119
|
+
}
|
|
139
120
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
121
|
+
else {
|
|
122
|
+
// Component not found - still broadcast for editor compatibility
|
|
123
|
+
/* istanbul ignore next */
|
|
143
124
|
broadcastMessages.push(msg);
|
|
144
|
-
onProcessEntityComponentChange && onProcessEntityComponentChange(entityId, msg.type, component, value);
|
|
145
125
|
}
|
|
146
126
|
}
|
|
147
|
-
else {
|
|
148
|
-
// TODO: test this line, it is fundammental to make the editor work
|
|
149
|
-
broadcastMessages.push(msg);
|
|
150
|
-
}
|
|
151
127
|
}
|
|
152
128
|
}
|
|
153
129
|
// the last stage of the syncrhonization is to delete the entities
|
|
@@ -161,16 +137,17 @@ export function crdtSceneSystem(engine, onProcessEntityComponentChange) {
|
|
|
161
137
|
}
|
|
162
138
|
}
|
|
163
139
|
/**
|
|
164
|
-
*
|
|
140
|
+
* Simple CRDT message broadcasting - no network-specific logic
|
|
165
141
|
*/
|
|
166
142
|
async function sendMessages(entitiesDeletedThisTick) {
|
|
167
|
-
//
|
|
143
|
+
// Get messages from broadcast queue and component updates
|
|
168
144
|
const crdtMessages = getMessages(broadcastMessages);
|
|
169
145
|
const buffer = new ReadWriteByteBuffer();
|
|
146
|
+
// Generate CRDT messages from component updates
|
|
170
147
|
for (const component of engine.componentsIter()) {
|
|
171
148
|
for (const message of component.getCrdtUpdates()) {
|
|
172
149
|
const offset = buffer.currentWriteOffset();
|
|
173
|
-
//
|
|
150
|
+
// Only create messages if there's a transport that will handle it
|
|
174
151
|
if (transports.some((t) => t.filter(message))) {
|
|
175
152
|
if (message.type === CrdtMessageType.PUT_COMPONENT) {
|
|
176
153
|
PutComponentOperation.write(message.entityId, message.timestamp, message.componentId, message.data, buffer);
|
|
@@ -194,7 +171,7 @@ export function crdtSceneSystem(engine, onProcessEntityComponentChange) {
|
|
|
194
171
|
}
|
|
195
172
|
}
|
|
196
173
|
}
|
|
197
|
-
//
|
|
174
|
+
// Handle deleted entities
|
|
198
175
|
for (const entityId of entitiesDeletedThisTick) {
|
|
199
176
|
const offset = buffer.currentWriteOffset();
|
|
200
177
|
DeleteEntity.write(entityId, buffer);
|
|
@@ -205,87 +182,19 @@ export function crdtSceneSystem(engine, onProcessEntityComponentChange) {
|
|
|
205
182
|
});
|
|
206
183
|
onProcessEntityComponentChange && onProcessEntityComponentChange(entityId, CrdtMessageType.DELETE_ENTITY);
|
|
207
184
|
}
|
|
208
|
-
//
|
|
209
|
-
const
|
|
210
|
-
|
|
211
|
-
const __NetworkMessagesBuffer = [];
|
|
212
|
-
const transportIndex = Number(index);
|
|
213
|
-
const transport = transports[transportIndex];
|
|
214
|
-
const isRendererTransport = transport.type === 'renderer';
|
|
215
|
-
const isNetworkTransport = transport.type === 'network';
|
|
216
|
-
// Reset Buffer for each Transport
|
|
217
|
-
transportBuffer.resetBuffer();
|
|
218
|
-
const buffer = new ReadWriteByteBuffer();
|
|
219
|
-
// Then we send all the new crdtMessages that the transport needs to process
|
|
185
|
+
// Simple transport broadcasting - no network-specific transforms
|
|
186
|
+
for (const transport of transports) {
|
|
187
|
+
const transportBuffer = new ReadWriteByteBuffer();
|
|
220
188
|
for (const message of crdtMessages) {
|
|
221
|
-
// Check if adding this message would exceed the size limit
|
|
222
|
-
const currentBufferSize = transportBuffer.toBinary().byteLength;
|
|
223
|
-
const messageSize = message.messageBuffer.byteLength;
|
|
224
|
-
if (isNetworkTransport && (currentBufferSize + messageSize) / 1024 > LIVEKIT_MAX_SIZE) {
|
|
225
|
-
// If the current buffer has content, save it as a chunk
|
|
226
|
-
if (currentBufferSize > 0) {
|
|
227
|
-
__NetworkMessagesBuffer.push(transportBuffer.toCopiedBinary());
|
|
228
|
-
transportBuffer.resetBuffer();
|
|
229
|
-
}
|
|
230
|
-
// If the message itself is larger than the limit, we need to handle it specially
|
|
231
|
-
// For now, we'll skip it to prevent infinite loops
|
|
232
|
-
if (messageSize / 1024 > LIVEKIT_MAX_SIZE) {
|
|
233
|
-
console.error(`Message too large (${messageSize} bytes), skipping message for entity ${message.entityId}`);
|
|
234
|
-
continue;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
189
|
// Avoid echo messages
|
|
238
|
-
if (message.transportId ===
|
|
239
|
-
continue;
|
|
240
|
-
// Redundant message for the transport
|
|
241
|
-
if (!transport.filter(message))
|
|
242
|
-
continue;
|
|
243
|
-
const { entityId } = findNetworkId(message);
|
|
244
|
-
const transformNeedsFix = 'componentId' in message &&
|
|
245
|
-
message.componentId === Transform.componentId &&
|
|
246
|
-
Transform.has(entityId) &&
|
|
247
|
-
NetworkParent.has(entityId) &&
|
|
248
|
-
NetworkEntity.has(entityId);
|
|
249
|
-
// If there was a LOCAL change in the transform. Add the parent to that transform
|
|
250
|
-
if (isRendererTransport && message.type === CrdtMessageType.PUT_COMPONENT && transformNeedsFix) {
|
|
251
|
-
const parent = findNetworkId(NetworkParent.get(entityId));
|
|
252
|
-
const transformData = networkUtils.fixTransformParent(message, Transform.get(entityId), parent.entityId);
|
|
253
|
-
const offset = buffer.currentWriteOffset();
|
|
254
|
-
PutComponentOperation.write(entityId, message.timestamp, message.componentId, transformData, buffer);
|
|
255
|
-
transportBuffer.writeBuffer(buffer.buffer().subarray(offset, buffer.currentWriteOffset()), false);
|
|
190
|
+
if (message.transportId === transports.indexOf(transport))
|
|
256
191
|
continue;
|
|
192
|
+
// Check if transport wants this message
|
|
193
|
+
if (transport.filter(message)) {
|
|
194
|
+
transportBuffer.writeBuffer(message.messageBuffer, false);
|
|
257
195
|
}
|
|
258
|
-
if (isRendererTransport && networkUtils.isNetworkMessage(message)) {
|
|
259
|
-
// If it's the renderer transport and its a NetworkMessage, we need to fix the entityId field and convert it to a known Message.
|
|
260
|
-
// PUT_NETWORK_COMPONENT -> PUT_COMPONENT
|
|
261
|
-
let transformData = 'data' in message ? message.data : new Uint8Array();
|
|
262
|
-
if (transformNeedsFix) {
|
|
263
|
-
const parent = findNetworkId(NetworkParent.get(entityId));
|
|
264
|
-
transformData = networkUtils.fixTransformParent(message, Transform.get(entityId), parent.entityId);
|
|
265
|
-
}
|
|
266
|
-
networkUtils.networkMessageToLocal({ ...message, data: transformData }, entityId, buffer, transportBuffer);
|
|
267
|
-
// Iterate the next message
|
|
268
|
-
continue;
|
|
269
|
-
}
|
|
270
|
-
// If its a network transport and its a PUT_COMPONENT that has a NetworkEntity component, we need to send this message
|
|
271
|
-
// through comms with the EntityID and NetworkID from ther NetworkEntity so everyone can recieve this message and map to their custom entityID.
|
|
272
|
-
if (isNetworkTransport && !networkUtils.isNetworkMessage(message)) {
|
|
273
|
-
const networkData = NetworkEntity.getOrNull(message.entityId);
|
|
274
|
-
// If it has networkData convert the message to PUT_NETWORK_COMPONENT.
|
|
275
|
-
if (networkData) {
|
|
276
|
-
networkUtils.localMessageToNetwork(message, networkData, buffer, transportBuffer);
|
|
277
|
-
// Iterate the next message
|
|
278
|
-
continue;
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
// Common message
|
|
282
|
-
transportBuffer.writeBuffer(message.messageBuffer, false);
|
|
283
|
-
}
|
|
284
|
-
if (isNetworkTransport && transportBuffer.currentWriteOffset()) {
|
|
285
|
-
__NetworkMessagesBuffer.push(transportBuffer.toBinary());
|
|
286
196
|
}
|
|
287
|
-
|
|
288
|
-
await transport.send(message);
|
|
197
|
+
await transport.send(transportBuffer.toBinary());
|
|
289
198
|
}
|
|
290
199
|
}
|
|
291
200
|
/**
|
package/dist/systems/events.d.ts
CHANGED
|
@@ -18,12 +18,6 @@ export type EventSystemOptions = {
|
|
|
18
18
|
showHighlight?: boolean;
|
|
19
19
|
maxPlayerDistance?: number;
|
|
20
20
|
};
|
|
21
|
-
/**
|
|
22
|
-
* @public
|
|
23
|
-
*/
|
|
24
|
-
export type EventSystemOptionsCallback = EventSystemOptions & {
|
|
25
|
-
cb: EventSystemCallback;
|
|
26
|
-
};
|
|
27
21
|
export declare const getDefaultOpts: (opts?: Partial<EventSystemOptions>) => EventSystemOptions;
|
|
28
22
|
/**
|
|
29
23
|
* @public
|
|
@@ -53,37 +47,11 @@ export interface PointerEventsSystem {
|
|
|
53
47
|
* @param entity - Entity where the callback was attached
|
|
54
48
|
*/
|
|
55
49
|
removeOnPointerHoverLeave(entity: Entity): void;
|
|
56
|
-
/**
|
|
57
|
-
* @public
|
|
58
|
-
* Remove the callback for onPointerDrag event
|
|
59
|
-
* @param entity - Entity where the callback was attached
|
|
60
|
-
*/
|
|
61
|
-
removeOnPointerDrag(entity: Entity): void;
|
|
62
|
-
/**
|
|
63
|
-
* @public
|
|
64
|
-
* Remove the callback for onPointerDragLocked event
|
|
65
|
-
* @param entity - Entity where the callback was attached
|
|
66
|
-
*/
|
|
67
|
-
removeOnPointerDragLocked(entity: Entity): void;
|
|
68
|
-
/**
|
|
69
|
-
* @public
|
|
70
|
-
* Remove the callback for onPointerDragEnd event
|
|
71
|
-
* @param entity - Entity where the callback was attached
|
|
72
|
-
*/
|
|
73
|
-
removeOnPointerDragEnd(entity: Entity): void;
|
|
74
|
-
/**
|
|
75
|
-
* @public
|
|
76
|
-
* Execute callbacks when the user presses one of the InputButtons pointing at the entity
|
|
77
|
-
* @param pointerData - Entity to attach the callbacks, list of options to trigger Feedback, Button, and Callback
|
|
78
|
-
*/
|
|
79
|
-
onPointerDown(pointerData: {
|
|
80
|
-
entity: Entity;
|
|
81
|
-
optsList: EventSystemOptionsCallback[];
|
|
82
|
-
}): void;
|
|
83
50
|
/**
|
|
84
51
|
* @public
|
|
85
52
|
* Execute callback when the user press the InputButton pointing at the entity
|
|
86
53
|
* @param pointerData - Entity to attach the callback, Opts to trigger Feedback and Button
|
|
54
|
+
* @param cb - Function to execute when click fires
|
|
87
55
|
*/
|
|
88
56
|
onPointerDown(pointerData: {
|
|
89
57
|
entity: Entity;
|
|
@@ -96,15 +64,6 @@ export interface PointerEventsSystem {
|
|
|
96
64
|
* @param opts - Opts to trigger Feedback and Button
|
|
97
65
|
*/
|
|
98
66
|
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
67
|
/**
|
|
109
68
|
* @public
|
|
110
69
|
* Execute callback when the user releases the InputButton pointing at the entity
|
|
@@ -142,64 +101,6 @@ export interface PointerEventsSystem {
|
|
|
142
101
|
entity: Entity;
|
|
143
102
|
opts?: Partial<EventSystemOptions>;
|
|
144
103
|
}, cb: EventSystemCallback): void;
|
|
145
|
-
/**
|
|
146
|
-
* @public
|
|
147
|
-
* Execute callbacks when the user drags the pointer from inside the entity
|
|
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
|
|
157
|
-
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
158
|
-
* @param cb - Function to execute when click fires
|
|
159
|
-
*/
|
|
160
|
-
onPointerDrag(pointerData: {
|
|
161
|
-
entity: Entity;
|
|
162
|
-
opts?: Partial<EventSystemOptions>;
|
|
163
|
-
}, cb: EventSystemCallback): void;
|
|
164
|
-
/**
|
|
165
|
-
* @public
|
|
166
|
-
* Execute callbacks when the user drags the pointer from inside the entity, locking the cursor in place.
|
|
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
|
|
177
|
-
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
178
|
-
* @param cb - Function to execute when click fires
|
|
179
|
-
*/
|
|
180
|
-
onPointerDragLocked(pointerData: {
|
|
181
|
-
entity: Entity;
|
|
182
|
-
opts?: Partial<EventSystemOptions>;
|
|
183
|
-
}, cb: EventSystemCallback): void;
|
|
184
|
-
/**
|
|
185
|
-
* @public
|
|
186
|
-
* Execute callbacks when the user releases a button after a drag
|
|
187
|
-
* @param pointerData - Entity to attach the callbacks, list of options to trigger Feedback, Button, and Callback
|
|
188
|
-
*/
|
|
189
|
-
onPointerDragEnd(pointerData: {
|
|
190
|
-
entity: Entity;
|
|
191
|
-
optsList: EventSystemOptionsCallback[];
|
|
192
|
-
}): void;
|
|
193
|
-
/**
|
|
194
|
-
* @public
|
|
195
|
-
* Execute callback when the user releases the button after a drag
|
|
196
|
-
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
197
|
-
* @param cb - Function to execute when click fires
|
|
198
|
-
*/
|
|
199
|
-
onPointerDragEnd(pointerData: {
|
|
200
|
-
entity: Entity;
|
|
201
|
-
opts?: Partial<EventSystemOptions>;
|
|
202
|
-
}, cb: EventSystemCallback): void;
|
|
203
104
|
}
|
|
204
105
|
/**
|
|
205
106
|
* @public
|