@dcl/ecs 7.12.2 → 7.12.3-19242573384.commit-09d14b4
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 +10 -0
- package/dist/components/extended/AvatarEquippedData.js +15 -0
- package/dist/components/extended/AvatarShape.d.ts +10 -0
- package/dist/components/extended/AvatarShape.js +15 -0
- package/dist/components/extended/MeshCollider.d.ts +8 -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/extended/Tween.d.ts +5 -94
- package/dist/components/extended/Tween.js +1 -119
- 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 +8 -0
- package/dist/components/generated/global.gen.d.ts +17 -1
- package/dist/components/generated/global.gen.js +8 -0
- package/dist/components/generated/index.gen.d.ts +34 -2
- package/dist/components/generated/index.gen.js +42 -4
- 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_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 +43 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +151 -1
- 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 +37 -1
- package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +119 -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/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_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 +4 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +20 -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 +11 -11
- package/dist/components/index.js +11 -11
- package/dist/components/types.d.ts +2 -3
- package/dist/engine/index.js +0 -10
- package/dist/engine/input.d.ts +6 -0
- package/dist/engine/input.js +7 -1
- package/dist/engine/types.d.ts +0 -7
- package/dist/index.d.ts +5 -6
- package/dist/index.js +3 -4
- package/dist/runtime/initialization/index.d.ts +0 -7
- package/dist/runtime/initialization/index.js +0 -6
- package/dist/systems/crdt/index.d.ts +0 -1
- package/dist/systems/crdt/index.js +5 -17
- package/dist/systems/events.d.ts +100 -1
- package/dist/systems/events.js +143 -65
- package/dist-cjs/components/extended/AvatarEquippedData.d.ts +10 -0
- package/dist-cjs/components/extended/AvatarEquippedData.js +19 -0
- package/dist-cjs/components/extended/AvatarShape.d.ts +10 -0
- package/dist-cjs/components/extended/AvatarShape.js +19 -0
- package/dist-cjs/components/extended/MeshCollider.d.ts +8 -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/extended/Tween.d.ts +5 -94
- package/dist-cjs/components/extended/Tween.js +1 -119
- 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 +8 -0
- package/dist-cjs/components/generated/global.gen.d.ts +17 -1
- package/dist-cjs/components/generated/global.gen.js +10 -1
- package/dist-cjs/components/generated/index.gen.d.ts +34 -2
- package/dist-cjs/components/generated/index.gen.js +52 -6
- 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_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 +43 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +152 -2
- 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 +37 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +120 -2
- 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/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_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 +4 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +20 -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 +11 -11
- package/dist-cjs/components/index.js +15 -15
- package/dist-cjs/components/types.d.ts +2 -3
- package/dist-cjs/engine/index.js +0 -10
- package/dist-cjs/engine/input.d.ts +6 -0
- package/dist-cjs/engine/input.js +7 -1
- package/dist-cjs/engine/types.d.ts +0 -7
- package/dist-cjs/index.d.ts +5 -6
- package/dist-cjs/index.js +4 -5
- package/dist-cjs/runtime/initialization/index.d.ts +0 -7
- package/dist-cjs/runtime/initialization/index.js +1 -7
- package/dist-cjs/systems/crdt/index.d.ts +0 -1
- package/dist-cjs/systems/crdt/index.js +6 -18
- package/dist-cjs/systems/events.d.ts +100 -1
- package/dist-cjs/systems/events.js +143 -65
- package/package.json +2 -2
- package/dist/components/extended/TriggerArea.d.ts +0 -22
- package/dist/components/extended/TriggerArea.js +0 -27
- package/dist/components/manual/Tags.d.ts +0 -34
- package/dist/components/manual/Tags.js +0 -37
- package/dist/systems/triggerArea.d.ts +0 -50
- package/dist/systems/triggerArea.js +0 -113
- package/dist-cjs/components/extended/TriggerArea.d.ts +0 -22
- package/dist-cjs/components/extended/TriggerArea.js +0 -31
- package/dist-cjs/components/manual/Tags.d.ts +0 -34
- package/dist-cjs/components/manual/Tags.js +0 -39
- package/dist-cjs/systems/triggerArea.d.ts +0 -50
- package/dist-cjs/systems/triggerArea.js +0 -140
|
@@ -17,6 +17,12 @@ export type EventSystemOptions = {
|
|
|
17
17
|
showFeedback?: boolean;
|
|
18
18
|
showHighlight?: boolean;
|
|
19
19
|
};
|
|
20
|
+
/**
|
|
21
|
+
* @public
|
|
22
|
+
*/
|
|
23
|
+
export type EventSystemOptionsCallback = EventSystemOptions & {
|
|
24
|
+
cb: EventSystemCallback;
|
|
25
|
+
};
|
|
20
26
|
export declare const getDefaultOpts: (opts?: Partial<EventSystemOptions>) => EventSystemOptions;
|
|
21
27
|
/**
|
|
22
28
|
* @public
|
|
@@ -46,11 +52,37 @@ export interface PointerEventsSystem {
|
|
|
46
52
|
* @param entity - Entity where the callback was attached
|
|
47
53
|
*/
|
|
48
54
|
removeOnPointerHoverLeave(entity: Entity): void;
|
|
55
|
+
/**
|
|
56
|
+
* @public
|
|
57
|
+
* Remove the callback for onPointerDrag event
|
|
58
|
+
* @param entity - Entity where the callback was attached
|
|
59
|
+
*/
|
|
60
|
+
removeOnPointerDrag(entity: Entity): void;
|
|
61
|
+
/**
|
|
62
|
+
* @public
|
|
63
|
+
* Remove the callback for onPointerDragLocked event
|
|
64
|
+
* @param entity - Entity where the callback was attached
|
|
65
|
+
*/
|
|
66
|
+
removeOnPointerDragLocked(entity: Entity): void;
|
|
67
|
+
/**
|
|
68
|
+
* @public
|
|
69
|
+
* Remove the callback for onPointerDragEnd event
|
|
70
|
+
* @param entity - Entity where the callback was attached
|
|
71
|
+
*/
|
|
72
|
+
removeOnPointerDragEnd(entity: Entity): void;
|
|
73
|
+
/**
|
|
74
|
+
* @public
|
|
75
|
+
* Execute callbacks when the user presses one of the InputButtons pointing at the entity
|
|
76
|
+
* @param pointerData - Entity to attach the callbacks, list of options to trigger Feedback, Button, and Callback
|
|
77
|
+
*/
|
|
78
|
+
onPointerDown(pointerData: {
|
|
79
|
+
entity: Entity;
|
|
80
|
+
optsList: EventSystemOptionsCallback[];
|
|
81
|
+
}): void;
|
|
49
82
|
/**
|
|
50
83
|
* @public
|
|
51
84
|
* Execute callback when the user press the InputButton pointing at the entity
|
|
52
85
|
* @param pointerData - Entity to attach the callback, Opts to trigger Feedback and Button
|
|
53
|
-
* @param cb - Function to execute when click fires
|
|
54
86
|
*/
|
|
55
87
|
onPointerDown(pointerData: {
|
|
56
88
|
entity: Entity;
|
|
@@ -63,6 +95,15 @@ export interface PointerEventsSystem {
|
|
|
63
95
|
* @param opts - Opts to trigger Feedback and Button
|
|
64
96
|
*/
|
|
65
97
|
onPointerDown(entity: Entity, cb: EventSystemCallback, opts?: Partial<EventSystemOptions>): void;
|
|
98
|
+
/**
|
|
99
|
+
* @public
|
|
100
|
+
* Execute callbacks when the user releases one of the InputButtons pointing at the entity
|
|
101
|
+
* @param pointerData - Entity to attach the callbacks, list of options to trigger Feedback, Button, and Callback
|
|
102
|
+
*/
|
|
103
|
+
onPointerUp(pointerData: {
|
|
104
|
+
entity: Entity;
|
|
105
|
+
optsList: EventSystemOptionsCallback[];
|
|
106
|
+
}): void;
|
|
66
107
|
/**
|
|
67
108
|
* @public
|
|
68
109
|
* Execute callback when the user releases the InputButton pointing at the entity
|
|
@@ -100,6 +141,64 @@ export interface PointerEventsSystem {
|
|
|
100
141
|
entity: Entity;
|
|
101
142
|
opts?: Partial<EventSystemOptions>;
|
|
102
143
|
}, cb: EventSystemCallback): void;
|
|
144
|
+
/**
|
|
145
|
+
* @public
|
|
146
|
+
* Execute callbacks when the user drags the pointer from inside the entity
|
|
147
|
+
* @param pointerData - Entity to attach the callbacks, list of options to trigger Feedback, Button, and Callback
|
|
148
|
+
*/
|
|
149
|
+
onPointerDrag(pointerData: {
|
|
150
|
+
entity: Entity;
|
|
151
|
+
optsList: EventSystemOptionsCallback[];
|
|
152
|
+
}): void;
|
|
153
|
+
/**
|
|
154
|
+
* @public
|
|
155
|
+
* Execute callback when the user clicks and drags the pointer from inside the entity
|
|
156
|
+
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
157
|
+
* @param cb - Function to execute when click fires
|
|
158
|
+
*/
|
|
159
|
+
onPointerDrag(pointerData: {
|
|
160
|
+
entity: Entity;
|
|
161
|
+
opts?: Partial<EventSystemOptions>;
|
|
162
|
+
}, cb: EventSystemCallback): void;
|
|
163
|
+
/**
|
|
164
|
+
* @public
|
|
165
|
+
* Execute callbacks when the user drags the pointer from inside the entity, locking the cursor in place.
|
|
166
|
+
* @param pointerData - Entity to attach the callbacks, list of options to trigger Feedback, Button, and Callback
|
|
167
|
+
*/
|
|
168
|
+
onPointerDragLocked(pointerData: {
|
|
169
|
+
entity: Entity;
|
|
170
|
+
optsList: EventSystemOptionsCallback[];
|
|
171
|
+
}): void;
|
|
172
|
+
/**
|
|
173
|
+
* @public
|
|
174
|
+
* Execute callback when the user clicks and drags the pointer from inside the entity,
|
|
175
|
+
* locking the cursor in place
|
|
176
|
+
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
177
|
+
* @param cb - Function to execute when click fires
|
|
178
|
+
*/
|
|
179
|
+
onPointerDragLocked(pointerData: {
|
|
180
|
+
entity: Entity;
|
|
181
|
+
opts?: Partial<EventSystemOptions>;
|
|
182
|
+
}, cb: EventSystemCallback): void;
|
|
183
|
+
/**
|
|
184
|
+
* @public
|
|
185
|
+
* Execute callbacks when the user releases a button after a drag
|
|
186
|
+
* @param pointerData - Entity to attach the callbacks, list of options to trigger Feedback, Button, and Callback
|
|
187
|
+
*/
|
|
188
|
+
onPointerDragEnd(pointerData: {
|
|
189
|
+
entity: Entity;
|
|
190
|
+
optsList: EventSystemOptionsCallback[];
|
|
191
|
+
}): void;
|
|
192
|
+
/**
|
|
193
|
+
* @public
|
|
194
|
+
* Execute callback when the user releases the button after a drag
|
|
195
|
+
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
196
|
+
* @param cb - Function to execute when click fires
|
|
197
|
+
*/
|
|
198
|
+
onPointerDragEnd(pointerData: {
|
|
199
|
+
entity: Entity;
|
|
200
|
+
opts?: Partial<EventSystemOptions>;
|
|
201
|
+
}, cb: EventSystemCallback): void;
|
|
103
202
|
}
|
|
104
203
|
/**
|
|
105
204
|
* @public
|
|
@@ -45,6 +45,9 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
45
45
|
EventType[EventType["Up"] = 2] = "Up";
|
|
46
46
|
EventType[EventType["HoverEnter"] = 3] = "HoverEnter";
|
|
47
47
|
EventType[EventType["HoverLeave"] = 4] = "HoverLeave";
|
|
48
|
+
EventType[EventType["Drag"] = 5] = "Drag";
|
|
49
|
+
EventType[EventType["DragLocked"] = 6] = "DragLocked";
|
|
50
|
+
EventType[EventType["DragEnd"] = 7] = "DragEnd";
|
|
48
51
|
})(EventType || (EventType = {}));
|
|
49
52
|
const eventsMap = new Map();
|
|
50
53
|
function getEvent(entity) {
|
|
@@ -79,77 +82,148 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
79
82
|
else if (eventType === EventType.HoverEnter) {
|
|
80
83
|
return 2 /* PointerEventType.PET_HOVER_ENTER */;
|
|
81
84
|
}
|
|
85
|
+
else if (eventType === EventType.Drag) {
|
|
86
|
+
return 5 /* PointerEventType.PET_DRAG */;
|
|
87
|
+
}
|
|
88
|
+
else if (eventType === EventType.DragLocked) {
|
|
89
|
+
return 4 /* PointerEventType.PET_DRAG_LOCKED */;
|
|
90
|
+
}
|
|
91
|
+
else if (eventType === EventType.DragEnd) {
|
|
92
|
+
return 6 /* PointerEventType.PET_DRAG_END */;
|
|
93
|
+
}
|
|
82
94
|
return 1 /* PointerEventType.PET_DOWN */;
|
|
83
95
|
}
|
|
96
|
+
function getEventType(pet) {
|
|
97
|
+
if (pet === 0 /* PointerEventType.PET_UP */) {
|
|
98
|
+
return EventType.Up;
|
|
99
|
+
}
|
|
100
|
+
else if (pet === 2 /* PointerEventType.PET_HOVER_ENTER */) {
|
|
101
|
+
return EventType.HoverEnter;
|
|
102
|
+
}
|
|
103
|
+
else if (pet === 3 /* PointerEventType.PET_HOVER_LEAVE */) {
|
|
104
|
+
return EventType.HoverLeave;
|
|
105
|
+
}
|
|
106
|
+
else if (pet === 5 /* PointerEventType.PET_DRAG */) {
|
|
107
|
+
return EventType.Drag;
|
|
108
|
+
}
|
|
109
|
+
else if (pet === 4 /* PointerEventType.PET_DRAG_LOCKED */) {
|
|
110
|
+
return EventType.DragLocked;
|
|
111
|
+
}
|
|
112
|
+
else if (pet === 6 /* PointerEventType.PET_DRAG_END */) {
|
|
113
|
+
return EventType.DragEnd;
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
return EventType.Down;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
84
119
|
function removeEvent(entity, type) {
|
|
85
120
|
const event = getEvent(entity);
|
|
86
|
-
const
|
|
87
|
-
if (
|
|
88
|
-
|
|
121
|
+
const pointerEventList = event.get(type);
|
|
122
|
+
if (pointerEventList === undefined) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
for (const button of pointerEventList.keys()) {
|
|
126
|
+
removePointerEvent(entity, getPointerEvent(type), button);
|
|
89
127
|
}
|
|
90
128
|
event.delete(type);
|
|
91
129
|
}
|
|
92
130
|
engine.addSystem(function EventSystem() {
|
|
93
|
-
|
|
131
|
+
if (eventsMap.size === 0) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
for (const entity of eventsMap.keys()) {
|
|
94
135
|
if (engine.getEntityState(entity) === entity_1.EntityState.Removed) {
|
|
95
136
|
eventsMap.delete(entity);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
for (const command of inputSystem.getInputCommands()) {
|
|
140
|
+
const entity = command.hit?.entityId;
|
|
141
|
+
if (entity === undefined) {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const entityMap = eventsMap.get(entity);
|
|
145
|
+
if (entityMap === undefined) {
|
|
96
146
|
continue;
|
|
97
147
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
148
|
+
const typeMap = entityMap.get(getEventType(command.state));
|
|
149
|
+
if (typeMap) {
|
|
150
|
+
const data = typeMap.get(command.button);
|
|
151
|
+
if (data) {
|
|
152
|
+
(0, invariant_1.checkNotThenable)(data.cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
|
|
103
153
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
154
|
+
const anyData = typeMap.get(3 /* InputAction.IA_ANY */);
|
|
155
|
+
if (anyData) {
|
|
156
|
+
(0, invariant_1.checkNotThenable)(anyData.cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// check clicks separately
|
|
160
|
+
if (command.state === 0 /* PointerEventType.PET_UP */) {
|
|
161
|
+
const clickMap = entityMap.get(EventType.Click);
|
|
162
|
+
if (clickMap) {
|
|
163
|
+
const data = clickMap.get(command.button);
|
|
164
|
+
if (data && inputSystem.getClick(command.button, entity)) {
|
|
165
|
+
(0, invariant_1.checkNotThenable)(data.cb(command), 'Click event returned a thenable. Only synchronous functions are allowed');
|
|
166
|
+
}
|
|
167
|
+
const anyData = clickMap.get(3 /* InputAction.IA_ANY */);
|
|
168
|
+
if (anyData && inputSystem.getClick(command.button, entity)) {
|
|
169
|
+
(0, invariant_1.checkNotThenable)(anyData.cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
|
|
111
170
|
}
|
|
112
171
|
}
|
|
113
172
|
}
|
|
114
173
|
}
|
|
115
174
|
});
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
175
|
+
// return a function with the correct event type.
|
|
176
|
+
// we use onPointerDown as the "archetype" for the returned function, but it fits with
|
|
177
|
+
// all the onPointer* declarations
|
|
178
|
+
const onPointerFunction = (ty) => {
|
|
179
|
+
return (arg0, arg1, arg2) => {
|
|
180
|
+
let entity;
|
|
181
|
+
let optsList;
|
|
182
|
+
if (typeof arg0 === 'number') {
|
|
183
|
+
// called as onPointerDown(entity: Entity, cb: EventSystemCallback, opts?: Partial<EventSystemOptions>): void
|
|
184
|
+
entity = arg0;
|
|
185
|
+
const cb = arg1;
|
|
186
|
+
const opts = arg2;
|
|
187
|
+
optsList = [{ cb, ...(0, exports.getDefaultOpts)(opts) }];
|
|
188
|
+
}
|
|
189
|
+
else if (typeof arg1 === 'function') {
|
|
190
|
+
// called as onPointerDown(pointerData: { entity: Entity; opts?: Partial<EventSystemOptions> }, cb: EventSystemCallback): void
|
|
191
|
+
const { entity: e, opts } = arg0;
|
|
192
|
+
const cb = arg1;
|
|
193
|
+
entity = e;
|
|
194
|
+
optsList = [{ cb, ...(0, exports.getDefaultOpts)(opts) }];
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
// called as onPointerDown(pointerData: { entity: Entity; optsList: EventSystemOptionsCallback[] }): void
|
|
198
|
+
const { entity: e, optsList: o } = arg0;
|
|
199
|
+
entity = e;
|
|
200
|
+
optsList = o;
|
|
201
|
+
}
|
|
202
|
+
const previous = getEvent(entity).get(ty) ?? new Map();
|
|
203
|
+
const callbacks = new Map();
|
|
204
|
+
for (const opts of optsList) {
|
|
205
|
+
const prevOpts = previous.get(opts.button);
|
|
206
|
+
if (prevOpts !== undefined) {
|
|
207
|
+
if (prevOpts.hoverText !== opts.hoverText ||
|
|
208
|
+
prevOpts.maxDistance !== opts.maxDistance ||
|
|
209
|
+
prevOpts.showFeedback !== opts.showFeedback ||
|
|
210
|
+
prevOpts.showHighlight !== opts.showHighlight) {
|
|
211
|
+
removePointerEvent(entity, getPointerEvent(ty), opts.button);
|
|
212
|
+
setPointerEvent(entity, getPointerEvent(ty), opts);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
setPointerEvent(entity, getPointerEvent(ty), opts);
|
|
217
|
+
}
|
|
218
|
+
callbacks.set(opts.button, opts);
|
|
219
|
+
}
|
|
220
|
+
for (const button of previous.keys()) {
|
|
221
|
+
if (!callbacks.has(button)) {
|
|
222
|
+
removePointerEvent(entity, getPointerEvent(ty), button);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
getEvent(entity).set(ty, callbacks);
|
|
226
|
+
};
|
|
153
227
|
};
|
|
154
228
|
return {
|
|
155
229
|
removeOnClick(entity) {
|
|
@@ -167,19 +241,23 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
167
241
|
removeOnPointerHoverLeave(entity) {
|
|
168
242
|
removeEvent(entity, EventType.HoverLeave);
|
|
169
243
|
},
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
removeEvent(entity, EventType.
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
244
|
+
removeOnPointerDrag(entity) {
|
|
245
|
+
removeEvent(entity, EventType.Drag);
|
|
246
|
+
},
|
|
247
|
+
removeOnPointerDragLocked(entity) {
|
|
248
|
+
removeEvent(entity, EventType.DragLocked);
|
|
249
|
+
},
|
|
250
|
+
removeOnPointerDragEnd(entity) {
|
|
251
|
+
removeEvent(entity, EventType.DragEnd);
|
|
178
252
|
},
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
253
|
+
onClick: onPointerFunction(EventType.Click),
|
|
254
|
+
onPointerDown: onPointerFunction(EventType.Down),
|
|
255
|
+
onPointerUp: onPointerFunction(EventType.Up),
|
|
256
|
+
onPointerHoverEnter: onPointerFunction(EventType.HoverEnter),
|
|
257
|
+
onPointerHoverLeave: onPointerFunction(EventType.HoverLeave),
|
|
258
|
+
onPointerDrag: onPointerFunction(EventType.Drag),
|
|
259
|
+
onPointerDragLocked: onPointerFunction(EventType.DragLocked),
|
|
260
|
+
onPointerDragEnd: onPointerFunction(EventType.DragEnd)
|
|
183
261
|
};
|
|
184
262
|
}
|
|
185
263
|
exports.createPointerEventsSystem = createPointerEventsSystem;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcl/ecs",
|
|
3
3
|
"description": "Decentraland ECS",
|
|
4
|
-
"version": "7.12.
|
|
4
|
+
"version": "7.12.3-19242573384.commit-09d14b4",
|
|
5
5
|
"author": "DCL",
|
|
6
6
|
"bugs": "https://github.com/decentraland/ecs/issues",
|
|
7
7
|
"files": [
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
},
|
|
34
34
|
"types": "./dist/index.d.ts",
|
|
35
35
|
"typings": "./dist/index.d.ts",
|
|
36
|
-
"commit": "
|
|
36
|
+
"commit": "09d14b48d73584d3cdb89a3bb997b8a6e4f1342e"
|
|
37
37
|
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { Entity, IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine';
|
|
2
|
-
import { ColliderLayer, PBTriggerArea } from '../generated/index.gen';
|
|
3
|
-
/**
|
|
4
|
-
* @public
|
|
5
|
-
*/
|
|
6
|
-
export interface TriggerAreaComponentDefinitionExtended extends LastWriteWinElementSetComponentDefinition<PBTriggerArea> {
|
|
7
|
-
/**
|
|
8
|
-
* @public
|
|
9
|
-
* Set a box in the MeshCollider component
|
|
10
|
-
* @param entity - entity to create or replace the TriggerArea component
|
|
11
|
-
* @param collisionMask - the collision layers mask for the trigger to react, default: Player
|
|
12
|
-
*/
|
|
13
|
-
setBox(entity: Entity, collisionMask?: ColliderLayer | ColliderLayer[]): void;
|
|
14
|
-
/**
|
|
15
|
-
* @public
|
|
16
|
-
* Set a sphere in the MeshCollider component
|
|
17
|
-
* @param entity - entity to create or replace the TriggerArea component
|
|
18
|
-
* @param collisionMask - the collision layers mask for the trigger to react, default: Player
|
|
19
|
-
*/
|
|
20
|
-
setSphere(entity: Entity, collisionMask?: ColliderLayer | ColliderLayer[]): void;
|
|
21
|
-
}
|
|
22
|
-
export declare function defineTriggerAreaComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): TriggerAreaComponentDefinitionExtended;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { TriggerArea } from '../generated/index.gen';
|
|
2
|
-
export function defineTriggerAreaComponent(engine) {
|
|
3
|
-
const theComponent = TriggerArea(engine);
|
|
4
|
-
function getCollisionMask(layers) {
|
|
5
|
-
if (Array.isArray(layers)) {
|
|
6
|
-
return layers.map((item) => item).reduce((prev, item) => prev | item, 0);
|
|
7
|
-
}
|
|
8
|
-
else if (layers) {
|
|
9
|
-
return layers;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
return {
|
|
13
|
-
...theComponent,
|
|
14
|
-
setBox(entity, collisionMask) {
|
|
15
|
-
theComponent.createOrReplace(entity, {
|
|
16
|
-
mesh: 0 /* TriggerAreaMeshType.TAMT_BOX */,
|
|
17
|
-
collisionMask: getCollisionMask(collisionMask)
|
|
18
|
-
});
|
|
19
|
-
},
|
|
20
|
-
setSphere(entity, collisionMask) {
|
|
21
|
-
theComponent.createOrReplace(entity, {
|
|
22
|
-
mesh: 1 /* TriggerAreaMeshType.TAMT_SPHERE */,
|
|
23
|
-
collisionMask: getCollisionMask(collisionMask)
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine/types';
|
|
2
|
-
import { Entity } from '../../engine';
|
|
3
|
-
export interface TagsType {
|
|
4
|
-
tags: string[];
|
|
5
|
-
}
|
|
6
|
-
export interface TagsComponentDefinitionExtended extends LastWriteWinElementSetComponentDefinition<TagsType> {
|
|
7
|
-
/**
|
|
8
|
-
* @public
|
|
9
|
-
*
|
|
10
|
-
* Add a tag to the entity's Tags component or create the component if it doesn't exist and add the tag
|
|
11
|
-
* @param entity - entity to add the tag to
|
|
12
|
-
* @param tagName - the tag name to add
|
|
13
|
-
* @returns true
|
|
14
|
-
*/
|
|
15
|
-
add(entity: Entity, tagName: string): boolean;
|
|
16
|
-
/**
|
|
17
|
-
* @public
|
|
18
|
-
*
|
|
19
|
-
* Remove a tag from the entity's Tags component
|
|
20
|
-
* @param entity - entity to remove the tag from
|
|
21
|
-
* @param tagName - the tag name to remove
|
|
22
|
-
* @returns true if successful, false if the entity doesn't have a Tags component or the tag doesn't exist
|
|
23
|
-
*/
|
|
24
|
-
remove(entity: Entity, tagName: string): boolean;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* @public
|
|
28
|
-
*
|
|
29
|
-
* Define the Tags component
|
|
30
|
-
* @param engine - the engine to define the component on
|
|
31
|
-
* @returns the Tags component definition
|
|
32
|
-
*/
|
|
33
|
-
declare function defineTagsComponent(engine: Pick<IEngine, 'defineComponent'>): TagsComponentDefinitionExtended;
|
|
34
|
-
export default defineTagsComponent;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Schemas } from '../../schemas';
|
|
2
|
-
/**
|
|
3
|
-
* @public
|
|
4
|
-
*
|
|
5
|
-
* Define the Tags component
|
|
6
|
-
* @param engine - the engine to define the component on
|
|
7
|
-
* @returns the Tags component definition
|
|
8
|
-
*/
|
|
9
|
-
function defineTagsComponent(engine) {
|
|
10
|
-
const Tags = engine.defineComponent('core-schema::Tags', {
|
|
11
|
-
tags: Schemas.Array(Schemas.String)
|
|
12
|
-
});
|
|
13
|
-
return {
|
|
14
|
-
...Tags,
|
|
15
|
-
add(entity, tagName) {
|
|
16
|
-
const tagsComponent = Tags.getMutableOrNull(entity);
|
|
17
|
-
if (tagsComponent) {
|
|
18
|
-
tagsComponent.tags.push(tagName);
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
Tags.createOrReplace(entity, { tags: [tagName] });
|
|
22
|
-
}
|
|
23
|
-
return true;
|
|
24
|
-
},
|
|
25
|
-
remove(entity, tagName) {
|
|
26
|
-
const tagsComponent = Tags.getMutableOrNull(entity);
|
|
27
|
-
if (!tagsComponent || !tagsComponent.tags)
|
|
28
|
-
return false;
|
|
29
|
-
const newTags = tagsComponent.tags.filter((tag) => tag !== tagName);
|
|
30
|
-
if (newTags.length === tagsComponent.tags.length)
|
|
31
|
-
return false;
|
|
32
|
-
tagsComponent.tags = newTags;
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
export default defineTagsComponent;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { DeepReadonlyObject, Entity } from '../engine';
|
|
2
|
-
import { PBTriggerAreaResult } from '../components';
|
|
3
|
-
/**
|
|
4
|
-
* @public
|
|
5
|
-
*/
|
|
6
|
-
export type TriggerAreaEventSystemCallback = (result: DeepReadonlyObject<PBTriggerAreaResult>) => void;
|
|
7
|
-
/**
|
|
8
|
-
* @public
|
|
9
|
-
*/
|
|
10
|
-
export interface TriggerAreaEventsSystem {
|
|
11
|
-
/**
|
|
12
|
-
* @public
|
|
13
|
-
* Execute callback when an entity enters the Trigger Area
|
|
14
|
-
* @param entity - The entity that already has the TriggerArea component
|
|
15
|
-
* @param cb - Function to execute the 'Enter' type of result is detected
|
|
16
|
-
*/
|
|
17
|
-
onTriggerEnter(entity: Entity, cb: TriggerAreaEventSystemCallback): void;
|
|
18
|
-
/**
|
|
19
|
-
* @public
|
|
20
|
-
* Remove the callback for Trigger Area 'Enter' type of result
|
|
21
|
-
* @param entity - Entity where the Trigger Area was attached
|
|
22
|
-
*/
|
|
23
|
-
removeOnTriggerEnter(entity: Entity): void;
|
|
24
|
-
/**
|
|
25
|
-
* @public
|
|
26
|
-
* Execute callback when an entity stays in the Trigger Area
|
|
27
|
-
* @param entity - The entity that already has the TriggerArea component
|
|
28
|
-
* @param cb - Function to execute the 'Stay' type of result is detected
|
|
29
|
-
*/
|
|
30
|
-
onTriggerStay(entity: Entity, cb: TriggerAreaEventSystemCallback): void;
|
|
31
|
-
/**
|
|
32
|
-
* @public
|
|
33
|
-
* Remove the callback for Trigger Area 'Stay' type of result
|
|
34
|
-
* @param entity - Entity where the Trigger Area was attached
|
|
35
|
-
*/
|
|
36
|
-
removeOnTriggerStay(entity: Entity): void;
|
|
37
|
-
/**
|
|
38
|
-
* @public
|
|
39
|
-
* Execute callback when an entity exits the Trigger Area
|
|
40
|
-
* @param entity - The entity that already has the TriggerArea component
|
|
41
|
-
* @param cb - Function to execute the 'Exit' type of result is detected
|
|
42
|
-
*/
|
|
43
|
-
onTriggerExit(entity: Entity, cb: TriggerAreaEventSystemCallback): void;
|
|
44
|
-
/**
|
|
45
|
-
* @public
|
|
46
|
-
* Remove the callback for Trigger Area 'Exit' type of result
|
|
47
|
-
* @param entity - Entity where the Trigger Area was attached
|
|
48
|
-
*/
|
|
49
|
-
removeOnTriggerExit(entity: Entity): void;
|
|
50
|
-
}
|