@dcl/ecs 7.29.1-35901015152.commit-d1b7b96 → 7.29.1-35917671376.commit-046b268
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 -9
- 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/generated/ExplorerItemPurchaseResult.gen.js +25 -0
- package/dist/components/generated/component-names.gen.js +1 -10
- package/dist/components/generated/global.gen.d.ts +6 -20
- package/dist/components/generated/global.gen.js +3 -10
- package/dist/components/generated/index.gen.d.ts +4 -40
- package/dist/components/generated/index.gen.js +7 -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/avatar_base.gen.d.ts +0 -2
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_base.gen.js +1 -17
- 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 -2
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +1 -10
- 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 +0 -2
- package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +1 -10
- package/dist/components/generated/pb/decentraland/sdk/components/common/explorer_ui.gen.d.ts +4 -2
- package/dist/components/generated/pb/decentraland/sdk/components/common/explorer_ui.gen.js +3 -1
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +1 -4
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +0 -3
- package/dist/components/generated/pb/decentraland/sdk/components/explorer_item_purchase_result.gen.d.ts +68 -0
- package/dist/components/generated/pb/decentraland/sdk/components/explorer_item_purchase_result.gen.js +184 -0
- package/dist/components/generated/pb/decentraland/sdk/components/explorer_ui_events_result.gen.d.ts +8 -3
- package/dist/components/generated/pb/decentraland/sdk/components/explorer_ui_events_result.gen.js +10 -1
- 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/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/text_shape.gen.d.ts +0 -2
- package/dist/components/generated/pb/decentraland/sdk/components/text_shape.gen.js +0 -10
- package/dist/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.d.ts +0 -2
- package/dist/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.js +0 -10
- package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +0 -6
- package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +0 -30
- package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +0 -2
- package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +0 -10
- 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 +0 -4
- package/dist/components/index.js +0 -6
- package/dist/components/types.d.ts +0 -2
- package/dist/engine/input.js +8 -8
- package/dist/engine/lww-element-set-component-definition.js +20 -14
- package/dist/engine/readonly.d.ts +1 -1
- package/dist/engine/readonly.js +10 -0
- package/dist/index.d.ts +1 -3
- package/dist/index.js +0 -3
- package/dist/schemas/OneOf.js +13 -1
- package/dist/systems/cyclicParentingChecker.js +9 -4
- package/dist/systems/events.d.ts +0 -48
- package/dist/systems/events.js +48 -70
- package/dist/systems/raycast.d.ts +1 -5
- package/dist/systems/raycast.js +1 -5
- package/dist-cjs/components/extended/MeshCollider.d.ts +0 -9
- 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/generated/ExplorerItemPurchaseResult.gen.js +28 -0
- package/dist-cjs/components/generated/component-names.gen.js +1 -10
- package/dist-cjs/components/generated/global.gen.d.ts +6 -20
- package/dist-cjs/components/generated/global.gen.js +5 -12
- package/dist-cjs/components/generated/index.gen.d.ts +4 -40
- package/dist-cjs/components/generated/index.gen.js +10 -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/avatar_base.gen.d.ts +0 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_base.gen.js +1 -17
- 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 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +1 -10
- 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 +0 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +1 -10
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/explorer_ui.gen.d.ts +4 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/explorer_ui.gen.js +3 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +1 -4
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +0 -3
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/explorer_item_purchase_result.gen.d.ts +68 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/explorer_item_purchase_result.gen.js +190 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/explorer_ui_events_result.gen.d.ts +8 -3
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/explorer_ui_events_result.gen.js +10 -1
- 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/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/text_shape.gen.d.ts +0 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/text_shape.gen.js +0 -10
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.d.ts +0 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.js +0 -10
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +0 -6
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +0 -30
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +0 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +0 -10
- 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 +0 -4
- package/dist-cjs/components/index.js +1 -9
- package/dist-cjs/components/types.d.ts +0 -2
- package/dist-cjs/engine/input.js +8 -8
- package/dist-cjs/engine/lww-element-set-component-definition.js +20 -14
- package/dist-cjs/engine/readonly.d.ts +1 -1
- package/dist-cjs/engine/readonly.js +10 -0
- package/dist-cjs/index.d.ts +1 -3
- package/dist-cjs/index.js +1 -4
- package/dist-cjs/schemas/OneOf.js +13 -1
- package/dist-cjs/systems/cyclicParentingChecker.js +9 -4
- package/dist-cjs/systems/events.d.ts +0 -48
- package/dist-cjs/systems/events.js +48 -70
- package/dist-cjs/systems/raycast.d.ts +1 -5
- package/dist-cjs/systems/raycast.js +1 -5
- package/package.json +2 -2
- package/dist/components/extended/AvatarEquippedData.d.ts +0 -15
- package/dist/components/extended/AvatarEquippedData.js +0 -10
- package/dist/components/extended/AvatarShape.d.ts +0 -15
- package/dist/components/extended/AvatarShape.js +0 -10
- 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_movement.gen.d.ts +0 -57
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +0 -204
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +0 -65
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +0 -228
- 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 -15
- package/dist-cjs/components/extended/AvatarEquippedData.js +0 -14
- package/dist-cjs/components/extended/AvatarShape.d.ts +0 -15
- package/dist-cjs/components/extended/AvatarShape.js +0 -14
- 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.d.ts +0 -1
- 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_movement.gen.d.ts +0 -57
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +0 -210
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +0 -65
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +0 -234
- 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/AvatarMovementInfo.gen.d.ts → dist/components/generated/ExplorerItemPurchaseResult.gen.d.ts} +0 -0
- /package/dist-cjs/components/generated/{AvatarMovement.gen.d.ts → ExplorerItemPurchaseResult.gen.d.ts} +0 -0
package/dist/engine/input.js
CHANGED
|
@@ -57,22 +57,22 @@ export function createInputSystem(engine) {
|
|
|
57
57
|
const arrayCommands = Array.from(commands);
|
|
58
58
|
for (let i = arrayCommands.length - 1; i >= 0; i--) {
|
|
59
59
|
const command = arrayCommands[i];
|
|
60
|
+
// Commands are kept sorted by timestamp, so this one and every one
|
|
61
|
+
// below it belongs to a frame that was already accounted for. Stopping
|
|
62
|
+
// on the button state instead would end this entity's whole loop over
|
|
63
|
+
// a button another entity had already reported this frame.
|
|
64
|
+
if (command.timestamp <= globalState.previousFrameMaxTimestamp) {
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
60
67
|
if (command.timestamp > maxTimestamp) {
|
|
61
68
|
maxTimestamp = command.timestamp;
|
|
62
69
|
}
|
|
63
|
-
|
|
64
|
-
globalState.thisFrameCommands.push(command);
|
|
65
|
-
}
|
|
70
|
+
globalState.thisFrameCommands.push(command);
|
|
66
71
|
if (command.state === 0 /* PointerEventType.PET_UP */ || command.state === 1 /* PointerEventType.PET_DOWN */) {
|
|
67
72
|
const prevCommand = globalState.buttonState.get(command.button);
|
|
68
73
|
if (!prevCommand || command.timestamp > prevCommand.timestamp) {
|
|
69
74
|
globalState.buttonState.set(command.button, command);
|
|
70
75
|
}
|
|
71
|
-
else {
|
|
72
|
-
// since we are iterating a descending array, we can early finish the
|
|
73
|
-
// loop
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
}
|
|
@@ -201,12 +201,16 @@ export function createComponentDefinitionFromSchema(componentName, componentId,
|
|
|
201
201
|
return data.has(entity);
|
|
202
202
|
},
|
|
203
203
|
deleteFrom(entity, markAsDirty = true) {
|
|
204
|
+
// Presence, not truthiness: a component defined from a primitive schema can
|
|
205
|
+
// legitimately hold 0, false or an empty string, and deleting one must still
|
|
206
|
+
// return the value that was there.
|
|
207
|
+
const had = data.has(entity);
|
|
204
208
|
const component = data.get(entity);
|
|
205
209
|
if (data.delete(entity) && markAsDirty) {
|
|
206
210
|
dirtyIterator.add(entity);
|
|
207
211
|
}
|
|
208
212
|
lastSentData.delete(entity);
|
|
209
|
-
return component
|
|
213
|
+
return had ? component : null;
|
|
210
214
|
},
|
|
211
215
|
entityDeleted(entity, markAsDirty) {
|
|
212
216
|
if (data.delete(entity) && markAsDirty) {
|
|
@@ -215,19 +219,20 @@ export function createComponentDefinitionFromSchema(componentName, componentId,
|
|
|
215
219
|
lastSentData.delete(entity);
|
|
216
220
|
},
|
|
217
221
|
getOrNull(entity) {
|
|
218
|
-
|
|
219
|
-
|
|
222
|
+
// Presence, not truthiness: a component defined from a primitive schema
|
|
223
|
+
// can legitimately hold 0, false or an empty string.
|
|
224
|
+
if (!data.has(entity))
|
|
225
|
+
return null;
|
|
226
|
+
return deepReadonly(data.get(entity));
|
|
220
227
|
},
|
|
221
228
|
get(entity) {
|
|
222
|
-
|
|
223
|
-
if (!component) {
|
|
229
|
+
if (!data.has(entity)) {
|
|
224
230
|
throw new Error(`[getFrom] Component ${componentName} for entity #${entity} not found`);
|
|
225
231
|
}
|
|
226
|
-
return deepReadonly(
|
|
232
|
+
return deepReadonly(data.get(entity));
|
|
227
233
|
},
|
|
228
234
|
create(entity, value) {
|
|
229
|
-
|
|
230
|
-
if (component) {
|
|
235
|
+
if (data.has(entity)) {
|
|
231
236
|
throw new Error(`[create] Component ${componentName} for ${entity} already exists`);
|
|
232
237
|
}
|
|
233
238
|
const usedValue = value === undefined ? schema.create() : schema.extend ? schema.extend(value) : value;
|
|
@@ -243,21 +248,22 @@ export function createComponentDefinitionFromSchema(componentName, componentId,
|
|
|
243
248
|
return usedValue;
|
|
244
249
|
},
|
|
245
250
|
getMutableOrNull(entity) {
|
|
246
|
-
|
|
247
|
-
if (!
|
|
251
|
+
// Presence, not truthiness, so a falsy primitive value is still mutable.
|
|
252
|
+
if (!data.has(entity)) {
|
|
248
253
|
return null;
|
|
249
254
|
}
|
|
250
255
|
dirtyIterator.add(entity);
|
|
251
|
-
return
|
|
256
|
+
return data.get(entity);
|
|
252
257
|
},
|
|
253
258
|
getOrCreateMutable(entity, value) {
|
|
254
|
-
|
|
255
|
-
|
|
259
|
+
// Presence, not truthiness: a stored 0/false/'' must not be treated as absent,
|
|
260
|
+
// which would send this through create() and throw "already exists".
|
|
261
|
+
if (!data.has(entity)) {
|
|
256
262
|
return this.create(entity, value);
|
|
257
263
|
}
|
|
258
264
|
else {
|
|
259
265
|
dirtyIterator.add(entity);
|
|
260
|
-
return
|
|
266
|
+
return data.get(entity);
|
|
261
267
|
}
|
|
262
268
|
},
|
|
263
269
|
getMutable(entity) {
|
package/dist/engine/readonly.js
CHANGED
|
@@ -2,5 +2,15 @@
|
|
|
2
2
|
* @internal
|
|
3
3
|
*/
|
|
4
4
|
export function deepReadonly(val) {
|
|
5
|
+
// A component can be defined straight from a primitive or array schema, not
|
|
6
|
+
// only from a Map, which is why this is no longer constrained to an object.
|
|
7
|
+
// Spreading those threw the value away: a number came back as {}, an array
|
|
8
|
+
// as an object keyed by index.
|
|
9
|
+
if (val === null || typeof val !== 'object') {
|
|
10
|
+
return val;
|
|
11
|
+
}
|
|
12
|
+
if (Array.isArray(val)) {
|
|
13
|
+
return Object.freeze([...val]);
|
|
14
|
+
}
|
|
5
15
|
return Object.freeze({ ...val });
|
|
6
16
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export * from './systems/triggerArea';
|
|
|
16
16
|
export * from './systems/physics';
|
|
17
17
|
export * from './engine/entity';
|
|
18
18
|
export * from './components/types';
|
|
19
|
-
import { MaterialComponentDefinitionExtended, MeshColliderComponentDefinitionExtended, MeshRendererComponentDefinitionExtended,
|
|
19
|
+
import { MaterialComponentDefinitionExtended, MeshColliderComponentDefinitionExtended, MeshRendererComponentDefinitionExtended, TransformComponentExtended, AnimatorComponentDefinitionExtended, AudioSourceComponentDefinitionExtended, AudioAnalysisComponentDefinitionExtended, AudioStreamComponentDefinitionExtended, ISyncComponents, TweenComponentDefinitionExtended, INetowrkEntity, INetowrkParent, VirtualCameraComponentDefinitionExtended, InputModifierComponentDefinitionExtended, LightSourceComponentDefinitionExtended, TriggerAreaComponentDefinitionExtended, ParticleSystemComponentDefinitionExtended, TouchScreenControlsComponentDefinitionExtended } from './components/types';
|
|
20
20
|
import { NameComponent } from './components/manual/Name';
|
|
21
21
|
import { TagsComponentDefinitionExtended } from './components/manual/Tags';
|
|
22
22
|
export declare const Transform: TransformComponentExtended;
|
|
@@ -27,8 +27,6 @@ export declare const AudioStream: AudioStreamComponentDefinitionExtended;
|
|
|
27
27
|
export declare const Material: MaterialComponentDefinitionExtended;
|
|
28
28
|
export declare const MeshRenderer: MeshRendererComponentDefinitionExtended;
|
|
29
29
|
export declare const MeshCollider: MeshColliderComponentDefinitionExtended;
|
|
30
|
-
export declare const AvatarShape: AvatarShapeComponentDefinitionExtended;
|
|
31
|
-
export declare const AvatarEquippedData: AvatarEquippedDataComponentDefinitionExtended;
|
|
32
30
|
export declare const Name: NameComponent;
|
|
33
31
|
export declare const Tags: TagsComponentDefinitionExtended;
|
|
34
32
|
export declare const Tween: TweenComponentDefinitionExtended;
|
package/dist/index.js
CHANGED
|
@@ -31,9 +31,6 @@ export const AudioStream = /* @__PURE__*/ components.AudioStream(engine);
|
|
|
31
31
|
export const Material = /* @__PURE__*/ components.Material(engine);
|
|
32
32
|
export const MeshRenderer = /* @__PURE__*/ components.MeshRenderer(engine);
|
|
33
33
|
export const MeshCollider = /* @__PURE__*/ components.MeshCollider(engine);
|
|
34
|
-
export const AvatarShape = /* @__PURE__*/ components.AvatarShape(engine);
|
|
35
|
-
export const AvatarEquippedData =
|
|
36
|
-
/* @__PURE__*/ components.AvatarEquippedData(engine);
|
|
37
34
|
export const Name = components.Name(engine);
|
|
38
35
|
export const Tags = components.Tags(engine);
|
|
39
36
|
export const Tween = /* @__PURE__*/ components.Tween(engine);
|
package/dist/schemas/OneOf.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** Reserved case index for a value whose case was never selected. */
|
|
2
|
+
const NO_CASE = 0;
|
|
1
3
|
export const IOneOf = (specs) => {
|
|
2
4
|
const specKeys = Object.keys(specs);
|
|
3
5
|
const keyToIndex = specKeys.reduce((dict, key, index) => {
|
|
@@ -10,12 +12,22 @@ export const IOneOf = (specs) => {
|
|
|
10
12
|
}, {});
|
|
11
13
|
return {
|
|
12
14
|
serialize({ $case, value }, builder) {
|
|
15
|
+
// `create()` selects no case, so a field the scene never set arrives here
|
|
16
|
+
// with an undefined `$case`. Index 0 is free, cases start at 1.
|
|
17
|
+
if ($case === undefined) {
|
|
18
|
+
builder.writeUint8(NO_CASE);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
13
21
|
const _value = keyToIndex[$case.toString()] + 1;
|
|
14
22
|
builder.writeUint8(_value);
|
|
15
23
|
specs[$case].serialize(value, builder);
|
|
16
24
|
},
|
|
17
25
|
deserialize(reader) {
|
|
18
|
-
const
|
|
26
|
+
const caseIndex = reader.readInt8();
|
|
27
|
+
if (caseIndex === NO_CASE) {
|
|
28
|
+
return {};
|
|
29
|
+
}
|
|
30
|
+
const $case = specKeys[caseIndex - 1];
|
|
19
31
|
const value = specs[$case].deserialize(reader);
|
|
20
32
|
return { $case, value };
|
|
21
33
|
},
|
|
@@ -16,17 +16,22 @@ import * as components from '../components';
|
|
|
16
16
|
*/
|
|
17
17
|
export function cyclicParentingChecker(engine) {
|
|
18
18
|
const Transform = components.Transform(engine);
|
|
19
|
+
// Reused by every walk: the checker is synchronous, so only one is ever in
|
|
20
|
+
// flight. A cycle anywhere above the entity has to end the walk, not only one
|
|
21
|
+
// the entity is part of, otherwise the ancestors repeat forever.
|
|
22
|
+
const visited = new Set();
|
|
19
23
|
return () => {
|
|
20
24
|
for (const entity of Transform.dirtyIterator()) {
|
|
25
|
+
visited.clear();
|
|
26
|
+
visited.add(entity);
|
|
21
27
|
let transform = Transform.getOrNull(entity);
|
|
22
28
|
while (transform && transform.parent) {
|
|
23
|
-
if (transform.parent
|
|
29
|
+
if (visited.has(transform.parent)) {
|
|
24
30
|
console.error(`There is a cyclic parent with entity ${entity}`);
|
|
25
31
|
break;
|
|
26
32
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
33
|
+
visited.add(transform.parent);
|
|
34
|
+
transform = Transform.getOrNull(transform.parent);
|
|
30
35
|
}
|
|
31
36
|
}
|
|
32
37
|
};
|
package/dist/systems/events.d.ts
CHANGED
|
@@ -50,24 +50,6 @@ export interface PointerEventsSystem {
|
|
|
50
50
|
* @param entity - Entity where the callback was attached
|
|
51
51
|
*/
|
|
52
52
|
removeOnPointerHoverLeave(entity: Entity): void;
|
|
53
|
-
/**
|
|
54
|
-
* @public
|
|
55
|
-
* Remove the callback for onPointerDrag event
|
|
56
|
-
* @param entity - Entity where the callback was attached
|
|
57
|
-
*/
|
|
58
|
-
removeOnPointerDrag(entity: Entity): void;
|
|
59
|
-
/**
|
|
60
|
-
* @public
|
|
61
|
-
* Remove the callback for onPointerDragLocked event
|
|
62
|
-
* @param entity - Entity where the callback was attached
|
|
63
|
-
*/
|
|
64
|
-
removeOnPointerDragLocked(entity: Entity): void;
|
|
65
|
-
/**
|
|
66
|
-
* @public
|
|
67
|
-
* Remove the callback for onPointerDragEnd event
|
|
68
|
-
* @param entity - Entity where the callback was attached
|
|
69
|
-
*/
|
|
70
|
-
removeOnPointerDragEnd(entity: Entity): void;
|
|
71
53
|
/**
|
|
72
54
|
* @public
|
|
73
55
|
* Remove the callback for onProximityDown event
|
|
@@ -146,36 +128,6 @@ export interface PointerEventsSystem {
|
|
|
146
128
|
entity: Entity;
|
|
147
129
|
opts?: Partial<EventSystemOptions>;
|
|
148
130
|
}, cb: EventSystemCallback): void;
|
|
149
|
-
/**
|
|
150
|
-
* @public
|
|
151
|
-
* Execute callback while the user holds the button pressed and moves the pointer, having pressed it on the entity
|
|
152
|
-
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
153
|
-
* @param cb - Function to execute on every drag update
|
|
154
|
-
*/
|
|
155
|
-
onPointerDrag(pointerData: {
|
|
156
|
-
entity: Entity;
|
|
157
|
-
opts?: Partial<EventSystemOptions>;
|
|
158
|
-
}, cb: EventSystemCallback): void;
|
|
159
|
-
/**
|
|
160
|
-
* @public
|
|
161
|
-
* Same as onPointerDrag, but the cursor is locked in place for the duration of the drag
|
|
162
|
-
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
163
|
-
* @param cb - Function to execute on every drag update
|
|
164
|
-
*/
|
|
165
|
-
onPointerDragLocked(pointerData: {
|
|
166
|
-
entity: Entity;
|
|
167
|
-
opts?: Partial<EventSystemOptions>;
|
|
168
|
-
}, cb: EventSystemCallback): void;
|
|
169
|
-
/**
|
|
170
|
-
* @public
|
|
171
|
-
* Execute callback when the user releases the button after a drag that started on the entity
|
|
172
|
-
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
173
|
-
* @param cb - Function to execute when the drag ends
|
|
174
|
-
*/
|
|
175
|
-
onPointerDragEnd(pointerData: {
|
|
176
|
-
entity: Entity;
|
|
177
|
-
opts?: Partial<EventSystemOptions>;
|
|
178
|
-
}, cb: EventSystemCallback): void;
|
|
179
131
|
/**
|
|
180
132
|
* @public
|
|
181
133
|
* Execute callback when the user presses the proximity button on the entity
|
package/dist/systems/events.js
CHANGED
|
@@ -20,14 +20,21 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
20
20
|
EventType[EventType["HoverLeave"] = 4] = "HoverLeave";
|
|
21
21
|
EventType[EventType["ProximityEnter"] = 5] = "ProximityEnter";
|
|
22
22
|
EventType[EventType["ProximityLeave"] = 6] = "ProximityLeave";
|
|
23
|
-
EventType[EventType["Drag"] = 7] = "Drag";
|
|
24
|
-
EventType[EventType["DragLocked"] = 8] = "DragLocked";
|
|
25
|
-
EventType[EventType["DragEnd"] = 9] = "DragEnd";
|
|
26
23
|
})(EventType || (EventType = {}));
|
|
27
24
|
const eventsMap = new Map();
|
|
28
25
|
function getEvent(entity) {
|
|
29
26
|
return eventsMap.get(entity) || eventsMap.set(entity, new Map()).get(entity);
|
|
30
27
|
}
|
|
28
|
+
// A cursor handler and a proximity handler are separate registrations that
|
|
29
|
+
// produce separate PointerEvents entries, so they need separate slots here
|
|
30
|
+
// too. Keying on the event type alone made onProximityDown evict whatever
|
|
31
|
+
// onPointerDown had left.
|
|
32
|
+
function eventKey(type, interactionType) {
|
|
33
|
+
return `${type}:${interactionType}`;
|
|
34
|
+
}
|
|
35
|
+
function setEvent(entity, type, cb, opts, interactionType = 0 /* InteractionType.CURSOR */) {
|
|
36
|
+
getEvent(entity).set(eventKey(type, interactionType), { cb, opts, eventType: type });
|
|
37
|
+
}
|
|
31
38
|
function setPointerEvent(entity, type, opts, interactionType = 0 /* InteractionType.CURSOR */) {
|
|
32
39
|
const pointerEvent = PointerEvents.getMutableOrNull(entity) || PointerEvents.create(entity);
|
|
33
40
|
pointerEvent.pointerEvents.push({
|
|
@@ -45,13 +52,27 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
45
52
|
interactionType: interactionType ?? 0 /* InteractionType.CURSOR */
|
|
46
53
|
});
|
|
47
54
|
}
|
|
48
|
-
function removePointerEvent(entity, type,
|
|
55
|
+
function removePointerEvent(entity, type, opts, interactionType = 0 /* InteractionType.CURSOR */) {
|
|
49
56
|
const pointerEvent = PointerEvents.getMutableOrNull(entity);
|
|
50
57
|
if (!pointerEvent)
|
|
51
58
|
return;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
59
|
+
const sameSlot = (pointer) => pointer.eventType === type && pointer.interactionType === interactionType;
|
|
60
|
+
// onClick and onPointerDown both describe themselves as PET_DOWN, so the event
|
|
61
|
+
// type and button alone do not say which registration an entry belongs to. Match
|
|
62
|
+
// everything the entry was built from, or removing one handler can take the
|
|
63
|
+
// other's descriptor and leave the renderer advertising the wrong interaction.
|
|
64
|
+
const index = pointerEvent.pointerEvents.findIndex((pointer) => sameSlot(pointer) &&
|
|
65
|
+
pointer.eventInfo?.button === opts.button &&
|
|
66
|
+
pointer.eventInfo?.hoverText === opts.hoverText &&
|
|
67
|
+
pointer.eventInfo?.showFeedback === opts.showFeedback &&
|
|
68
|
+
pointer.eventInfo?.showHighlight === opts.showHighlight &&
|
|
69
|
+
pointer.eventInfo?.maxDistance === opts.maxDistance &&
|
|
70
|
+
pointer.eventInfo?.maxPlayerDistance === opts.maxPlayerDistance &&
|
|
71
|
+
pointer.eventInfo?.priority === opts.priority &&
|
|
72
|
+
pointer.eventInfo?.maxCameraDistance === opts.maxCameraDistance);
|
|
73
|
+
if (index === -1)
|
|
74
|
+
return;
|
|
75
|
+
pointerEvent.pointerEvents.splice(index, 1);
|
|
55
76
|
}
|
|
56
77
|
function getPointerEvent(eventType) {
|
|
57
78
|
if (eventType === EventType.Up) {
|
|
@@ -69,24 +90,20 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
69
90
|
else if (eventType === EventType.ProximityLeave) {
|
|
70
91
|
return 5 /* PointerEventType.PET_PROXIMITY_LEAVE */;
|
|
71
92
|
}
|
|
72
|
-
else if (eventType === EventType.Drag) {
|
|
73
|
-
return 7 /* PointerEventType.PET_DRAG */;
|
|
74
|
-
}
|
|
75
|
-
else if (eventType === EventType.DragLocked) {
|
|
76
|
-
return 6 /* PointerEventType.PET_DRAG_LOCKED */;
|
|
77
|
-
}
|
|
78
|
-
else if (eventType === EventType.DragEnd) {
|
|
79
|
-
return 8 /* PointerEventType.PET_DRAG_END */;
|
|
80
|
-
}
|
|
81
93
|
return 1 /* PointerEventType.PET_DOWN */;
|
|
82
94
|
}
|
|
83
95
|
function removeEvent(entity, type, interactionType = 0 /* InteractionType.CURSOR */) {
|
|
84
96
|
const event = getEvent(entity);
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
97
|
+
const key = eventKey(type, interactionType);
|
|
98
|
+
const pointerEvent = event.get(key);
|
|
99
|
+
// Every registration adds an entry, not only the ones carrying a hoverText,
|
|
100
|
+
// so every removal has to take one away. Gating on hoverText left the
|
|
101
|
+
// renderer showing an interaction whose callback was already gone, and made
|
|
102
|
+
// re-registering grow the component by one entry each time.
|
|
103
|
+
if (pointerEvent) {
|
|
104
|
+
removePointerEvent(entity, getPointerEvent(type), pointerEvent.opts, interactionType);
|
|
88
105
|
}
|
|
89
|
-
event.delete(
|
|
106
|
+
event.delete(key);
|
|
90
107
|
}
|
|
91
108
|
engine.addSystem(function PointerEventSystem() {
|
|
92
109
|
for (const [entity, event] of eventsMap) {
|
|
@@ -94,7 +111,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
94
111
|
eventsMap.delete(entity);
|
|
95
112
|
continue;
|
|
96
113
|
}
|
|
97
|
-
for (const [
|
|
114
|
+
for (const [, { cb, opts, eventType }] of event) {
|
|
98
115
|
if (eventType === EventType.Click) {
|
|
99
116
|
const command = inputSystem.getClick(opts.button, entity);
|
|
100
117
|
if (command)
|
|
@@ -105,10 +122,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
105
122
|
eventType === EventType.HoverEnter ||
|
|
106
123
|
eventType === EventType.HoverLeave ||
|
|
107
124
|
eventType === EventType.ProximityEnter ||
|
|
108
|
-
eventType === EventType.ProximityLeave
|
|
109
|
-
eventType === EventType.Drag ||
|
|
110
|
-
eventType === EventType.DragLocked ||
|
|
111
|
-
eventType === EventType.DragEnd) {
|
|
125
|
+
eventType === EventType.ProximityLeave) {
|
|
112
126
|
const command = inputSystem.getInputCommand(opts.button, getPointerEvent(eventType), entity);
|
|
113
127
|
if (command) {
|
|
114
128
|
checkNotThenable(cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
|
|
@@ -125,7 +139,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
125
139
|
const { entity, opts } = data;
|
|
126
140
|
const options = getDefaultOpts(opts);
|
|
127
141
|
removeEvent(entity, EventType.Down);
|
|
128
|
-
|
|
142
|
+
setEvent(entity, EventType.Down, cb, options);
|
|
129
143
|
setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options);
|
|
130
144
|
};
|
|
131
145
|
const onPointerUp = (...args) => {
|
|
@@ -136,7 +150,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
136
150
|
const { entity, opts } = data;
|
|
137
151
|
const options = getDefaultOpts(opts);
|
|
138
152
|
removeEvent(entity, EventType.Up);
|
|
139
|
-
|
|
153
|
+
setEvent(entity, EventType.Up, cb, options);
|
|
140
154
|
setPointerEvent(entity, 0 /* PointerEventType.PET_UP */, options);
|
|
141
155
|
};
|
|
142
156
|
const onPointerHoverEnter = (...args) => {
|
|
@@ -144,7 +158,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
144
158
|
const { entity, opts } = data;
|
|
145
159
|
const options = getDefaultOpts(opts);
|
|
146
160
|
removeEvent(entity, EventType.HoverEnter);
|
|
147
|
-
|
|
161
|
+
setEvent(entity, EventType.HoverEnter, cb, options);
|
|
148
162
|
setPointerEvent(entity, 2 /* PointerEventType.PET_HOVER_ENTER */, options);
|
|
149
163
|
};
|
|
150
164
|
const onPointerHoverLeave = (...args) => {
|
|
@@ -152,39 +166,15 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
152
166
|
const { entity, opts } = data;
|
|
153
167
|
const options = getDefaultOpts(opts);
|
|
154
168
|
removeEvent(entity, EventType.HoverLeave);
|
|
155
|
-
|
|
169
|
+
setEvent(entity, EventType.HoverLeave, cb, options);
|
|
156
170
|
setPointerEvent(entity, 3 /* PointerEventType.PET_HOVER_LEAVE */, options);
|
|
157
171
|
};
|
|
158
|
-
const onPointerDrag = (...args) => {
|
|
159
|
-
const [data, cb] = args;
|
|
160
|
-
const { entity, opts } = data;
|
|
161
|
-
const options = getDefaultOpts(opts);
|
|
162
|
-
removeEvent(entity, EventType.Drag);
|
|
163
|
-
getEvent(entity).set(EventType.Drag, { cb, opts: options });
|
|
164
|
-
setPointerEvent(entity, 7 /* PointerEventType.PET_DRAG */, options);
|
|
165
|
-
};
|
|
166
|
-
const onPointerDragLocked = (...args) => {
|
|
167
|
-
const [data, cb] = args;
|
|
168
|
-
const { entity, opts } = data;
|
|
169
|
-
const options = getDefaultOpts(opts);
|
|
170
|
-
removeEvent(entity, EventType.DragLocked);
|
|
171
|
-
getEvent(entity).set(EventType.DragLocked, { cb, opts: options });
|
|
172
|
-
setPointerEvent(entity, 6 /* PointerEventType.PET_DRAG_LOCKED */, options);
|
|
173
|
-
};
|
|
174
|
-
const onPointerDragEnd = (...args) => {
|
|
175
|
-
const [data, cb] = args;
|
|
176
|
-
const { entity, opts } = data;
|
|
177
|
-
const options = getDefaultOpts(opts);
|
|
178
|
-
removeEvent(entity, EventType.DragEnd);
|
|
179
|
-
getEvent(entity).set(EventType.DragEnd, { cb, opts: options });
|
|
180
|
-
setPointerEvent(entity, 8 /* PointerEventType.PET_DRAG_END */, options);
|
|
181
|
-
};
|
|
182
172
|
const onProximityDown = (...args) => {
|
|
183
173
|
const [data, cb] = args;
|
|
184
174
|
const { entity, opts } = data;
|
|
185
175
|
const options = getDefaultOpts(opts);
|
|
186
176
|
removeEvent(entity, EventType.Down, 1 /* InteractionType.PROXIMITY */);
|
|
187
|
-
|
|
177
|
+
setEvent(entity, EventType.Down, cb, options, 1 /* InteractionType.PROXIMITY */);
|
|
188
178
|
setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options, 1 /* InteractionType.PROXIMITY */);
|
|
189
179
|
};
|
|
190
180
|
const onProximityUp = (...args) => {
|
|
@@ -192,7 +182,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
192
182
|
const { entity, opts } = data;
|
|
193
183
|
const options = getDefaultOpts(opts);
|
|
194
184
|
removeEvent(entity, EventType.Up, 1 /* InteractionType.PROXIMITY */);
|
|
195
|
-
|
|
185
|
+
setEvent(entity, EventType.Up, cb, options, 1 /* InteractionType.PROXIMITY */);
|
|
196
186
|
setPointerEvent(entity, 0 /* PointerEventType.PET_UP */, options, 1 /* InteractionType.PROXIMITY */);
|
|
197
187
|
};
|
|
198
188
|
const onProximityEnter = (...args) => {
|
|
@@ -200,7 +190,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
200
190
|
const { entity, opts } = data;
|
|
201
191
|
const options = getDefaultOpts(opts);
|
|
202
192
|
removeEvent(entity, EventType.ProximityEnter, 1 /* InteractionType.PROXIMITY */);
|
|
203
|
-
|
|
193
|
+
setEvent(entity, EventType.ProximityEnter, cb, options, 1 /* InteractionType.PROXIMITY */);
|
|
204
194
|
setPointerEvent(entity, 4 /* PointerEventType.PET_PROXIMITY_ENTER */, options, 1 /* InteractionType.PROXIMITY */);
|
|
205
195
|
};
|
|
206
196
|
const onProximityLeave = (...args) => {
|
|
@@ -208,7 +198,7 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
208
198
|
const { entity, opts } = data;
|
|
209
199
|
const options = getDefaultOpts(opts);
|
|
210
200
|
removeEvent(entity, EventType.ProximityLeave, 1 /* InteractionType.PROXIMITY */);
|
|
211
|
-
|
|
201
|
+
setEvent(entity, EventType.ProximityLeave, cb, options, 1 /* InteractionType.PROXIMITY */);
|
|
212
202
|
setPointerEvent(entity, 5 /* PointerEventType.PET_PROXIMITY_LEAVE */, options, 1 /* InteractionType.PROXIMITY */);
|
|
213
203
|
};
|
|
214
204
|
return {
|
|
@@ -227,15 +217,6 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
227
217
|
removeOnPointerHoverLeave(entity) {
|
|
228
218
|
removeEvent(entity, EventType.HoverLeave);
|
|
229
219
|
},
|
|
230
|
-
removeOnPointerDrag(entity) {
|
|
231
|
-
removeEvent(entity, EventType.Drag);
|
|
232
|
-
},
|
|
233
|
-
removeOnPointerDragLocked(entity) {
|
|
234
|
-
removeEvent(entity, EventType.DragLocked);
|
|
235
|
-
},
|
|
236
|
-
removeOnPointerDragEnd(entity) {
|
|
237
|
-
removeEvent(entity, EventType.DragEnd);
|
|
238
|
-
},
|
|
239
220
|
removeOnProximityDown(entity) {
|
|
240
221
|
removeEvent(entity, EventType.Down, 1 /* InteractionType.PROXIMITY */);
|
|
241
222
|
},
|
|
@@ -254,16 +235,13 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
254
235
|
// Clear previous event with over feedback included
|
|
255
236
|
removeEvent(entity, EventType.Click);
|
|
256
237
|
// Set new event
|
|
257
|
-
|
|
238
|
+
setEvent(entity, EventType.Click, cb, options);
|
|
258
239
|
setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options);
|
|
259
240
|
},
|
|
260
241
|
onPointerDown,
|
|
261
242
|
onPointerUp,
|
|
262
243
|
onPointerHoverEnter,
|
|
263
244
|
onPointerHoverLeave,
|
|
264
|
-
onPointerDrag,
|
|
265
|
-
onPointerDragLocked,
|
|
266
|
-
onPointerDragEnd,
|
|
267
245
|
onProximityDown,
|
|
268
246
|
onProximityUp,
|
|
269
247
|
onProximityEnter,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RaycastQueryType,
|
|
1
|
+
import { RaycastQueryType, 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,10 +14,6 @@ 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;
|
|
21
17
|
};
|
|
22
18
|
export type LocalDirectionRaycastSystemOptions = {
|
|
23
19
|
direction?: Vector3;
|
package/dist/systems/raycast.js
CHANGED
|
@@ -12,9 +12,7 @@ export function createRaycastSystem(engine) {
|
|
|
12
12
|
queryType: 0 /* RaycastQueryType.RQT_HIT_FIRST */,
|
|
13
13
|
continuous: false,
|
|
14
14
|
originOffset: { x: 0, y: 0, z: 0 },
|
|
15
|
-
collisionMask: 2 /* ColliderLayer.CL_PHYSICS
|
|
16
|
-
shape: 0 /* RaycastShape.RS_RAY */,
|
|
17
|
-
includeWorld: false
|
|
15
|
+
collisionMask: 2 /* ColliderLayer.CL_PHYSICS */
|
|
18
16
|
};
|
|
19
17
|
const getLocalDirectionRaycastDefaultOptions = (options = {}) => ({
|
|
20
18
|
...defaultOptions,
|
|
@@ -60,8 +58,6 @@ export function createRaycastSystem(engine) {
|
|
|
60
58
|
raycast.direction = raycastValue.directionRawValue;
|
|
61
59
|
raycast.continuous = raycastValue.continuous;
|
|
62
60
|
raycast.queryType = raycastValue.queryType;
|
|
63
|
-
raycast.shape = raycastValue.shape;
|
|
64
|
-
raycast.includeWorld = raycastValue.includeWorld;
|
|
65
61
|
entitiesCallbackResultMap.set(entity, { callback: callback });
|
|
66
62
|
};
|
|
67
63
|
nextTickRaycasts.push(onNextTick);
|
|
@@ -34,14 +34,5 @@ export interface MeshColliderComponentDefinitionExtended extends LastWriteWinEle
|
|
|
34
34
|
* @param colliderMask - the set of layer where the collider reacts, default: Physics and Pointer
|
|
35
35
|
*/
|
|
36
36
|
setSphere(entity: Entity, colliderLayers?: ColliderLayer | ColliderLayer[]): void;
|
|
37
|
-
/**
|
|
38
|
-
* @public
|
|
39
|
-
* Set a mesh from inside a gltf in the MeshCollider component
|
|
40
|
-
* @param entity - entity to create or replace the MeshCollider component
|
|
41
|
-
* @param source - the path to the gltf
|
|
42
|
-
* @param meshName - the name of the mesh in the gltf (see GltfContainerLoadingState.meshNames)
|
|
43
|
-
* @param colliderMask - the set of layer where the collider reacts, default: Physics and Pointer
|
|
44
|
-
*/
|
|
45
|
-
setGltfMesh(entity: Entity, source: string, meshName: string, colliderLayers?: ColliderLayer | ColliderLayer[]): void;
|
|
46
37
|
}
|
|
47
38
|
export declare function defineMeshColliderComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): MeshColliderComponentDefinitionExtended;
|
|
@@ -37,12 +37,6 @@ function defineMeshColliderComponent(engine) {
|
|
|
37
37
|
mesh: { $case: 'sphere', sphere: {} },
|
|
38
38
|
collisionMask: getCollisionMask(colliderLayers)
|
|
39
39
|
});
|
|
40
|
-
},
|
|
41
|
-
setGltfMesh(entity, source, meshName, colliderLayers) {
|
|
42
|
-
theComponent.createOrReplace(entity, {
|
|
43
|
-
mesh: { $case: 'gltf', gltf: { gltfSrc: source, name: meshName } },
|
|
44
|
-
collisionMask: getCollisionMask(colliderLayers)
|
|
45
|
-
});
|
|
46
40
|
}
|
|
47
41
|
};
|
|
48
42
|
}
|
|
@@ -32,13 +32,5 @@ export interface MeshRendererComponentDefinitionExtended extends LastWriteWinEle
|
|
|
32
32
|
* @param entity - entity to create or replace the MeshRenderer component
|
|
33
33
|
*/
|
|
34
34
|
setSphere(entity: Entity): void;
|
|
35
|
-
/**
|
|
36
|
-
* @public
|
|
37
|
-
* Set a mesh from inside a gltf in the MeshRenderer component
|
|
38
|
-
* @param entity - entity to create or replace the MeshRenderer component
|
|
39
|
-
* @param source - the path to the gltf
|
|
40
|
-
* @param meshName - the name of the mesh in the gltf (see GltfContainerLoadingState.meshNames)
|
|
41
|
-
*/
|
|
42
|
-
setGltfMesh(entity: Entity, source: string, meshName: string): void;
|
|
43
35
|
}
|
|
44
36
|
export declare function defineMeshRendererComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): MeshRendererComponentDefinitionExtended;
|
|
@@ -25,11 +25,6 @@ function defineMeshRendererComponent(engine) {
|
|
|
25
25
|
theComponent.createOrReplace(entity, {
|
|
26
26
|
mesh: { $case: 'sphere', sphere: {} }
|
|
27
27
|
});
|
|
28
|
-
},
|
|
29
|
-
setGltfMesh(entity, source, meshName) {
|
|
30
|
-
theComponent.createOrReplace(entity, {
|
|
31
|
-
mesh: { $case: 'gltf', gltf: { gltfSrc: source, name: meshName } }
|
|
32
|
-
});
|
|
33
28
|
}
|
|
34
29
|
};
|
|
35
30
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExplorerItemPurchaseResultSchema = void 0;
|
|
4
|
+
const explorer_item_purchase_result_gen_1 = require("./pb/decentraland/sdk/components/explorer_item_purchase_result.gen");
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
exports.ExplorerItemPurchaseResultSchema = {
|
|
9
|
+
COMPONENT_ID: 1222,
|
|
10
|
+
serialize(value, builder) {
|
|
11
|
+
const writer = explorer_item_purchase_result_gen_1.PBExplorerItemPurchaseResult.encode(value);
|
|
12
|
+
const buffer = new Uint8Array(writer.finish(), 0, writer.len);
|
|
13
|
+
builder.writeBuffer(buffer, false);
|
|
14
|
+
},
|
|
15
|
+
deserialize(reader) {
|
|
16
|
+
return explorer_item_purchase_result_gen_1.PBExplorerItemPurchaseResult.decode(reader.buffer(), reader.remainingBytes());
|
|
17
|
+
},
|
|
18
|
+
create() {
|
|
19
|
+
// TODO: this is a hack.
|
|
20
|
+
return explorer_item_purchase_result_gen_1.PBExplorerItemPurchaseResult.decode(new Uint8Array());
|
|
21
|
+
},
|
|
22
|
+
jsonSchema: {
|
|
23
|
+
type: "object",
|
|
24
|
+
properties: {},
|
|
25
|
+
serializationType: "protocol-buffer",
|
|
26
|
+
protocolBuffer: "PBExplorerItemPurchaseResult"
|
|
27
|
+
}
|
|
28
|
+
};
|