@dcl/ecs 7.20.2-22231111352.commit-d2f6f0a → 7.20.2-22309446491.commit-b942bde
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/generated/AvatarLocomotionSettings.gen.d.ts +1 -0
- package/dist/components/generated/AvatarLocomotionSettings.gen.js +25 -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 +11 -0
- package/dist/components/generated/global.gen.d.ts +22 -0
- package/dist/components/generated/global.gen.js +11 -0
- package/dist/components/generated/index.gen.d.ts +44 -0
- package/dist/components/generated/index.gen.js +55 -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_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_locomotion_settings.gen.d.ts +29 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_locomotion_settings.gen.js +93 -0
- 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_movement.gen.d.ts +18 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +60 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +24 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +84 -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 +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 +6 -2
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +4 -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/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 -7
- package/dist/components/index.js +11 -5
- package/dist/components/types.d.ts +2 -0
- package/dist/engine/grow-only-value-set-component-definition.js +1 -1
- package/dist/engine/input.d.ts +6 -0
- package/dist/engine/input.js +9 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/runtime/globals.d.ts +12 -2
- package/dist/runtime/globals.js +4 -3
- package/dist/systems/events.d.ts +100 -1
- package/dist/systems/events.js +143 -65
- package/dist/systems/raycast.d.ts +3 -1
- package/dist/systems/raycast.js +2 -0
- 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/generated/AvatarLocomotionSettings.gen.d.ts +1 -0
- package/dist-cjs/components/generated/AvatarLocomotionSettings.gen.js +28 -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 +11 -0
- package/dist-cjs/components/generated/global.gen.d.ts +22 -0
- package/dist-cjs/components/generated/global.gen.js +13 -1
- package/dist-cjs/components/generated/index.gen.d.ts +44 -0
- package/dist-cjs/components/generated/index.gen.js +68 -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_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_locomotion_settings.gen.d.ts +29 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_locomotion_settings.gen.js +99 -0
- 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_movement.gen.d.ts +18 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +66 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +24 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +90 -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 +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 +6 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +4 -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/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 -7
- package/dist-cjs/components/index.js +15 -7
- package/dist-cjs/components/types.d.ts +2 -0
- package/dist-cjs/engine/grow-only-value-set-component-definition.js +1 -1
- package/dist-cjs/engine/input.d.ts +6 -0
- package/dist-cjs/engine/input.js +9 -4
- package/dist-cjs/index.d.ts +1 -0
- package/dist-cjs/index.js +1 -0
- package/dist-cjs/runtime/globals.d.ts +12 -2
- package/dist-cjs/runtime/globals.js +4 -3
- package/dist-cjs/systems/events.d.ts +100 -1
- package/dist-cjs/systems/events.js +143 -65
- package/dist-cjs/systems/raycast.d.ts +3 -1
- package/dist-cjs/systems/raycast.js +2 -0
- package/package.json +2 -2
package/dist/engine/input.js
CHANGED
|
@@ -118,9 +118,8 @@ export function createInputSystem(engine) {
|
|
|
118
118
|
}
|
|
119
119
|
if (!up || !down)
|
|
120
120
|
return null;
|
|
121
|
-
// If the DOWN command has
|
|
122
|
-
|
|
123
|
-
if (down.timestamp <= up.timestamp && timestampIsCurrentFrame(up.timestamp)) {
|
|
121
|
+
// If the DOWN command has happen before the UP commands, it means that that a clicked has happen
|
|
122
|
+
if (down.timestamp < up.timestamp && timestampIsCurrentFrame(up.timestamp)) {
|
|
124
123
|
return { up, down };
|
|
125
124
|
}
|
|
126
125
|
return null;
|
|
@@ -186,11 +185,17 @@ export function createInputSystem(engine) {
|
|
|
186
185
|
function isPressed(inputAction) {
|
|
187
186
|
return globalState.buttonState.get(inputAction)?.state === 1 /* PointerEventType.PET_DOWN */;
|
|
188
187
|
}
|
|
188
|
+
function* getInputCommands() {
|
|
189
|
+
for (let i = globalState.thisFrameCommands.length - 1; i >= 0; i--) {
|
|
190
|
+
yield globalState.thisFrameCommands[i];
|
|
191
|
+
}
|
|
192
|
+
}
|
|
189
193
|
return {
|
|
190
194
|
isPressed,
|
|
191
195
|
getClick,
|
|
192
196
|
getInputCommand,
|
|
193
197
|
isClicked,
|
|
194
|
-
isTriggered
|
|
198
|
+
isTriggered,
|
|
199
|
+
getInputCommands
|
|
195
200
|
};
|
|
196
201
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from './schemas';
|
|
|
3
3
|
export * from './runtime/initialization';
|
|
4
4
|
export * from './runtime/types';
|
|
5
5
|
export * from './runtime/helpers';
|
|
6
|
+
export * from './runtime/globals';
|
|
6
7
|
export { cyclicParentingChecker } from './systems/cyclicParentingChecker';
|
|
7
8
|
export * from './systems/events';
|
|
8
9
|
export * from './systems/raycast';
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export * from './schemas';
|
|
|
4
4
|
export * from './runtime/initialization';
|
|
5
5
|
export * from './runtime/types';
|
|
6
6
|
export * from './runtime/helpers';
|
|
7
|
+
export * from './runtime/globals';
|
|
7
8
|
export { cyclicParentingChecker } from './systems/cyclicParentingChecker';
|
|
8
9
|
export * from './systems/events';
|
|
9
10
|
export * from './systems/raycast';
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Utilities for standardized globalThis access.
|
|
3
|
+
* @public
|
|
3
4
|
*/
|
|
4
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Type-safe globalThis property access.
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export declare function getGlobal<T>(key: string): T | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Sets a globalThis property as a polyfill (only if undefined/null).
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
export declare function setGlobalPolyfill<T>(key: string, value: T): void;
|
package/dist/runtime/globals.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Utilities for standardized globalThis access.
|
|
3
|
+
* @public
|
|
3
4
|
*/
|
|
4
5
|
/**
|
|
5
6
|
* Type-safe globalThis property access.
|
|
6
|
-
* @
|
|
7
|
+
* @public
|
|
7
8
|
*/
|
|
8
9
|
export function getGlobal(key) {
|
|
9
10
|
return globalThis[key];
|
|
10
11
|
}
|
|
11
12
|
/**
|
|
12
13
|
* Sets a globalThis property as a polyfill (only if undefined/null).
|
|
13
|
-
* @
|
|
14
|
+
* @public
|
|
14
15
|
*/
|
|
15
16
|
export function setGlobalPolyfill(key, value) {
|
|
16
17
|
;
|
package/dist/systems/events.d.ts
CHANGED
|
@@ -18,6 +18,12 @@ export type EventSystemOptions = {
|
|
|
18
18
|
showHighlight?: boolean;
|
|
19
19
|
maxPlayerDistance?: number;
|
|
20
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
* @public
|
|
23
|
+
*/
|
|
24
|
+
export type EventSystemOptionsCallback = EventSystemOptions & {
|
|
25
|
+
cb: EventSystemCallback;
|
|
26
|
+
};
|
|
21
27
|
export declare const getDefaultOpts: (opts?: Partial<EventSystemOptions>) => EventSystemOptions;
|
|
22
28
|
/**
|
|
23
29
|
* @public
|
|
@@ -47,11 +53,37 @@ export interface PointerEventsSystem {
|
|
|
47
53
|
* @param entity - Entity where the callback was attached
|
|
48
54
|
*/
|
|
49
55
|
removeOnPointerHoverLeave(entity: Entity): void;
|
|
56
|
+
/**
|
|
57
|
+
* @public
|
|
58
|
+
* Remove the callback for onPointerDrag event
|
|
59
|
+
* @param entity - Entity where the callback was attached
|
|
60
|
+
*/
|
|
61
|
+
removeOnPointerDrag(entity: Entity): void;
|
|
62
|
+
/**
|
|
63
|
+
* @public
|
|
64
|
+
* Remove the callback for onPointerDragLocked event
|
|
65
|
+
* @param entity - Entity where the callback was attached
|
|
66
|
+
*/
|
|
67
|
+
removeOnPointerDragLocked(entity: Entity): void;
|
|
68
|
+
/**
|
|
69
|
+
* @public
|
|
70
|
+
* Remove the callback for onPointerDragEnd event
|
|
71
|
+
* @param entity - Entity where the callback was attached
|
|
72
|
+
*/
|
|
73
|
+
removeOnPointerDragEnd(entity: Entity): void;
|
|
74
|
+
/**
|
|
75
|
+
* @public
|
|
76
|
+
* Execute callbacks when the user presses one of the InputButtons pointing at the entity
|
|
77
|
+
* @param pointerData - Entity to attach the callbacks, list of options to trigger Feedback, Button, and Callback
|
|
78
|
+
*/
|
|
79
|
+
onPointerDown(pointerData: {
|
|
80
|
+
entity: Entity;
|
|
81
|
+
optsList: EventSystemOptionsCallback[];
|
|
82
|
+
}): void;
|
|
50
83
|
/**
|
|
51
84
|
* @public
|
|
52
85
|
* Execute callback when the user press the InputButton pointing at the entity
|
|
53
86
|
* @param pointerData - Entity to attach the callback, Opts to trigger Feedback and Button
|
|
54
|
-
* @param cb - Function to execute when click fires
|
|
55
87
|
*/
|
|
56
88
|
onPointerDown(pointerData: {
|
|
57
89
|
entity: Entity;
|
|
@@ -64,6 +96,15 @@ export interface PointerEventsSystem {
|
|
|
64
96
|
* @param opts - Opts to trigger Feedback and Button
|
|
65
97
|
*/
|
|
66
98
|
onPointerDown(entity: Entity, cb: EventSystemCallback, opts?: Partial<EventSystemOptions>): void;
|
|
99
|
+
/**
|
|
100
|
+
* @public
|
|
101
|
+
* Execute callbacks when the user releases one of the InputButtons pointing at the entity
|
|
102
|
+
* @param pointerData - Entity to attach the callbacks, list of options to trigger Feedback, Button, and Callback
|
|
103
|
+
*/
|
|
104
|
+
onPointerUp(pointerData: {
|
|
105
|
+
entity: Entity;
|
|
106
|
+
optsList: EventSystemOptionsCallback[];
|
|
107
|
+
}): void;
|
|
67
108
|
/**
|
|
68
109
|
* @public
|
|
69
110
|
* Execute callback when the user releases the InputButton pointing at the entity
|
|
@@ -101,6 +142,64 @@ export interface PointerEventsSystem {
|
|
|
101
142
|
entity: Entity;
|
|
102
143
|
opts?: Partial<EventSystemOptions>;
|
|
103
144
|
}, cb: EventSystemCallback): void;
|
|
145
|
+
/**
|
|
146
|
+
* @public
|
|
147
|
+
* Execute callbacks when the user drags the pointer from inside the entity
|
|
148
|
+
* @param pointerData - Entity to attach the callbacks, list of options to trigger Feedback, Button, and Callback
|
|
149
|
+
*/
|
|
150
|
+
onPointerDrag(pointerData: {
|
|
151
|
+
entity: Entity;
|
|
152
|
+
optsList: EventSystemOptionsCallback[];
|
|
153
|
+
}): void;
|
|
154
|
+
/**
|
|
155
|
+
* @public
|
|
156
|
+
* Execute callback when the user clicks and drags the pointer from inside the entity
|
|
157
|
+
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
158
|
+
* @param cb - Function to execute when click fires
|
|
159
|
+
*/
|
|
160
|
+
onPointerDrag(pointerData: {
|
|
161
|
+
entity: Entity;
|
|
162
|
+
opts?: Partial<EventSystemOptions>;
|
|
163
|
+
}, cb: EventSystemCallback): void;
|
|
164
|
+
/**
|
|
165
|
+
* @public
|
|
166
|
+
* Execute callbacks when the user drags the pointer from inside the entity, locking the cursor in place.
|
|
167
|
+
* @param pointerData - Entity to attach the callbacks, list of options to trigger Feedback, Button, and Callback
|
|
168
|
+
*/
|
|
169
|
+
onPointerDragLocked(pointerData: {
|
|
170
|
+
entity: Entity;
|
|
171
|
+
optsList: EventSystemOptionsCallback[];
|
|
172
|
+
}): void;
|
|
173
|
+
/**
|
|
174
|
+
* @public
|
|
175
|
+
* Execute callback when the user clicks and drags the pointer from inside the entity,
|
|
176
|
+
* locking the cursor in place
|
|
177
|
+
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
178
|
+
* @param cb - Function to execute when click fires
|
|
179
|
+
*/
|
|
180
|
+
onPointerDragLocked(pointerData: {
|
|
181
|
+
entity: Entity;
|
|
182
|
+
opts?: Partial<EventSystemOptions>;
|
|
183
|
+
}, cb: EventSystemCallback): void;
|
|
184
|
+
/**
|
|
185
|
+
* @public
|
|
186
|
+
* Execute callbacks when the user releases a button after a drag
|
|
187
|
+
* @param pointerData - Entity to attach the callbacks, list of options to trigger Feedback, Button, and Callback
|
|
188
|
+
*/
|
|
189
|
+
onPointerDragEnd(pointerData: {
|
|
190
|
+
entity: Entity;
|
|
191
|
+
optsList: EventSystemOptionsCallback[];
|
|
192
|
+
}): void;
|
|
193
|
+
/**
|
|
194
|
+
* @public
|
|
195
|
+
* Execute callback when the user releases the button after a drag
|
|
196
|
+
* @param pointerData - Entity to attach the callback - Opts to trigger Feedback and Button
|
|
197
|
+
* @param cb - Function to execute when click fires
|
|
198
|
+
*/
|
|
199
|
+
onPointerDragEnd(pointerData: {
|
|
200
|
+
entity: Entity;
|
|
201
|
+
opts?: Partial<EventSystemOptions>;
|
|
202
|
+
}, cb: EventSystemCallback): void;
|
|
104
203
|
}
|
|
105
204
|
/**
|
|
106
205
|
* @public
|
package/dist/systems/events.js
CHANGED
|
@@ -18,6 +18,9 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
18
18
|
EventType[EventType["Up"] = 2] = "Up";
|
|
19
19
|
EventType[EventType["HoverEnter"] = 3] = "HoverEnter";
|
|
20
20
|
EventType[EventType["HoverLeave"] = 4] = "HoverLeave";
|
|
21
|
+
EventType[EventType["Drag"] = 5] = "Drag";
|
|
22
|
+
EventType[EventType["DragLocked"] = 6] = "DragLocked";
|
|
23
|
+
EventType[EventType["DragEnd"] = 7] = "DragEnd";
|
|
21
24
|
})(EventType || (EventType = {}));
|
|
22
25
|
const eventsMap = new Map();
|
|
23
26
|
function getEvent(entity) {
|
|
@@ -53,77 +56,148 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
53
56
|
else if (eventType === EventType.HoverEnter) {
|
|
54
57
|
return 2 /* PointerEventType.PET_HOVER_ENTER */;
|
|
55
58
|
}
|
|
59
|
+
else if (eventType === EventType.Drag) {
|
|
60
|
+
return 5 /* PointerEventType.PET_DRAG */;
|
|
61
|
+
}
|
|
62
|
+
else if (eventType === EventType.DragLocked) {
|
|
63
|
+
return 4 /* PointerEventType.PET_DRAG_LOCKED */;
|
|
64
|
+
}
|
|
65
|
+
else if (eventType === EventType.DragEnd) {
|
|
66
|
+
return 6 /* PointerEventType.PET_DRAG_END */;
|
|
67
|
+
}
|
|
56
68
|
return 1 /* PointerEventType.PET_DOWN */;
|
|
57
69
|
}
|
|
70
|
+
function getEventType(pet) {
|
|
71
|
+
if (pet === 0 /* PointerEventType.PET_UP */) {
|
|
72
|
+
return EventType.Up;
|
|
73
|
+
}
|
|
74
|
+
else if (pet === 2 /* PointerEventType.PET_HOVER_ENTER */) {
|
|
75
|
+
return EventType.HoverEnter;
|
|
76
|
+
}
|
|
77
|
+
else if (pet === 3 /* PointerEventType.PET_HOVER_LEAVE */) {
|
|
78
|
+
return EventType.HoverLeave;
|
|
79
|
+
}
|
|
80
|
+
else if (pet === 5 /* PointerEventType.PET_DRAG */) {
|
|
81
|
+
return EventType.Drag;
|
|
82
|
+
}
|
|
83
|
+
else if (pet === 4 /* PointerEventType.PET_DRAG_LOCKED */) {
|
|
84
|
+
return EventType.DragLocked;
|
|
85
|
+
}
|
|
86
|
+
else if (pet === 6 /* PointerEventType.PET_DRAG_END */) {
|
|
87
|
+
return EventType.DragEnd;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
return EventType.Down;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
58
93
|
function removeEvent(entity, type) {
|
|
59
94
|
const event = getEvent(entity);
|
|
60
|
-
const
|
|
61
|
-
if (
|
|
62
|
-
|
|
95
|
+
const pointerEventList = event.get(type);
|
|
96
|
+
if (pointerEventList === undefined) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
for (const button of pointerEventList.keys()) {
|
|
100
|
+
removePointerEvent(entity, getPointerEvent(type), button);
|
|
63
101
|
}
|
|
64
102
|
event.delete(type);
|
|
65
103
|
}
|
|
66
104
|
engine.addSystem(function EventSystem() {
|
|
67
|
-
|
|
105
|
+
if (eventsMap.size === 0) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
for (const entity of eventsMap.keys()) {
|
|
68
109
|
if (engine.getEntityState(entity) === EntityState.Removed) {
|
|
69
110
|
eventsMap.delete(entity);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
for (const command of inputSystem.getInputCommands()) {
|
|
114
|
+
const entity = command.hit?.entityId;
|
|
115
|
+
if (entity === undefined) {
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
const entityMap = eventsMap.get(entity);
|
|
119
|
+
if (entityMap === undefined) {
|
|
70
120
|
continue;
|
|
71
121
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
122
|
+
const typeMap = entityMap.get(getEventType(command.state));
|
|
123
|
+
if (typeMap) {
|
|
124
|
+
const data = typeMap.get(command.button);
|
|
125
|
+
if (data) {
|
|
126
|
+
checkNotThenable(data.cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
|
|
77
127
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
128
|
+
const anyData = typeMap.get(3 /* InputAction.IA_ANY */);
|
|
129
|
+
if (anyData) {
|
|
130
|
+
checkNotThenable(anyData.cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// check clicks separately
|
|
134
|
+
if (command.state === 0 /* PointerEventType.PET_UP */) {
|
|
135
|
+
const clickMap = entityMap.get(EventType.Click);
|
|
136
|
+
if (clickMap) {
|
|
137
|
+
const data = clickMap.get(command.button);
|
|
138
|
+
if (data && inputSystem.getClick(command.button, entity)) {
|
|
139
|
+
checkNotThenable(data.cb(command), 'Click event returned a thenable. Only synchronous functions are allowed');
|
|
140
|
+
}
|
|
141
|
+
const anyData = clickMap.get(3 /* InputAction.IA_ANY */);
|
|
142
|
+
if (anyData && inputSystem.getClick(command.button, entity)) {
|
|
143
|
+
checkNotThenable(anyData.cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
|
|
85
144
|
}
|
|
86
145
|
}
|
|
87
146
|
}
|
|
88
147
|
}
|
|
89
148
|
});
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
149
|
+
// return a function with the correct event type.
|
|
150
|
+
// we use onPointerDown as the "archetype" for the returned function, but it fits with
|
|
151
|
+
// all the onPointer* declarations
|
|
152
|
+
const onPointerFunction = (ty) => {
|
|
153
|
+
return (arg0, arg1, arg2) => {
|
|
154
|
+
let entity;
|
|
155
|
+
let optsList;
|
|
156
|
+
if (typeof arg0 === 'number') {
|
|
157
|
+
// called as onPointerDown(entity: Entity, cb: EventSystemCallback, opts?: Partial<EventSystemOptions>): void
|
|
158
|
+
entity = arg0;
|
|
159
|
+
const cb = arg1;
|
|
160
|
+
const opts = arg2;
|
|
161
|
+
optsList = [{ cb, ...getDefaultOpts(opts) }];
|
|
162
|
+
}
|
|
163
|
+
else if (typeof arg1 === 'function') {
|
|
164
|
+
// called as onPointerDown(pointerData: { entity: Entity; opts?: Partial<EventSystemOptions> }, cb: EventSystemCallback): void
|
|
165
|
+
const { entity: e, opts } = arg0;
|
|
166
|
+
const cb = arg1;
|
|
167
|
+
entity = e;
|
|
168
|
+
optsList = [{ cb, ...getDefaultOpts(opts) }];
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
// called as onPointerDown(pointerData: { entity: Entity; optsList: EventSystemOptionsCallback[] }): void
|
|
172
|
+
const { entity: e, optsList: o } = arg0;
|
|
173
|
+
entity = e;
|
|
174
|
+
optsList = o;
|
|
175
|
+
}
|
|
176
|
+
const previous = getEvent(entity).get(ty) ?? new Map();
|
|
177
|
+
const callbacks = new Map();
|
|
178
|
+
for (const opts of optsList) {
|
|
179
|
+
const prevOpts = previous.get(opts.button);
|
|
180
|
+
if (prevOpts !== undefined) {
|
|
181
|
+
if (prevOpts.hoverText !== opts.hoverText ||
|
|
182
|
+
prevOpts.maxDistance !== opts.maxDistance ||
|
|
183
|
+
prevOpts.showFeedback !== opts.showFeedback ||
|
|
184
|
+
prevOpts.showHighlight !== opts.showHighlight) {
|
|
185
|
+
removePointerEvent(entity, getPointerEvent(ty), opts.button);
|
|
186
|
+
setPointerEvent(entity, getPointerEvent(ty), opts);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
setPointerEvent(entity, getPointerEvent(ty), opts);
|
|
191
|
+
}
|
|
192
|
+
callbacks.set(opts.button, opts);
|
|
193
|
+
}
|
|
194
|
+
for (const button of previous.keys()) {
|
|
195
|
+
if (!callbacks.has(button)) {
|
|
196
|
+
removePointerEvent(entity, getPointerEvent(ty), button);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
getEvent(entity).set(ty, callbacks);
|
|
200
|
+
};
|
|
127
201
|
};
|
|
128
202
|
return {
|
|
129
203
|
removeOnClick(entity) {
|
|
@@ -141,18 +215,22 @@ export function createPointerEventsSystem(engine, inputSystem) {
|
|
|
141
215
|
removeOnPointerHoverLeave(entity) {
|
|
142
216
|
removeEvent(entity, EventType.HoverLeave);
|
|
143
217
|
},
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
removeEvent(entity, EventType.
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
218
|
+
removeOnPointerDrag(entity) {
|
|
219
|
+
removeEvent(entity, EventType.Drag);
|
|
220
|
+
},
|
|
221
|
+
removeOnPointerDragLocked(entity) {
|
|
222
|
+
removeEvent(entity, EventType.DragLocked);
|
|
223
|
+
},
|
|
224
|
+
removeOnPointerDragEnd(entity) {
|
|
225
|
+
removeEvent(entity, EventType.DragEnd);
|
|
152
226
|
},
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
227
|
+
onClick: onPointerFunction(EventType.Click),
|
|
228
|
+
onPointerDown: onPointerFunction(EventType.Down),
|
|
229
|
+
onPointerUp: onPointerFunction(EventType.Up),
|
|
230
|
+
onPointerHoverEnter: onPointerFunction(EventType.HoverEnter),
|
|
231
|
+
onPointerHoverLeave: onPointerFunction(EventType.HoverLeave),
|
|
232
|
+
onPointerDrag: onPointerFunction(EventType.Drag),
|
|
233
|
+
onPointerDragLocked: onPointerFunction(EventType.DragLocked),
|
|
234
|
+
onPointerDragEnd: onPointerFunction(EventType.DragEnd)
|
|
157
235
|
};
|
|
158
236
|
}
|
|
@@ -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,8 @@ export type RaycastSystemOptions = {
|
|
|
14
14
|
queryType: RaycastQueryType;
|
|
15
15
|
continuous?: boolean | undefined;
|
|
16
16
|
collisionMask?: number | undefined;
|
|
17
|
+
shape?: RaycastShape | undefined;
|
|
18
|
+
includeWorld?: boolean | undefined;
|
|
17
19
|
};
|
|
18
20
|
export type LocalDirectionRaycastSystemOptions = {
|
|
19
21
|
direction?: Vector3;
|
package/dist/systems/raycast.js
CHANGED
|
@@ -58,6 +58,8 @@ export function createRaycastSystem(engine) {
|
|
|
58
58
|
raycast.direction = raycastValue.directionRawValue;
|
|
59
59
|
raycast.continuous = raycastValue.continuous;
|
|
60
60
|
raycast.queryType = raycastValue.queryType;
|
|
61
|
+
raycast.shape = raycastValue.shape;
|
|
62
|
+
raycast.includeWorld = raycastValue.includeWorld;
|
|
61
63
|
entitiesCallbackResultMap.set(entity, { callback: callback });
|
|
62
64
|
};
|
|
63
65
|
nextTickRaycasts.push(onNextTick);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine';
|
|
2
|
+
import { PBAvatarEquippedData } from '../generated/pb/decentraland/sdk/components/avatar_equipped_data.gen';
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export type AvatarEquippedDataComponentDefinitionExtended = LastWriteWinElementSetComponentDefinition<AvatarEquippedDataType>;
|
|
7
|
+
export type AvatarEquippedDataType = Omit<PBAvatarEquippedData, 'forceRender'> & {
|
|
8
|
+
forceRender?: string[] | undefined;
|
|
9
|
+
};
|
|
10
|
+
export declare function defineAvatarEquippedDataComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): AvatarEquippedDataComponentDefinitionExtended;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineAvatarEquippedDataComponent = void 0;
|
|
4
|
+
const AvatarEquippedData_gen_1 = require("../generated/AvatarEquippedData.gen");
|
|
5
|
+
function defineAvatarEquippedDataComponent(engine) {
|
|
6
|
+
const patchedSchema = { ...AvatarEquippedData_gen_1.AvatarEquippedDataSchema };
|
|
7
|
+
const origSerialize = patchedSchema.serialize;
|
|
8
|
+
patchedSchema.serialize = (value, builder) => {
|
|
9
|
+
if (value.forceRender === undefined) {
|
|
10
|
+
origSerialize({ forceRender: [], ...value }, builder);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
origSerialize(value, builder);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
const theComponent = engine.defineComponentFromSchema('core::AvatarEquippedData', patchedSchema);
|
|
17
|
+
return theComponent;
|
|
18
|
+
}
|
|
19
|
+
exports.defineAvatarEquippedDataComponent = defineAvatarEquippedDataComponent;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IEngine, LastWriteWinElementSetComponentDefinition } from '../../engine';
|
|
2
|
+
import { PBAvatarShape } from '../generated/pb/decentraland/sdk/components/avatar_shape.gen';
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export type AvatarShapeComponentDefinitionExtended = LastWriteWinElementSetComponentDefinition<AvatarShapeType>;
|
|
7
|
+
export type AvatarShapeType = Omit<PBAvatarShape, 'forceRender'> & {
|
|
8
|
+
forceRender?: string[] | undefined;
|
|
9
|
+
};
|
|
10
|
+
export declare function defineAvatarShapeComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): AvatarShapeComponentDefinitionExtended;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineAvatarShapeComponent = void 0;
|
|
4
|
+
const AvatarShape_gen_1 = require("../generated/AvatarShape.gen");
|
|
5
|
+
function defineAvatarShapeComponent(engine) {
|
|
6
|
+
const patchedSchema = { ...AvatarShape_gen_1.AvatarShapeSchema };
|
|
7
|
+
const origSerialize = patchedSchema.serialize;
|
|
8
|
+
patchedSchema.serialize = (value, builder) => {
|
|
9
|
+
if (value.forceRender === undefined) {
|
|
10
|
+
origSerialize({ forceRender: [], ...value }, builder);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
origSerialize(value, builder);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
const theComponent = engine.defineComponentFromSchema('core::AvatarShape', patchedSchema);
|
|
17
|
+
return theComponent;
|
|
18
|
+
}
|
|
19
|
+
exports.defineAvatarShapeComponent = defineAvatarShapeComponent;
|
|
@@ -34,5 +34,13 @@ 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 gltf internal mesh in the MeshCollider component
|
|
40
|
+
* @param entity - entity to create or replace the MeshRenderer component
|
|
41
|
+
* @param source - the path to the gltf
|
|
42
|
+
* @param meshName - the name of the mesh in the gltf
|
|
43
|
+
*/
|
|
44
|
+
setGltfMesh(entity: Entity, source: string, meshName: string, colliderLayers?: ColliderLayer | ColliderLayer[]): void;
|
|
37
45
|
}
|
|
38
46
|
export declare function defineMeshColliderComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): MeshColliderComponentDefinitionExtended;
|
|
@@ -37,6 +37,12 @@ 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
|
+
});
|
|
40
46
|
}
|
|
41
47
|
};
|
|
42
48
|
}
|
|
@@ -32,5 +32,13 @@ 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 gltf internal mesh 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
|
|
41
|
+
*/
|
|
42
|
+
setGltfMesh(entity: Entity, source: string, meshName: string): void;
|
|
35
43
|
}
|
|
36
44
|
export declare function defineMeshRendererComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): MeshRendererComponentDefinitionExtended;
|
|
@@ -25,6 +25,11 @@ 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
|
+
});
|
|
28
33
|
}
|
|
29
34
|
};
|
|
30
35
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AvatarLocomotionSettingsSchema = void 0;
|
|
4
|
+
const avatar_locomotion_settings_gen_1 = require("./pb/decentraland/sdk/components/avatar_locomotion_settings.gen");
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
exports.AvatarLocomotionSettingsSchema = {
|
|
9
|
+
COMPONENT_ID: 1211,
|
|
10
|
+
serialize(value, builder) {
|
|
11
|
+
const writer = avatar_locomotion_settings_gen_1.PBAvatarLocomotionSettings.encode(value);
|
|
12
|
+
const buffer = new Uint8Array(writer.finish(), 0, writer.len);
|
|
13
|
+
builder.writeBuffer(buffer, false);
|
|
14
|
+
},
|
|
15
|
+
deserialize(reader) {
|
|
16
|
+
return avatar_locomotion_settings_gen_1.PBAvatarLocomotionSettings.decode(reader.buffer(), reader.remainingBytes());
|
|
17
|
+
},
|
|
18
|
+
create() {
|
|
19
|
+
// TODO: this is a hack.
|
|
20
|
+
return avatar_locomotion_settings_gen_1.PBAvatarLocomotionSettings.decode(new Uint8Array());
|
|
21
|
+
},
|
|
22
|
+
jsonSchema: {
|
|
23
|
+
type: "object",
|
|
24
|
+
properties: {},
|
|
25
|
+
serializationType: "protocol-buffer",
|
|
26
|
+
protocolBuffer: "PBAvatarLocomotionSettings"
|
|
27
|
+
}
|
|
28
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|