@dcl/ecs 7.29.1-35862852104.commit-1f44e80 → 7.29.1-35901015152.commit-d1b7b96
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/AvatarEquippedData.d.ts +15 -0
- package/dist/components/extended/AvatarEquippedData.js +10 -0
- package/dist/components/extended/AvatarShape.d.ts +15 -0
- package/dist/components/extended/AvatarShape.js +10 -0
- package/dist/components/extended/MeshCollider.d.ts +9 -0
- package/dist/components/extended/MeshCollider.js +6 -0
- package/dist/components/extended/MeshRenderer.d.ts +8 -0
- package/dist/components/extended/MeshRenderer.js +5 -0
- package/dist/components/generated/AvatarMovement.gen.d.ts +1 -0
- package/dist/components/generated/AvatarMovement.gen.js +25 -0
- package/dist/components/generated/AvatarMovementInfo.gen.d.ts +1 -0
- package/dist/components/generated/AvatarMovementInfo.gen.js +25 -0
- package/dist/components/generated/CameraLayer.gen.d.ts +1 -0
- package/dist/components/generated/CameraLayer.gen.js +25 -0
- package/dist/components/generated/CameraLayers.gen.d.ts +1 -0
- package/dist/components/generated/CameraLayers.gen.js +25 -0
- package/dist/components/generated/GlobalLight.gen.d.ts +1 -0
- package/dist/components/generated/GlobalLight.gen.js +25 -0
- package/dist/components/generated/GltfNode.gen.d.ts +1 -0
- package/dist/components/generated/GltfNode.gen.js +25 -0
- package/dist/components/generated/GltfNodeState.gen.d.ts +1 -0
- package/dist/components/generated/GltfNodeState.gen.js +25 -0
- package/dist/components/generated/TextureCamera.gen.d.ts +1 -0
- package/dist/components/generated/TextureCamera.gen.js +25 -0
- package/dist/components/generated/UiCanvas.gen.d.ts +1 -0
- package/dist/components/generated/UiCanvas.gen.js +25 -0
- package/dist/components/generated/UiScrollResult.gen.d.ts +1 -0
- package/dist/components/generated/UiScrollResult.gen.js +25 -0
- package/dist/components/generated/component-names.gen.js +10 -0
- package/dist/components/generated/global.gen.d.ts +20 -4
- package/dist/components/generated/global.gen.js +10 -2
- package/dist/components/generated/index.gen.d.ts +40 -0
- package/dist/components/generated/index.gen.js +50 -0
- package/dist/components/generated/pb/decentraland/common/texture.gen.d.ts +20 -0
- package/dist/components/generated/pb/decentraland/common/texture.gen.js +65 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_base.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_base.gen.js +17 -1
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +10 -1
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +10 -1
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.d.ts +57 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +204 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +65 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +228 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +10 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +30 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +104 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +14 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +50 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +10 -1
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +4 -1
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +3 -0
- package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +34 -0
- package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.js +61 -0
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +19 -0
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +46 -1
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +50 -0
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +41 -0
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +27 -0
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +59 -0
- package/dist/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +22 -0
- package/dist/components/generated/pb/decentraland/sdk/components/material.gen.js +57 -1
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +20 -0
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +56 -0
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +21 -3
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +56 -0
- package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +8 -2
- package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +3 -0
- package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.d.ts +13 -0
- package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.js +30 -0
- package/dist/components/generated/pb/decentraland/sdk/components/text_shape.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/text_shape.gen.js +10 -0
- package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +74 -0
- package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +191 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +19 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +60 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.js +10 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +6 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +30 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +15 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +42 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +10 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +35 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +90 -0
- package/dist/components/index.d.ts +4 -5
- package/dist/components/index.js +8 -5
- package/dist/components/manual/Transform.d.ts +0 -9
- package/dist/components/manual/Transform.js +3 -3
- package/dist/components/types.d.ts +2 -1
- package/dist/engine/component.d.ts +1 -52
- package/dist/engine/grow-only-value-set-component-definition.js +2 -45
- package/dist/engine/input.js +8 -8
- package/dist/engine/lww-element-set-component-definition.d.ts +1 -3
- package/dist/engine/lww-element-set-component-definition.js +27 -88
- package/dist/engine/readonly.d.ts +1 -1
- package/dist/engine/readonly.js +0 -10
- package/dist/index.d.ts +3 -2
- package/dist/index.js +3 -1
- package/dist/schemas/OneOf.js +1 -13
- package/dist/serialization/crdt/index.d.ts +0 -1
- package/dist/serialization/crdt/index.js +0 -1
- package/dist/serialization/crdt/network/utils.d.ts +9 -0
- package/dist/serialization/crdt/network/utils.js +60 -0
- package/dist/serialization/crdt/types.d.ts +3 -25
- package/dist/serialization/crdt/types.js +1 -3
- package/dist/systems/crdt/index.d.ts +1 -0
- package/dist/systems/crdt/index.js +143 -76
- package/dist/systems/crdt/types.d.ts +0 -10
- package/dist/systems/cyclicParentingChecker.js +4 -9
- package/dist/systems/events.d.ts +48 -0
- package/dist/systems/events.js +70 -48
- package/dist/systems/raycast.d.ts +5 -1
- package/dist/systems/raycast.js +5 -1
- package/dist-cjs/components/extended/AvatarEquippedData.d.ts +15 -0
- package/dist-cjs/components/extended/AvatarEquippedData.js +14 -0
- package/dist-cjs/components/extended/AvatarShape.d.ts +15 -0
- package/dist-cjs/components/extended/AvatarShape.js +14 -0
- package/dist-cjs/components/extended/MeshCollider.d.ts +9 -0
- package/dist-cjs/components/extended/MeshCollider.js +6 -0
- package/dist-cjs/components/extended/MeshRenderer.d.ts +8 -0
- package/dist-cjs/components/extended/MeshRenderer.js +5 -0
- package/dist-cjs/components/generated/AvatarMovement.gen.d.ts +1 -0
- package/dist-cjs/components/generated/AvatarMovement.gen.js +28 -0
- package/dist-cjs/components/generated/AvatarMovementInfo.gen.d.ts +1 -0
- package/dist-cjs/components/generated/AvatarMovementInfo.gen.js +28 -0
- package/dist-cjs/components/generated/CameraLayer.gen.d.ts +1 -0
- package/dist-cjs/components/generated/CameraLayer.gen.js +28 -0
- package/dist-cjs/components/generated/CameraLayers.gen.d.ts +1 -0
- package/dist-cjs/components/generated/CameraLayers.gen.js +28 -0
- package/dist-cjs/components/generated/GlobalLight.gen.d.ts +1 -0
- package/dist-cjs/components/generated/GlobalLight.gen.js +28 -0
- package/dist-cjs/components/generated/GltfNode.gen.d.ts +1 -0
- package/dist-cjs/components/generated/GltfNode.gen.js +28 -0
- package/dist-cjs/components/generated/GltfNodeState.gen.d.ts +1 -0
- package/dist-cjs/components/generated/GltfNodeState.gen.js +28 -0
- package/dist-cjs/components/generated/TextureCamera.gen.d.ts +1 -0
- package/dist-cjs/components/generated/TextureCamera.gen.js +28 -0
- package/dist-cjs/components/generated/UiCanvas.gen.d.ts +1 -0
- package/dist-cjs/components/generated/UiCanvas.gen.js +28 -0
- package/dist-cjs/components/generated/UiScrollResult.gen.d.ts +1 -0
- package/dist-cjs/components/generated/UiScrollResult.gen.js +28 -0
- package/dist-cjs/components/generated/component-names.gen.js +10 -0
- package/dist-cjs/components/generated/global.gen.d.ts +20 -4
- package/dist-cjs/components/generated/global.gen.js +12 -4
- package/dist-cjs/components/generated/index.gen.d.ts +40 -0
- package/dist-cjs/components/generated/index.gen.js +62 -2
- package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.d.ts +20 -0
- package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.js +66 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_base.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_base.gen.js +17 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +10 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +10 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.d.ts +57 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +210 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +65 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +234 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +10 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +30 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +110 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +14 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +56 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +10 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +4 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +3 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +34 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.js +67 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +19 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +46 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +50 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +47 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +27 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +65 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +22 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.js +58 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +20 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +57 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +21 -3
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +57 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +8 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +3 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/raycast.gen.d.ts +13 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/raycast.gen.js +31 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/text_shape.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/text_shape.gen.js +10 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +74 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +197 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +19 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +66 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.js +10 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +6 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +30 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +15 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +48 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +10 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +35 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +91 -1
- package/dist-cjs/components/index.d.ts +4 -5
- package/dist-cjs/components/index.js +11 -7
- package/dist-cjs/components/manual/Transform.d.ts +0 -9
- package/dist-cjs/components/manual/Transform.js +3 -3
- package/dist-cjs/components/types.d.ts +2 -1
- package/dist-cjs/engine/component.d.ts +1 -52
- package/dist-cjs/engine/grow-only-value-set-component-definition.js +1 -44
- package/dist-cjs/engine/input.js +8 -8
- package/dist-cjs/engine/lww-element-set-component-definition.d.ts +1 -3
- package/dist-cjs/engine/lww-element-set-component-definition.js +28 -91
- package/dist-cjs/engine/readonly.d.ts +1 -1
- package/dist-cjs/engine/readonly.js +0 -10
- package/dist-cjs/index.d.ts +3 -2
- package/dist-cjs/index.js +4 -2
- package/dist-cjs/schemas/OneOf.js +1 -13
- package/dist-cjs/serialization/crdt/index.d.ts +0 -1
- package/dist-cjs/serialization/crdt/index.js +0 -1
- package/dist-cjs/serialization/crdt/network/utils.d.ts +9 -0
- package/dist-cjs/serialization/crdt/network/utils.js +67 -0
- package/dist-cjs/serialization/crdt/types.d.ts +3 -25
- package/dist-cjs/serialization/crdt/types.js +1 -3
- package/dist-cjs/systems/crdt/index.d.ts +1 -0
- package/dist-cjs/systems/crdt/index.js +166 -76
- package/dist-cjs/systems/crdt/types.d.ts +0 -10
- package/dist-cjs/systems/cyclicParentingChecker.js +4 -9
- package/dist-cjs/systems/events.d.ts +48 -0
- package/dist-cjs/systems/events.js +70 -48
- package/dist-cjs/systems/raycast.d.ts +5 -1
- package/dist-cjs/systems/raycast.js +5 -1
- package/package.json +2 -2
- package/dist/components/manual/CreatedBy.d.ts +0 -9
- package/dist/components/manual/CreatedBy.js +0 -8
- package/dist/serialization/crdt/authoritativePutComponent.d.ts +0 -15
- package/dist/serialization/crdt/authoritativePutComponent.js +0 -47
- package/dist-cjs/components/manual/CreatedBy.d.ts +0 -9
- package/dist-cjs/components/manual/CreatedBy.js +0 -10
- package/dist-cjs/serialization/crdt/authoritativePutComponent.d.ts +0 -15
- package/dist-cjs/serialization/crdt/authoritativePutComponent.js +0 -50
|
@@ -47,21 +47,14 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
47
47
|
EventType[EventType["HoverLeave"] = 4] = "HoverLeave";
|
|
48
48
|
EventType[EventType["ProximityEnter"] = 5] = "ProximityEnter";
|
|
49
49
|
EventType[EventType["ProximityLeave"] = 6] = "ProximityLeave";
|
|
50
|
+
EventType[EventType["Drag"] = 7] = "Drag";
|
|
51
|
+
EventType[EventType["DragLocked"] = 8] = "DragLocked";
|
|
52
|
+
EventType[EventType["DragEnd"] = 9] = "DragEnd";
|
|
50
53
|
})(EventType || (EventType = {}));
|
|
51
54
|
const eventsMap = new Map();
|
|
52
55
|
function getEvent(entity) {
|
|
53
56
|
return eventsMap.get(entity) || eventsMap.set(entity, new Map()).get(entity);
|
|
54
57
|
}
|
|
55
|
-
// A cursor handler and a proximity handler are separate registrations that
|
|
56
|
-
// produce separate PointerEvents entries, so they need separate slots here
|
|
57
|
-
// too. Keying on the event type alone made onProximityDown evict whatever
|
|
58
|
-
// onPointerDown had left.
|
|
59
|
-
function eventKey(type, interactionType) {
|
|
60
|
-
return `${type}:${interactionType}`;
|
|
61
|
-
}
|
|
62
|
-
function setEvent(entity, type, cb, opts, interactionType = 0 /* InteractionType.CURSOR */) {
|
|
63
|
-
getEvent(entity).set(eventKey(type, interactionType), { cb, opts, eventType: type });
|
|
64
|
-
}
|
|
65
58
|
function setPointerEvent(entity, type, opts, interactionType = 0 /* InteractionType.CURSOR */) {
|
|
66
59
|
const pointerEvent = PointerEvents.getMutableOrNull(entity) || PointerEvents.create(entity);
|
|
67
60
|
pointerEvent.pointerEvents.push({
|
|
@@ -79,27 +72,13 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
79
72
|
interactionType: interactionType ?? 0 /* InteractionType.CURSOR */
|
|
80
73
|
});
|
|
81
74
|
}
|
|
82
|
-
function removePointerEvent(entity, type,
|
|
75
|
+
function removePointerEvent(entity, type, button, interactionType = 0 /* InteractionType.CURSOR */) {
|
|
83
76
|
const pointerEvent = PointerEvents.getMutableOrNull(entity);
|
|
84
77
|
if (!pointerEvent)
|
|
85
78
|
return;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
// everything the entry was built from, or removing one handler can take the
|
|
90
|
-
// other's descriptor and leave the renderer advertising the wrong interaction.
|
|
91
|
-
const index = pointerEvent.pointerEvents.findIndex((pointer) => sameSlot(pointer) &&
|
|
92
|
-
pointer.eventInfo?.button === opts.button &&
|
|
93
|
-
pointer.eventInfo?.hoverText === opts.hoverText &&
|
|
94
|
-
pointer.eventInfo?.showFeedback === opts.showFeedback &&
|
|
95
|
-
pointer.eventInfo?.showHighlight === opts.showHighlight &&
|
|
96
|
-
pointer.eventInfo?.maxDistance === opts.maxDistance &&
|
|
97
|
-
pointer.eventInfo?.maxPlayerDistance === opts.maxPlayerDistance &&
|
|
98
|
-
pointer.eventInfo?.priority === opts.priority &&
|
|
99
|
-
pointer.eventInfo?.maxCameraDistance === opts.maxCameraDistance);
|
|
100
|
-
if (index === -1)
|
|
101
|
-
return;
|
|
102
|
-
pointerEvent.pointerEvents.splice(index, 1);
|
|
79
|
+
pointerEvent.pointerEvents = pointerEvent.pointerEvents.filter((pointer) => !(pointer.eventInfo?.button === button &&
|
|
80
|
+
pointer.eventType === type &&
|
|
81
|
+
pointer.interactionType === interactionType));
|
|
103
82
|
}
|
|
104
83
|
function getPointerEvent(eventType) {
|
|
105
84
|
if (eventType === EventType.Up) {
|
|
@@ -117,20 +96,24 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
117
96
|
else if (eventType === EventType.ProximityLeave) {
|
|
118
97
|
return 5 /* PointerEventType.PET_PROXIMITY_LEAVE */;
|
|
119
98
|
}
|
|
99
|
+
else if (eventType === EventType.Drag) {
|
|
100
|
+
return 7 /* PointerEventType.PET_DRAG */;
|
|
101
|
+
}
|
|
102
|
+
else if (eventType === EventType.DragLocked) {
|
|
103
|
+
return 6 /* PointerEventType.PET_DRAG_LOCKED */;
|
|
104
|
+
}
|
|
105
|
+
else if (eventType === EventType.DragEnd) {
|
|
106
|
+
return 8 /* PointerEventType.PET_DRAG_END */;
|
|
107
|
+
}
|
|
120
108
|
return 1 /* PointerEventType.PET_DOWN */;
|
|
121
109
|
}
|
|
122
110
|
function removeEvent(entity, type, interactionType = 0 /* InteractionType.CURSOR */) {
|
|
123
111
|
const event = getEvent(entity);
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
// so every removal has to take one away. Gating on hoverText left the
|
|
128
|
-
// renderer showing an interaction whose callback was already gone, and made
|
|
129
|
-
// re-registering grow the component by one entry each time.
|
|
130
|
-
if (pointerEvent) {
|
|
131
|
-
removePointerEvent(entity, getPointerEvent(type), pointerEvent.opts, interactionType);
|
|
112
|
+
const pointerEvent = event.get(type);
|
|
113
|
+
if (pointerEvent?.opts.hoverText) {
|
|
114
|
+
removePointerEvent(entity, getPointerEvent(type), pointerEvent.opts.button);
|
|
132
115
|
}
|
|
133
|
-
event.delete(
|
|
116
|
+
event.delete(type);
|
|
134
117
|
}
|
|
135
118
|
engine.addSystem(function PointerEventSystem() {
|
|
136
119
|
for (const [entity, event] of eventsMap) {
|
|
@@ -138,7 +121,7 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
138
121
|
eventsMap.delete(entity);
|
|
139
122
|
continue;
|
|
140
123
|
}
|
|
141
|
-
for (const [, { cb, opts
|
|
124
|
+
for (const [eventType, { cb, opts }] of event) {
|
|
142
125
|
if (eventType === EventType.Click) {
|
|
143
126
|
const command = inputSystem.getClick(opts.button, entity);
|
|
144
127
|
if (command)
|
|
@@ -149,7 +132,10 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
149
132
|
eventType === EventType.HoverEnter ||
|
|
150
133
|
eventType === EventType.HoverLeave ||
|
|
151
134
|
eventType === EventType.ProximityEnter ||
|
|
152
|
-
eventType === EventType.ProximityLeave
|
|
135
|
+
eventType === EventType.ProximityLeave ||
|
|
136
|
+
eventType === EventType.Drag ||
|
|
137
|
+
eventType === EventType.DragLocked ||
|
|
138
|
+
eventType === EventType.DragEnd) {
|
|
153
139
|
const command = inputSystem.getInputCommand(opts.button, getPointerEvent(eventType), entity);
|
|
154
140
|
if (command) {
|
|
155
141
|
(0, invariant_1.checkNotThenable)(cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
|
|
@@ -166,7 +152,7 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
166
152
|
const { entity, opts } = data;
|
|
167
153
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
168
154
|
removeEvent(entity, EventType.Down);
|
|
169
|
-
|
|
155
|
+
getEvent(entity).set(EventType.Down, { cb, opts: options });
|
|
170
156
|
setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options);
|
|
171
157
|
};
|
|
172
158
|
const onPointerUp = (...args) => {
|
|
@@ -177,7 +163,7 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
177
163
|
const { entity, opts } = data;
|
|
178
164
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
179
165
|
removeEvent(entity, EventType.Up);
|
|
180
|
-
|
|
166
|
+
getEvent(entity).set(EventType.Up, { cb, opts: options });
|
|
181
167
|
setPointerEvent(entity, 0 /* PointerEventType.PET_UP */, options);
|
|
182
168
|
};
|
|
183
169
|
const onPointerHoverEnter = (...args) => {
|
|
@@ -185,7 +171,7 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
185
171
|
const { entity, opts } = data;
|
|
186
172
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
187
173
|
removeEvent(entity, EventType.HoverEnter);
|
|
188
|
-
|
|
174
|
+
getEvent(entity).set(EventType.HoverEnter, { cb, opts: options });
|
|
189
175
|
setPointerEvent(entity, 2 /* PointerEventType.PET_HOVER_ENTER */, options);
|
|
190
176
|
};
|
|
191
177
|
const onPointerHoverLeave = (...args) => {
|
|
@@ -193,15 +179,39 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
193
179
|
const { entity, opts } = data;
|
|
194
180
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
195
181
|
removeEvent(entity, EventType.HoverLeave);
|
|
196
|
-
|
|
182
|
+
getEvent(entity).set(EventType.HoverLeave, { cb, opts: options });
|
|
197
183
|
setPointerEvent(entity, 3 /* PointerEventType.PET_HOVER_LEAVE */, options);
|
|
198
184
|
};
|
|
185
|
+
const onPointerDrag = (...args) => {
|
|
186
|
+
const [data, cb] = args;
|
|
187
|
+
const { entity, opts } = data;
|
|
188
|
+
const options = (0, exports.getDefaultOpts)(opts);
|
|
189
|
+
removeEvent(entity, EventType.Drag);
|
|
190
|
+
getEvent(entity).set(EventType.Drag, { cb, opts: options });
|
|
191
|
+
setPointerEvent(entity, 7 /* PointerEventType.PET_DRAG */, options);
|
|
192
|
+
};
|
|
193
|
+
const onPointerDragLocked = (...args) => {
|
|
194
|
+
const [data, cb] = args;
|
|
195
|
+
const { entity, opts } = data;
|
|
196
|
+
const options = (0, exports.getDefaultOpts)(opts);
|
|
197
|
+
removeEvent(entity, EventType.DragLocked);
|
|
198
|
+
getEvent(entity).set(EventType.DragLocked, { cb, opts: options });
|
|
199
|
+
setPointerEvent(entity, 6 /* PointerEventType.PET_DRAG_LOCKED */, options);
|
|
200
|
+
};
|
|
201
|
+
const onPointerDragEnd = (...args) => {
|
|
202
|
+
const [data, cb] = args;
|
|
203
|
+
const { entity, opts } = data;
|
|
204
|
+
const options = (0, exports.getDefaultOpts)(opts);
|
|
205
|
+
removeEvent(entity, EventType.DragEnd);
|
|
206
|
+
getEvent(entity).set(EventType.DragEnd, { cb, opts: options });
|
|
207
|
+
setPointerEvent(entity, 8 /* PointerEventType.PET_DRAG_END */, options);
|
|
208
|
+
};
|
|
199
209
|
const onProximityDown = (...args) => {
|
|
200
210
|
const [data, cb] = args;
|
|
201
211
|
const { entity, opts } = data;
|
|
202
212
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
203
213
|
removeEvent(entity, EventType.Down, 1 /* InteractionType.PROXIMITY */);
|
|
204
|
-
|
|
214
|
+
getEvent(entity).set(EventType.Down, { cb, opts: options });
|
|
205
215
|
setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options, 1 /* InteractionType.PROXIMITY */);
|
|
206
216
|
};
|
|
207
217
|
const onProximityUp = (...args) => {
|
|
@@ -209,7 +219,7 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
209
219
|
const { entity, opts } = data;
|
|
210
220
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
211
221
|
removeEvent(entity, EventType.Up, 1 /* InteractionType.PROXIMITY */);
|
|
212
|
-
|
|
222
|
+
getEvent(entity).set(EventType.Up, { cb, opts: options });
|
|
213
223
|
setPointerEvent(entity, 0 /* PointerEventType.PET_UP */, options, 1 /* InteractionType.PROXIMITY */);
|
|
214
224
|
};
|
|
215
225
|
const onProximityEnter = (...args) => {
|
|
@@ -217,7 +227,7 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
217
227
|
const { entity, opts } = data;
|
|
218
228
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
219
229
|
removeEvent(entity, EventType.ProximityEnter, 1 /* InteractionType.PROXIMITY */);
|
|
220
|
-
|
|
230
|
+
getEvent(entity).set(EventType.ProximityEnter, { cb, opts: options });
|
|
221
231
|
setPointerEvent(entity, 4 /* PointerEventType.PET_PROXIMITY_ENTER */, options, 1 /* InteractionType.PROXIMITY */);
|
|
222
232
|
};
|
|
223
233
|
const onProximityLeave = (...args) => {
|
|
@@ -225,7 +235,7 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
225
235
|
const { entity, opts } = data;
|
|
226
236
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
227
237
|
removeEvent(entity, EventType.ProximityLeave, 1 /* InteractionType.PROXIMITY */);
|
|
228
|
-
|
|
238
|
+
getEvent(entity).set(EventType.ProximityLeave, { cb, opts: options });
|
|
229
239
|
setPointerEvent(entity, 5 /* PointerEventType.PET_PROXIMITY_LEAVE */, options, 1 /* InteractionType.PROXIMITY */);
|
|
230
240
|
};
|
|
231
241
|
return {
|
|
@@ -244,6 +254,15 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
244
254
|
removeOnPointerHoverLeave(entity) {
|
|
245
255
|
removeEvent(entity, EventType.HoverLeave);
|
|
246
256
|
},
|
|
257
|
+
removeOnPointerDrag(entity) {
|
|
258
|
+
removeEvent(entity, EventType.Drag);
|
|
259
|
+
},
|
|
260
|
+
removeOnPointerDragLocked(entity) {
|
|
261
|
+
removeEvent(entity, EventType.DragLocked);
|
|
262
|
+
},
|
|
263
|
+
removeOnPointerDragEnd(entity) {
|
|
264
|
+
removeEvent(entity, EventType.DragEnd);
|
|
265
|
+
},
|
|
247
266
|
removeOnProximityDown(entity) {
|
|
248
267
|
removeEvent(entity, EventType.Down, 1 /* InteractionType.PROXIMITY */);
|
|
249
268
|
},
|
|
@@ -262,13 +281,16 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
262
281
|
// Clear previous event with over feedback included
|
|
263
282
|
removeEvent(entity, EventType.Click);
|
|
264
283
|
// Set new event
|
|
265
|
-
|
|
284
|
+
getEvent(entity).set(EventType.Click, { cb, opts: options });
|
|
266
285
|
setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options);
|
|
267
286
|
},
|
|
268
287
|
onPointerDown,
|
|
269
288
|
onPointerUp,
|
|
270
289
|
onPointerHoverEnter,
|
|
271
290
|
onPointerHoverLeave,
|
|
291
|
+
onPointerDrag,
|
|
292
|
+
onPointerDragLocked,
|
|
293
|
+
onPointerDragEnd,
|
|
272
294
|
onProximityDown,
|
|
273
295
|
onProximityUp,
|
|
274
296
|
onProximityEnter,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RaycastQueryType, PBRaycastResult } from '../components';
|
|
1
|
+
import { RaycastQueryType, RaycastShape, PBRaycastResult } from '../components';
|
|
2
2
|
import { DeepReadonlyObject, Entity } from '../engine';
|
|
3
3
|
import { Vector3 } from '../components/generated/pb/decentraland/common/vectors.gen';
|
|
4
4
|
/**
|
|
@@ -14,6 +14,10 @@ export type RaycastSystemOptions = {
|
|
|
14
14
|
queryType: RaycastQueryType;
|
|
15
15
|
continuous?: boolean | undefined;
|
|
16
16
|
collisionMask?: number | undefined;
|
|
17
|
+
/** shape to sweep along the ray, default RS_RAY (a point) */
|
|
18
|
+
shape?: RaycastShape | undefined;
|
|
19
|
+
/** include colliders from other scenes, default false */
|
|
20
|
+
includeWorld?: boolean | undefined;
|
|
17
21
|
};
|
|
18
22
|
export type LocalDirectionRaycastSystemOptions = {
|
|
19
23
|
direction?: Vector3;
|
|
@@ -38,7 +38,9 @@ function createRaycastSystem(engine) {
|
|
|
38
38
|
queryType: 0 /* RaycastQueryType.RQT_HIT_FIRST */,
|
|
39
39
|
continuous: false,
|
|
40
40
|
originOffset: { x: 0, y: 0, z: 0 },
|
|
41
|
-
collisionMask: 2 /* ColliderLayer.CL_PHYSICS
|
|
41
|
+
collisionMask: 2 /* ColliderLayer.CL_PHYSICS */,
|
|
42
|
+
shape: 0 /* RaycastShape.RS_RAY */,
|
|
43
|
+
includeWorld: false
|
|
42
44
|
};
|
|
43
45
|
const getLocalDirectionRaycastDefaultOptions = (options = {}) => ({
|
|
44
46
|
...defaultOptions,
|
|
@@ -84,6 +86,8 @@ function createRaycastSystem(engine) {
|
|
|
84
86
|
raycast.direction = raycastValue.directionRawValue;
|
|
85
87
|
raycast.continuous = raycastValue.continuous;
|
|
86
88
|
raycast.queryType = raycastValue.queryType;
|
|
89
|
+
raycast.shape = raycastValue.shape;
|
|
90
|
+
raycast.includeWorld = raycastValue.includeWorld;
|
|
87
91
|
entitiesCallbackResultMap.set(entity, { callback: callback });
|
|
88
92
|
};
|
|
89
93
|
nextTickRaycasts.push(onNextTick);
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcl/ecs",
|
|
3
3
|
"description": "Decentraland ECS",
|
|
4
|
-
"version": "7.29.1-
|
|
4
|
+
"version": "7.29.1-35901015152.commit-d1b7b96",
|
|
5
5
|
"author": "DCL",
|
|
6
6
|
"bugs": "https://github.com/decentraland/ecs/issues",
|
|
7
7
|
"files": [
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"dependencies": {},
|
|
35
35
|
"types": "./dist/index.d.ts",
|
|
36
36
|
"typings": "./dist/index.d.ts",
|
|
37
|
-
"commit": "
|
|
37
|
+
"commit": "d1b7b964cd184465c1b65118e47b5dc6be68a184"
|
|
38
38
|
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine/types';
|
|
2
|
-
export interface ICreatedByType {
|
|
3
|
-
address: string;
|
|
4
|
-
}
|
|
5
|
-
export type ICreatedBy = LastWriteWinElementSetComponentDefinition<ICreatedByType>;
|
|
6
|
-
declare function defineCreatedBy(engine: Pick<IEngine, 'defineComponent'>): import("../../engine/types").MapComponentDefinition<import("../..").MapResult<{
|
|
7
|
-
address: import("../../schemas").ISchema<string>;
|
|
8
|
-
}>>;
|
|
9
|
-
export default defineCreatedBy;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Entity } from '../../engine/entity';
|
|
2
|
-
import { ByteBuffer } from '../ByteBuffer';
|
|
3
|
-
import { AuthoritativePutComponentMessage } from './types';
|
|
4
|
-
/**
|
|
5
|
-
* @public
|
|
6
|
-
*/
|
|
7
|
-
export declare namespace AuthoritativePutComponentOperation {
|
|
8
|
-
const MESSAGE_HEADER_LENGTH = 16;
|
|
9
|
-
/**
|
|
10
|
-
* Call this function for an optimal writing data passing the ByteBuffer
|
|
11
|
-
* already allocated
|
|
12
|
-
*/
|
|
13
|
-
function write(entity: Entity, timestamp: number, componentId: number, data: Uint8Array, buf: ByteBuffer): void;
|
|
14
|
-
function read(buf: ByteBuffer): AuthoritativePutComponentMessage | null;
|
|
15
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { CrdtMessageProtocol } from './crdtMessageProtocol';
|
|
2
|
-
import { CrdtMessageType, CRDT_MESSAGE_HEADER_LENGTH } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* @public
|
|
5
|
-
*/
|
|
6
|
-
export var AuthoritativePutComponentOperation;
|
|
7
|
-
(function (AuthoritativePutComponentOperation) {
|
|
8
|
-
AuthoritativePutComponentOperation.MESSAGE_HEADER_LENGTH = 16;
|
|
9
|
-
/**
|
|
10
|
-
* Call this function for an optimal writing data passing the ByteBuffer
|
|
11
|
-
* already allocated
|
|
12
|
-
*/
|
|
13
|
-
function write(entity, timestamp, componentId, data, buf) {
|
|
14
|
-
// reserve the beginning
|
|
15
|
-
const startMessageOffset = buf.incrementWriteOffset(CRDT_MESSAGE_HEADER_LENGTH + AuthoritativePutComponentOperation.MESSAGE_HEADER_LENGTH);
|
|
16
|
-
// write body
|
|
17
|
-
buf.writeBuffer(data, false);
|
|
18
|
-
const messageLength = buf.currentWriteOffset() - startMessageOffset;
|
|
19
|
-
// Write CrdtMessage header
|
|
20
|
-
buf.setUint32(startMessageOffset, messageLength);
|
|
21
|
-
buf.setUint32(startMessageOffset + 4, CrdtMessageType.AUTHORITATIVE_PUT_COMPONENT);
|
|
22
|
-
// Write ComponentOperation header
|
|
23
|
-
buf.setUint32(startMessageOffset + 8, entity);
|
|
24
|
-
buf.setUint32(startMessageOffset + 12, componentId);
|
|
25
|
-
buf.setUint32(startMessageOffset + 16, timestamp);
|
|
26
|
-
const newLocal = messageLength - AuthoritativePutComponentOperation.MESSAGE_HEADER_LENGTH - CRDT_MESSAGE_HEADER_LENGTH;
|
|
27
|
-
buf.setUint32(startMessageOffset + 20, newLocal);
|
|
28
|
-
}
|
|
29
|
-
AuthoritativePutComponentOperation.write = write;
|
|
30
|
-
function read(buf) {
|
|
31
|
-
const header = CrdtMessageProtocol.readHeader(buf);
|
|
32
|
-
if (!header) {
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
|
-
if (header.type !== CrdtMessageType.AUTHORITATIVE_PUT_COMPONENT) {
|
|
36
|
-
throw new Error('AuthoritativePutComponentOperation tried to read another message type.');
|
|
37
|
-
}
|
|
38
|
-
return {
|
|
39
|
-
...header,
|
|
40
|
-
entityId: buf.readUint32(),
|
|
41
|
-
componentId: buf.readUint32(),
|
|
42
|
-
timestamp: buf.readUint32(),
|
|
43
|
-
data: buf.readBuffer()
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
AuthoritativePutComponentOperation.read = read;
|
|
47
|
-
})(AuthoritativePutComponentOperation || (AuthoritativePutComponentOperation = {}));
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine/types';
|
|
2
|
-
export interface ICreatedByType {
|
|
3
|
-
address: string;
|
|
4
|
-
}
|
|
5
|
-
export type ICreatedBy = LastWriteWinElementSetComponentDefinition<ICreatedByType>;
|
|
6
|
-
declare function defineCreatedBy(engine: Pick<IEngine, 'defineComponent'>): import("../../engine/types").MapComponentDefinition<import("../..").MapResult<{
|
|
7
|
-
address: import("../../schemas").ISchema<string>;
|
|
8
|
-
}>>;
|
|
9
|
-
export default defineCreatedBy;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const schemas_1 = require("../../schemas");
|
|
4
|
-
function defineCreatedBy(engine) {
|
|
5
|
-
const CreatedBy = engine.defineComponent('core-schema::Created-By', {
|
|
6
|
-
address: schemas_1.Schemas.String
|
|
7
|
-
});
|
|
8
|
-
return CreatedBy;
|
|
9
|
-
}
|
|
10
|
-
exports.default = defineCreatedBy;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Entity } from '../../engine/entity';
|
|
2
|
-
import { ByteBuffer } from '../ByteBuffer';
|
|
3
|
-
import { AuthoritativePutComponentMessage } from './types';
|
|
4
|
-
/**
|
|
5
|
-
* @public
|
|
6
|
-
*/
|
|
7
|
-
export declare namespace AuthoritativePutComponentOperation {
|
|
8
|
-
const MESSAGE_HEADER_LENGTH = 16;
|
|
9
|
-
/**
|
|
10
|
-
* Call this function for an optimal writing data passing the ByteBuffer
|
|
11
|
-
* already allocated
|
|
12
|
-
*/
|
|
13
|
-
function write(entity: Entity, timestamp: number, componentId: number, data: Uint8Array, buf: ByteBuffer): void;
|
|
14
|
-
function read(buf: ByteBuffer): AuthoritativePutComponentMessage | null;
|
|
15
|
-
}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AuthoritativePutComponentOperation = void 0;
|
|
4
|
-
const crdtMessageProtocol_1 = require("./crdtMessageProtocol");
|
|
5
|
-
const types_1 = require("./types");
|
|
6
|
-
/**
|
|
7
|
-
* @public
|
|
8
|
-
*/
|
|
9
|
-
var AuthoritativePutComponentOperation;
|
|
10
|
-
(function (AuthoritativePutComponentOperation) {
|
|
11
|
-
AuthoritativePutComponentOperation.MESSAGE_HEADER_LENGTH = 16;
|
|
12
|
-
/**
|
|
13
|
-
* Call this function for an optimal writing data passing the ByteBuffer
|
|
14
|
-
* already allocated
|
|
15
|
-
*/
|
|
16
|
-
function write(entity, timestamp, componentId, data, buf) {
|
|
17
|
-
// reserve the beginning
|
|
18
|
-
const startMessageOffset = buf.incrementWriteOffset(types_1.CRDT_MESSAGE_HEADER_LENGTH + AuthoritativePutComponentOperation.MESSAGE_HEADER_LENGTH);
|
|
19
|
-
// write body
|
|
20
|
-
buf.writeBuffer(data, false);
|
|
21
|
-
const messageLength = buf.currentWriteOffset() - startMessageOffset;
|
|
22
|
-
// Write CrdtMessage header
|
|
23
|
-
buf.setUint32(startMessageOffset, messageLength);
|
|
24
|
-
buf.setUint32(startMessageOffset + 4, types_1.CrdtMessageType.AUTHORITATIVE_PUT_COMPONENT);
|
|
25
|
-
// Write ComponentOperation header
|
|
26
|
-
buf.setUint32(startMessageOffset + 8, entity);
|
|
27
|
-
buf.setUint32(startMessageOffset + 12, componentId);
|
|
28
|
-
buf.setUint32(startMessageOffset + 16, timestamp);
|
|
29
|
-
const newLocal = messageLength - AuthoritativePutComponentOperation.MESSAGE_HEADER_LENGTH - types_1.CRDT_MESSAGE_HEADER_LENGTH;
|
|
30
|
-
buf.setUint32(startMessageOffset + 20, newLocal);
|
|
31
|
-
}
|
|
32
|
-
AuthoritativePutComponentOperation.write = write;
|
|
33
|
-
function read(buf) {
|
|
34
|
-
const header = crdtMessageProtocol_1.CrdtMessageProtocol.readHeader(buf);
|
|
35
|
-
if (!header) {
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
if (header.type !== types_1.CrdtMessageType.AUTHORITATIVE_PUT_COMPONENT) {
|
|
39
|
-
throw new Error('AuthoritativePutComponentOperation tried to read another message type.');
|
|
40
|
-
}
|
|
41
|
-
return {
|
|
42
|
-
...header,
|
|
43
|
-
entityId: buf.readUint32(),
|
|
44
|
-
componentId: buf.readUint32(),
|
|
45
|
-
timestamp: buf.readUint32(),
|
|
46
|
-
data: buf.readBuffer()
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
AuthoritativePutComponentOperation.read = read;
|
|
50
|
-
})(AuthoritativePutComponentOperation = exports.AuthoritativePutComponentOperation || (exports.AuthoritativePutComponentOperation = {}));
|