@dcl/ecs 7.29.1-35861881691.commit-e4e55e9 → 7.29.1-35901015152.commit-d1b7b96
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/extended/AvatarEquippedData.d.ts +15 -0
- package/dist/components/extended/AvatarEquippedData.js +10 -0
- package/dist/components/extended/AvatarShape.d.ts +15 -0
- package/dist/components/extended/AvatarShape.js +10 -0
- package/dist/components/extended/MeshCollider.d.ts +9 -0
- package/dist/components/extended/MeshCollider.js +6 -0
- package/dist/components/extended/MeshRenderer.d.ts +8 -0
- package/dist/components/extended/MeshRenderer.js +5 -0
- package/dist/components/generated/AvatarMovement.gen.d.ts +1 -0
- package/dist/components/generated/AvatarMovement.gen.js +25 -0
- package/dist/components/generated/AvatarMovementInfo.gen.d.ts +1 -0
- package/dist/components/generated/AvatarMovementInfo.gen.js +25 -0
- package/dist/components/generated/CameraLayer.gen.d.ts +1 -0
- package/dist/components/generated/CameraLayer.gen.js +25 -0
- package/dist/components/generated/CameraLayers.gen.d.ts +1 -0
- package/dist/components/generated/CameraLayers.gen.js +25 -0
- package/dist/components/generated/GlobalLight.gen.d.ts +1 -0
- package/dist/components/generated/GlobalLight.gen.js +25 -0
- package/dist/components/generated/GltfNode.gen.d.ts +1 -0
- package/dist/components/generated/GltfNode.gen.js +25 -0
- package/dist/components/generated/GltfNodeState.gen.d.ts +1 -0
- package/dist/components/generated/GltfNodeState.gen.js +25 -0
- package/dist/components/generated/TextureCamera.gen.d.ts +1 -0
- package/dist/components/generated/TextureCamera.gen.js +25 -0
- package/dist/components/generated/UiCanvas.gen.d.ts +1 -0
- package/dist/components/generated/UiCanvas.gen.js +25 -0
- package/dist/components/generated/UiScrollResult.gen.d.ts +1 -0
- package/dist/components/generated/UiScrollResult.gen.js +25 -0
- package/dist/components/generated/component-names.gen.js +10 -0
- package/dist/components/generated/global.gen.d.ts +20 -4
- package/dist/components/generated/global.gen.js +10 -2
- package/dist/components/generated/index.gen.d.ts +40 -0
- package/dist/components/generated/index.gen.js +50 -0
- package/dist/components/generated/pb/decentraland/common/texture.gen.d.ts +20 -0
- package/dist/components/generated/pb/decentraland/common/texture.gen.js +65 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_base.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_base.gen.js +17 -1
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +10 -1
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +10 -1
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.d.ts +57 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +204 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +65 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +228 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +10 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +30 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +104 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +14 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +50 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +10 -1
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +4 -1
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +3 -0
- package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +34 -0
- package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.js +61 -0
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +19 -0
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +46 -1
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +50 -0
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +41 -0
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +27 -0
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +59 -0
- package/dist/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +22 -0
- package/dist/components/generated/pb/decentraland/sdk/components/material.gen.js +57 -1
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +20 -0
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +56 -0
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +21 -3
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +56 -0
- package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +8 -2
- package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +3 -0
- package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.d.ts +13 -0
- package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.js +30 -0
- package/dist/components/generated/pb/decentraland/sdk/components/text_shape.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/text_shape.gen.js +10 -0
- package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +74 -0
- package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +191 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +19 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +60 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.js +10 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +6 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +30 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +15 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +42 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +2 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +10 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +35 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +90 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +6 -0
- package/dist/components/types.d.ts +2 -0
- package/dist/engine/input.js +8 -8
- package/dist/engine/lww-element-set-component-definition.js +14 -20
- package/dist/engine/readonly.d.ts +1 -1
- package/dist/engine/readonly.js +0 -10
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -0
- package/dist/schemas/OneOf.js +1 -13
- package/dist/systems/cyclicParentingChecker.js +4 -9
- package/dist/systems/events.d.ts +48 -0
- package/dist/systems/events.js +70 -48
- package/dist/systems/raycast.d.ts +5 -1
- package/dist/systems/raycast.js +5 -1
- package/dist-cjs/components/extended/AvatarEquippedData.d.ts +15 -0
- package/dist-cjs/components/extended/AvatarEquippedData.js +14 -0
- package/dist-cjs/components/extended/AvatarShape.d.ts +15 -0
- package/dist-cjs/components/extended/AvatarShape.js +14 -0
- package/dist-cjs/components/extended/MeshCollider.d.ts +9 -0
- package/dist-cjs/components/extended/MeshCollider.js +6 -0
- package/dist-cjs/components/extended/MeshRenderer.d.ts +8 -0
- package/dist-cjs/components/extended/MeshRenderer.js +5 -0
- package/dist-cjs/components/generated/AvatarMovement.gen.d.ts +1 -0
- package/dist-cjs/components/generated/AvatarMovement.gen.js +28 -0
- package/dist-cjs/components/generated/AvatarMovementInfo.gen.d.ts +1 -0
- package/dist-cjs/components/generated/AvatarMovementInfo.gen.js +28 -0
- package/dist-cjs/components/generated/CameraLayer.gen.d.ts +1 -0
- package/dist-cjs/components/generated/CameraLayer.gen.js +28 -0
- package/dist-cjs/components/generated/CameraLayers.gen.d.ts +1 -0
- package/dist-cjs/components/generated/CameraLayers.gen.js +28 -0
- package/dist-cjs/components/generated/GlobalLight.gen.d.ts +1 -0
- package/dist-cjs/components/generated/GlobalLight.gen.js +28 -0
- package/dist-cjs/components/generated/GltfNode.gen.d.ts +1 -0
- package/dist-cjs/components/generated/GltfNode.gen.js +28 -0
- package/dist-cjs/components/generated/GltfNodeState.gen.d.ts +1 -0
- package/dist-cjs/components/generated/GltfNodeState.gen.js +28 -0
- package/dist-cjs/components/generated/TextureCamera.gen.d.ts +1 -0
- package/dist-cjs/components/generated/TextureCamera.gen.js +28 -0
- package/dist-cjs/components/generated/UiCanvas.gen.d.ts +1 -0
- package/dist-cjs/components/generated/UiCanvas.gen.js +28 -0
- package/dist-cjs/components/generated/UiScrollResult.gen.d.ts +1 -0
- package/dist-cjs/components/generated/UiScrollResult.gen.js +28 -0
- package/dist-cjs/components/generated/component-names.gen.js +10 -0
- package/dist-cjs/components/generated/global.gen.d.ts +20 -4
- package/dist-cjs/components/generated/global.gen.js +12 -4
- package/dist-cjs/components/generated/index.gen.d.ts +40 -0
- package/dist-cjs/components/generated/index.gen.js +62 -2
- package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.d.ts +20 -0
- package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.js +66 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_base.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_base.gen.js +17 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +10 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +10 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.d.ts +57 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +210 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +65 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +234 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +10 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +30 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +110 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +14 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +56 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +10 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +4 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +3 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +34 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.js +67 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +19 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +46 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +50 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +47 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +27 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +65 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +22 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.js +58 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +20 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +57 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +21 -3
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +57 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +8 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +3 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/raycast.gen.d.ts +13 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/raycast.gen.js +31 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/text_shape.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/text_shape.gen.js +10 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +74 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +197 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +19 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +66 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_dropdown.gen.js +10 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +6 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +30 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +15 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +48 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +2 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +10 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +35 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +91 -1
- package/dist-cjs/components/index.d.ts +4 -0
- package/dist-cjs/components/index.js +9 -1
- package/dist-cjs/components/types.d.ts +2 -0
- package/dist-cjs/engine/input.js +8 -8
- package/dist-cjs/engine/lww-element-set-component-definition.js +14 -20
- package/dist-cjs/engine/readonly.d.ts +1 -1
- package/dist-cjs/engine/readonly.js +0 -10
- package/dist-cjs/index.d.ts +3 -1
- package/dist-cjs/index.js +4 -1
- package/dist-cjs/schemas/OneOf.js +1 -13
- package/dist-cjs/systems/cyclicParentingChecker.js +4 -9
- package/dist-cjs/systems/events.d.ts +48 -0
- package/dist-cjs/systems/events.js +70 -48
- package/dist-cjs/systems/raycast.d.ts +5 -1
- package/dist-cjs/systems/raycast.js +5 -1
- package/package.json +2 -2
|
@@ -5,6 +5,8 @@ import { AudioSourceComponentDefinitionExtended } from './extended/AudioSource';
|
|
|
5
5
|
import { AudioAnalysisComponentDefinitionExtended } from './extended/AudioAnalysis';
|
|
6
6
|
import type { AudioAnalysisView } from './extended/AudioAnalysis';
|
|
7
7
|
import { MaterialComponentDefinitionExtended } from './extended/Material';
|
|
8
|
+
import { AvatarEquippedDataComponentDefinitionExtended } from './extended/AvatarEquippedData';
|
|
9
|
+
import { AvatarShapeComponentDefinitionExtended } from './extended/AvatarShape';
|
|
8
10
|
import { MeshColliderComponentDefinitionExtended } from './extended/MeshCollider';
|
|
9
11
|
import { MeshRendererComponentDefinitionExtended } from './extended/MeshRenderer';
|
|
10
12
|
import { TweenComponentDefinitionExtended } from './extended/Tween';
|
|
@@ -33,6 +35,8 @@ export declare const AudioAnalysis: LwwComponentGetter<AudioAnalysisComponentDef
|
|
|
33
35
|
export declare const AudioStream: (engine: Pick<IEngine, 'defineComponentFromSchema' | 'defineValueSetComponentFromSchema'>) => AudioStreamComponentDefinitionExtended;
|
|
34
36
|
export declare const MeshRenderer: LwwComponentGetter<MeshRendererComponentDefinitionExtended>;
|
|
35
37
|
export declare const MeshCollider: LwwComponentGetter<MeshColliderComponentDefinitionExtended>;
|
|
38
|
+
export declare const AvatarShape: LwwComponentGetter<AvatarShapeComponentDefinitionExtended>;
|
|
39
|
+
export declare const AvatarEquippedData: LwwComponentGetter<AvatarEquippedDataComponentDefinitionExtended>;
|
|
36
40
|
export declare const Tween: LwwComponentGetter<TweenComponentDefinitionExtended>;
|
|
37
41
|
export declare const VirtualCamera: LwwComponentGetter<VirtualCameraComponentDefinitionExtended>;
|
|
38
42
|
export declare const InputModifier: LwwComponentGetter<InputModifierComponentDefinitionExtended>;
|
|
@@ -17,11 +17,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.MediaState = exports.NetworkParent = exports.NetworkEntity = exports.SyncComponents = exports.Tags = exports.Name = exports.TouchScreenControls = exports.ParticleSystem = exports.TriggerArea = exports.LightSource = exports.InputModifier = exports.VirtualCamera = exports.Tween = exports.MeshCollider = exports.MeshRenderer = exports.AudioStream = exports.AudioAnalysis = exports.AudioSource = exports.Animator = exports.Material = exports.Transform = void 0;
|
|
20
|
+
exports.MediaState = exports.NetworkParent = exports.NetworkEntity = exports.SyncComponents = exports.Tags = exports.Name = exports.TouchScreenControls = exports.ParticleSystem = exports.TriggerArea = exports.LightSource = exports.InputModifier = exports.VirtualCamera = exports.Tween = exports.AvatarEquippedData = exports.AvatarShape = exports.MeshCollider = exports.MeshRenderer = exports.AudioStream = exports.AudioAnalysis = exports.AudioSource = exports.Animator = exports.Material = exports.Transform = void 0;
|
|
21
21
|
const Animator_1 = require("./extended/Animator");
|
|
22
22
|
const AudioSource_1 = require("./extended/AudioSource");
|
|
23
23
|
const AudioAnalysis_1 = require("./extended/AudioAnalysis");
|
|
24
24
|
const Material_1 = require("./extended/Material");
|
|
25
|
+
const AvatarEquippedData_1 = require("./extended/AvatarEquippedData");
|
|
26
|
+
const AvatarShape_1 = require("./extended/AvatarShape");
|
|
25
27
|
const MeshCollider_1 = require("./extended/MeshCollider");
|
|
26
28
|
const MeshRenderer_1 = require("./extended/MeshRenderer");
|
|
27
29
|
const Tween_1 = require("./extended/Tween");
|
|
@@ -66,6 +68,12 @@ exports.MeshRenderer = MeshRenderer;
|
|
|
66
68
|
const MeshCollider = (engine) => (0, MeshCollider_1.defineMeshColliderComponent)(engine);
|
|
67
69
|
exports.MeshCollider = MeshCollider;
|
|
68
70
|
/* @__PURE__ */
|
|
71
|
+
const AvatarShape = (engine) => (0, AvatarShape_1.defineAvatarShapeComponent)(engine);
|
|
72
|
+
exports.AvatarShape = AvatarShape;
|
|
73
|
+
/* @__PURE__ */
|
|
74
|
+
const AvatarEquippedData = (engine) => (0, AvatarEquippedData_1.defineAvatarEquippedDataComponent)(engine);
|
|
75
|
+
exports.AvatarEquippedData = AvatarEquippedData;
|
|
76
|
+
/* @__PURE__ */
|
|
69
77
|
const Tween = (engine) => (0, Tween_1.defineTweenComponent)(engine);
|
|
70
78
|
exports.Tween = Tween;
|
|
71
79
|
/* @__PURE__ */
|
|
@@ -4,6 +4,8 @@ export type { AudioAnalysisComponentDefinitionExtended, AudioAnalysisView } from
|
|
|
4
4
|
export type { AudioStreamComponentDefinitionExtended } from './extended/AudioStream';
|
|
5
5
|
export type { MeshRendererComponentDefinitionExtended } from './extended/MeshRenderer';
|
|
6
6
|
export type { MeshColliderComponentDefinitionExtended } from './extended/MeshCollider';
|
|
7
|
+
export type { AvatarShapeComponentDefinitionExtended, AvatarShapeType } from './extended/AvatarShape';
|
|
8
|
+
export type { AvatarEquippedDataComponentDefinitionExtended, AvatarEquippedDataType } from './extended/AvatarEquippedData';
|
|
7
9
|
export type { TextureHelper, MaterialComponentDefinitionExtended, FlatTexture, ReadonlyFlatMaterial, ReadonlyFlatTexture, FlatMaterial } from './extended/Material';
|
|
8
10
|
export type { TweenHelper, TweenComponentDefinitionExtended, SetMoveRotateScaleParams, MoveRotateScaleModeParams } from './extended/Tween';
|
|
9
11
|
export type { CameraTransitionHelper, VirtualCameraComponentDefinitionExtended } from './extended/VirtualCamera';
|
package/dist-cjs/engine/input.js
CHANGED
|
@@ -83,22 +83,22 @@ function createInputSystem(engine) {
|
|
|
83
83
|
const arrayCommands = Array.from(commands);
|
|
84
84
|
for (let i = arrayCommands.length - 1; i >= 0; i--) {
|
|
85
85
|
const command = arrayCommands[i];
|
|
86
|
-
// Commands are kept sorted by timestamp, so this one and every one
|
|
87
|
-
// below it belongs to a frame that was already accounted for. Stopping
|
|
88
|
-
// on the button state instead would end this entity's whole loop over
|
|
89
|
-
// a button another entity had already reported this frame.
|
|
90
|
-
if (command.timestamp <= globalState.previousFrameMaxTimestamp) {
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
86
|
if (command.timestamp > maxTimestamp) {
|
|
94
87
|
maxTimestamp = command.timestamp;
|
|
95
88
|
}
|
|
96
|
-
globalState.
|
|
89
|
+
if (command.timestamp > globalState.previousFrameMaxTimestamp) {
|
|
90
|
+
globalState.thisFrameCommands.push(command);
|
|
91
|
+
}
|
|
97
92
|
if (command.state === 0 /* PointerEventType.PET_UP */ || command.state === 1 /* PointerEventType.PET_DOWN */) {
|
|
98
93
|
const prevCommand = globalState.buttonState.get(command.button);
|
|
99
94
|
if (!prevCommand || command.timestamp > prevCommand.timestamp) {
|
|
100
95
|
globalState.buttonState.set(command.button, command);
|
|
101
96
|
}
|
|
97
|
+
else {
|
|
98
|
+
// since we are iterating a descending array, we can early finish the
|
|
99
|
+
// loop
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
}
|
|
@@ -208,16 +208,12 @@ function createComponentDefinitionFromSchema(componentName, componentId, schema)
|
|
|
208
208
|
return data.has(entity);
|
|
209
209
|
},
|
|
210
210
|
deleteFrom(entity, markAsDirty = true) {
|
|
211
|
-
// Presence, not truthiness: a component defined from a primitive schema can
|
|
212
|
-
// legitimately hold 0, false or an empty string, and deleting one must still
|
|
213
|
-
// return the value that was there.
|
|
214
|
-
const had = data.has(entity);
|
|
215
211
|
const component = data.get(entity);
|
|
216
212
|
if (data.delete(entity) && markAsDirty) {
|
|
217
213
|
dirtyIterator.add(entity);
|
|
218
214
|
}
|
|
219
215
|
lastSentData.delete(entity);
|
|
220
|
-
return
|
|
216
|
+
return component || null;
|
|
221
217
|
},
|
|
222
218
|
entityDeleted(entity, markAsDirty) {
|
|
223
219
|
if (data.delete(entity) && markAsDirty) {
|
|
@@ -226,20 +222,19 @@ function createComponentDefinitionFromSchema(componentName, componentId, schema)
|
|
|
226
222
|
lastSentData.delete(entity);
|
|
227
223
|
},
|
|
228
224
|
getOrNull(entity) {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
if (!data.has(entity))
|
|
232
|
-
return null;
|
|
233
|
-
return (0, readonly_1.deepReadonly)(data.get(entity));
|
|
225
|
+
const component = data.get(entity);
|
|
226
|
+
return component ? (0, readonly_1.deepReadonly)(component) : null;
|
|
234
227
|
},
|
|
235
228
|
get(entity) {
|
|
236
|
-
|
|
229
|
+
const component = data.get(entity);
|
|
230
|
+
if (!component) {
|
|
237
231
|
throw new Error(`[getFrom] Component ${componentName} for entity #${entity} not found`);
|
|
238
232
|
}
|
|
239
|
-
return (0, readonly_1.deepReadonly)(
|
|
233
|
+
return (0, readonly_1.deepReadonly)(component);
|
|
240
234
|
},
|
|
241
235
|
create(entity, value) {
|
|
242
|
-
|
|
236
|
+
const component = data.get(entity);
|
|
237
|
+
if (component) {
|
|
243
238
|
throw new Error(`[create] Component ${componentName} for ${entity} already exists`);
|
|
244
239
|
}
|
|
245
240
|
const usedValue = value === undefined ? schema.create() : schema.extend ? schema.extend(value) : value;
|
|
@@ -255,22 +250,21 @@ function createComponentDefinitionFromSchema(componentName, componentId, schema)
|
|
|
255
250
|
return usedValue;
|
|
256
251
|
},
|
|
257
252
|
getMutableOrNull(entity) {
|
|
258
|
-
|
|
259
|
-
if (!
|
|
253
|
+
const component = data.get(entity);
|
|
254
|
+
if (!component) {
|
|
260
255
|
return null;
|
|
261
256
|
}
|
|
262
257
|
dirtyIterator.add(entity);
|
|
263
|
-
return
|
|
258
|
+
return component;
|
|
264
259
|
},
|
|
265
260
|
getOrCreateMutable(entity, value) {
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
if (!data.has(entity)) {
|
|
261
|
+
const component = data.get(entity);
|
|
262
|
+
if (!component) {
|
|
269
263
|
return this.create(entity, value);
|
|
270
264
|
}
|
|
271
265
|
else {
|
|
272
266
|
dirtyIterator.add(entity);
|
|
273
|
-
return
|
|
267
|
+
return component;
|
|
274
268
|
}
|
|
275
269
|
},
|
|
276
270
|
getMutable(entity) {
|
|
@@ -5,16 +5,6 @@ exports.deepReadonly = void 0;
|
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
7
|
function deepReadonly(val) {
|
|
8
|
-
// A component can be defined straight from a primitive or array schema, not
|
|
9
|
-
// only from a Map, which is why this is no longer constrained to an object.
|
|
10
|
-
// Spreading those threw the value away: a number came back as {}, an array
|
|
11
|
-
// as an object keyed by index.
|
|
12
|
-
if (val === null || typeof val !== 'object') {
|
|
13
|
-
return val;
|
|
14
|
-
}
|
|
15
|
-
if (Array.isArray(val)) {
|
|
16
|
-
return Object.freeze([...val]);
|
|
17
|
-
}
|
|
18
8
|
return Object.freeze({ ...val });
|
|
19
9
|
}
|
|
20
10
|
exports.deepReadonly = deepReadonly;
|
package/dist-cjs/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, TransformComponentExtended, AnimatorComponentDefinitionExtended, AudioSourceComponentDefinitionExtended, AudioAnalysisComponentDefinitionExtended, AudioStreamComponentDefinitionExtended, ISyncComponents, TweenComponentDefinitionExtended, INetowrkEntity, INetowrkParent, VirtualCameraComponentDefinitionExtended, InputModifierComponentDefinitionExtended, LightSourceComponentDefinitionExtended, TriggerAreaComponentDefinitionExtended, ParticleSystemComponentDefinitionExtended, TouchScreenControlsComponentDefinitionExtended } from './components/types';
|
|
19
|
+
import { MaterialComponentDefinitionExtended, MeshColliderComponentDefinitionExtended, MeshRendererComponentDefinitionExtended, AvatarShapeComponentDefinitionExtended, AvatarEquippedDataComponentDefinitionExtended, 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,6 +27,8 @@ 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;
|
|
30
32
|
export declare const Name: NameComponent;
|
|
31
33
|
export declare const Tags: TagsComponentDefinitionExtended;
|
|
32
34
|
export declare const Tween: TweenComponentDefinitionExtended;
|
package/dist-cjs/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
26
26
|
return result;
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.NetworkParent = exports.NetworkEntity = exports.SyncComponents = exports.TouchScreenControls = exports.ParticleSystem = exports.TriggerArea = exports.LightSource = exports.InputModifier = exports.VirtualCamera = exports.Tween = exports.Tags = exports.Name = exports.MeshCollider = exports.MeshRenderer = exports.Material = exports.AudioStream = exports.AudioAnalysis = exports.AudioSource = exports.Animator = exports.Transform = exports.components = exports.cyclicParentingChecker = void 0;
|
|
29
|
+
exports.NetworkParent = exports.NetworkEntity = exports.SyncComponents = exports.TouchScreenControls = exports.ParticleSystem = exports.TriggerArea = exports.LightSource = exports.InputModifier = exports.VirtualCamera = exports.Tween = exports.Tags = exports.Name = exports.AvatarEquippedData = exports.AvatarShape = exports.MeshCollider = exports.MeshRenderer = exports.Material = exports.AudioStream = exports.AudioAnalysis = exports.AudioSource = exports.Animator = exports.Transform = exports.components = exports.cyclicParentingChecker = void 0;
|
|
30
30
|
// The order of the following imports matters. Please do not auto-sort
|
|
31
31
|
__exportStar(require("./engine"), exports);
|
|
32
32
|
__exportStar(require("./schemas"), exports);
|
|
@@ -60,6 +60,9 @@ exports.AudioStream = components.AudioStream(initialization_1.engine);
|
|
|
60
60
|
exports.Material = components.Material(initialization_1.engine);
|
|
61
61
|
exports.MeshRenderer = components.MeshRenderer(initialization_1.engine);
|
|
62
62
|
exports.MeshCollider = components.MeshCollider(initialization_1.engine);
|
|
63
|
+
exports.AvatarShape = components.AvatarShape(initialization_1.engine);
|
|
64
|
+
exports.AvatarEquippedData =
|
|
65
|
+
/* @__PURE__*/ components.AvatarEquippedData(initialization_1.engine);
|
|
63
66
|
exports.Name = components.Name(initialization_1.engine);
|
|
64
67
|
exports.Tags = components.Tags(initialization_1.engine);
|
|
65
68
|
exports.Tween = components.Tween(initialization_1.engine);
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.IOneOf = void 0;
|
|
4
|
-
/** Reserved case index for a value whose case was never selected. */
|
|
5
|
-
const NO_CASE = 0;
|
|
6
4
|
const IOneOf = (specs) => {
|
|
7
5
|
const specKeys = Object.keys(specs);
|
|
8
6
|
const keyToIndex = specKeys.reduce((dict, key, index) => {
|
|
@@ -15,22 +13,12 @@ const IOneOf = (specs) => {
|
|
|
15
13
|
}, {});
|
|
16
14
|
return {
|
|
17
15
|
serialize({ $case, value }, builder) {
|
|
18
|
-
// `create()` selects no case, so a field the scene never set arrives here
|
|
19
|
-
// with an undefined `$case`. Index 0 is free, cases start at 1.
|
|
20
|
-
if ($case === undefined) {
|
|
21
|
-
builder.writeUint8(NO_CASE);
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
16
|
const _value = keyToIndex[$case.toString()] + 1;
|
|
25
17
|
builder.writeUint8(_value);
|
|
26
18
|
specs[$case].serialize(value, builder);
|
|
27
19
|
},
|
|
28
20
|
deserialize(reader) {
|
|
29
|
-
const
|
|
30
|
-
if (caseIndex === NO_CASE) {
|
|
31
|
-
return {};
|
|
32
|
-
}
|
|
33
|
-
const $case = specKeys[caseIndex - 1];
|
|
21
|
+
const $case = specKeys[reader.readInt8() - 1];
|
|
34
22
|
const value = specs[$case].deserialize(reader);
|
|
35
23
|
return { $case, value };
|
|
36
24
|
},
|
|
@@ -42,22 +42,17 @@ const components = __importStar(require("../components"));
|
|
|
42
42
|
*/
|
|
43
43
|
function cyclicParentingChecker(engine) {
|
|
44
44
|
const Transform = components.Transform(engine);
|
|
45
|
-
// Reused by every walk: the checker is synchronous, so only one is ever in
|
|
46
|
-
// flight. A cycle anywhere above the entity has to end the walk, not only one
|
|
47
|
-
// the entity is part of, otherwise the ancestors repeat forever.
|
|
48
|
-
const visited = new Set();
|
|
49
45
|
return () => {
|
|
50
46
|
for (const entity of Transform.dirtyIterator()) {
|
|
51
|
-
visited.clear();
|
|
52
|
-
visited.add(entity);
|
|
53
47
|
let transform = Transform.getOrNull(entity);
|
|
54
48
|
while (transform && transform.parent) {
|
|
55
|
-
if (
|
|
49
|
+
if (transform.parent === entity) {
|
|
56
50
|
console.error(`There is a cyclic parent with entity ${entity}`);
|
|
57
51
|
break;
|
|
58
52
|
}
|
|
59
|
-
|
|
60
|
-
|
|
53
|
+
else {
|
|
54
|
+
transform = Transform.getOrNull(transform.parent);
|
|
55
|
+
}
|
|
61
56
|
}
|
|
62
57
|
}
|
|
63
58
|
};
|
|
@@ -50,6 +50,24 @@ 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;
|
|
53
71
|
/**
|
|
54
72
|
* @public
|
|
55
73
|
* Remove the callback for onProximityDown event
|
|
@@ -128,6 +146,36 @@ export interface PointerEventsSystem {
|
|
|
128
146
|
entity: Entity;
|
|
129
147
|
opts?: Partial<EventSystemOptions>;
|
|
130
148
|
}, 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;
|
|
131
179
|
/**
|
|
132
180
|
* @public
|
|
133
181
|
* Execute callback when the user presses the proximity button on the entity
|
|
@@ -47,21 +47,14 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
47
47
|
EventType[EventType["HoverLeave"] = 4] = "HoverLeave";
|
|
48
48
|
EventType[EventType["ProximityEnter"] = 5] = "ProximityEnter";
|
|
49
49
|
EventType[EventType["ProximityLeave"] = 6] = "ProximityLeave";
|
|
50
|
+
EventType[EventType["Drag"] = 7] = "Drag";
|
|
51
|
+
EventType[EventType["DragLocked"] = 8] = "DragLocked";
|
|
52
|
+
EventType[EventType["DragEnd"] = 9] = "DragEnd";
|
|
50
53
|
})(EventType || (EventType = {}));
|
|
51
54
|
const eventsMap = new Map();
|
|
52
55
|
function getEvent(entity) {
|
|
53
56
|
return eventsMap.get(entity) || eventsMap.set(entity, new Map()).get(entity);
|
|
54
57
|
}
|
|
55
|
-
// A cursor handler and a proximity handler are separate registrations that
|
|
56
|
-
// produce separate PointerEvents entries, so they need separate slots here
|
|
57
|
-
// too. Keying on the event type alone made onProximityDown evict whatever
|
|
58
|
-
// onPointerDown had left.
|
|
59
|
-
function eventKey(type, interactionType) {
|
|
60
|
-
return `${type}:${interactionType}`;
|
|
61
|
-
}
|
|
62
|
-
function setEvent(entity, type, cb, opts, interactionType = 0 /* InteractionType.CURSOR */) {
|
|
63
|
-
getEvent(entity).set(eventKey(type, interactionType), { cb, opts, eventType: type });
|
|
64
|
-
}
|
|
65
58
|
function setPointerEvent(entity, type, opts, interactionType = 0 /* InteractionType.CURSOR */) {
|
|
66
59
|
const pointerEvent = PointerEvents.getMutableOrNull(entity) || PointerEvents.create(entity);
|
|
67
60
|
pointerEvent.pointerEvents.push({
|
|
@@ -79,27 +72,13 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
79
72
|
interactionType: interactionType ?? 0 /* InteractionType.CURSOR */
|
|
80
73
|
});
|
|
81
74
|
}
|
|
82
|
-
function removePointerEvent(entity, type,
|
|
75
|
+
function removePointerEvent(entity, type, button, interactionType = 0 /* InteractionType.CURSOR */) {
|
|
83
76
|
const pointerEvent = PointerEvents.getMutableOrNull(entity);
|
|
84
77
|
if (!pointerEvent)
|
|
85
78
|
return;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
// everything the entry was built from, or removing one handler can take the
|
|
90
|
-
// other's descriptor and leave the renderer advertising the wrong interaction.
|
|
91
|
-
const index = pointerEvent.pointerEvents.findIndex((pointer) => sameSlot(pointer) &&
|
|
92
|
-
pointer.eventInfo?.button === opts.button &&
|
|
93
|
-
pointer.eventInfo?.hoverText === opts.hoverText &&
|
|
94
|
-
pointer.eventInfo?.showFeedback === opts.showFeedback &&
|
|
95
|
-
pointer.eventInfo?.showHighlight === opts.showHighlight &&
|
|
96
|
-
pointer.eventInfo?.maxDistance === opts.maxDistance &&
|
|
97
|
-
pointer.eventInfo?.maxPlayerDistance === opts.maxPlayerDistance &&
|
|
98
|
-
pointer.eventInfo?.priority === opts.priority &&
|
|
99
|
-
pointer.eventInfo?.maxCameraDistance === opts.maxCameraDistance);
|
|
100
|
-
if (index === -1)
|
|
101
|
-
return;
|
|
102
|
-
pointerEvent.pointerEvents.splice(index, 1);
|
|
79
|
+
pointerEvent.pointerEvents = pointerEvent.pointerEvents.filter((pointer) => !(pointer.eventInfo?.button === button &&
|
|
80
|
+
pointer.eventType === type &&
|
|
81
|
+
pointer.interactionType === interactionType));
|
|
103
82
|
}
|
|
104
83
|
function getPointerEvent(eventType) {
|
|
105
84
|
if (eventType === EventType.Up) {
|
|
@@ -117,20 +96,24 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
117
96
|
else if (eventType === EventType.ProximityLeave) {
|
|
118
97
|
return 5 /* PointerEventType.PET_PROXIMITY_LEAVE */;
|
|
119
98
|
}
|
|
99
|
+
else if (eventType === EventType.Drag) {
|
|
100
|
+
return 7 /* PointerEventType.PET_DRAG */;
|
|
101
|
+
}
|
|
102
|
+
else if (eventType === EventType.DragLocked) {
|
|
103
|
+
return 6 /* PointerEventType.PET_DRAG_LOCKED */;
|
|
104
|
+
}
|
|
105
|
+
else if (eventType === EventType.DragEnd) {
|
|
106
|
+
return 8 /* PointerEventType.PET_DRAG_END */;
|
|
107
|
+
}
|
|
120
108
|
return 1 /* PointerEventType.PET_DOWN */;
|
|
121
109
|
}
|
|
122
110
|
function removeEvent(entity, type, interactionType = 0 /* InteractionType.CURSOR */) {
|
|
123
111
|
const event = getEvent(entity);
|
|
124
|
-
const
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
// so every removal has to take one away. Gating on hoverText left the
|
|
128
|
-
// renderer showing an interaction whose callback was already gone, and made
|
|
129
|
-
// re-registering grow the component by one entry each time.
|
|
130
|
-
if (pointerEvent) {
|
|
131
|
-
removePointerEvent(entity, getPointerEvent(type), pointerEvent.opts, interactionType);
|
|
112
|
+
const pointerEvent = event.get(type);
|
|
113
|
+
if (pointerEvent?.opts.hoverText) {
|
|
114
|
+
removePointerEvent(entity, getPointerEvent(type), pointerEvent.opts.button);
|
|
132
115
|
}
|
|
133
|
-
event.delete(
|
|
116
|
+
event.delete(type);
|
|
134
117
|
}
|
|
135
118
|
engine.addSystem(function PointerEventSystem() {
|
|
136
119
|
for (const [entity, event] of eventsMap) {
|
|
@@ -138,7 +121,7 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
138
121
|
eventsMap.delete(entity);
|
|
139
122
|
continue;
|
|
140
123
|
}
|
|
141
|
-
for (const [, { cb, opts
|
|
124
|
+
for (const [eventType, { cb, opts }] of event) {
|
|
142
125
|
if (eventType === EventType.Click) {
|
|
143
126
|
const command = inputSystem.getClick(opts.button, entity);
|
|
144
127
|
if (command)
|
|
@@ -149,7 +132,10 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
149
132
|
eventType === EventType.HoverEnter ||
|
|
150
133
|
eventType === EventType.HoverLeave ||
|
|
151
134
|
eventType === EventType.ProximityEnter ||
|
|
152
|
-
eventType === EventType.ProximityLeave
|
|
135
|
+
eventType === EventType.ProximityLeave ||
|
|
136
|
+
eventType === EventType.Drag ||
|
|
137
|
+
eventType === EventType.DragLocked ||
|
|
138
|
+
eventType === EventType.DragEnd) {
|
|
153
139
|
const command = inputSystem.getInputCommand(opts.button, getPointerEvent(eventType), entity);
|
|
154
140
|
if (command) {
|
|
155
141
|
(0, invariant_1.checkNotThenable)(cb(command), 'Event handler returned a thenable. Only synchronous functions are allowed');
|
|
@@ -166,7 +152,7 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
166
152
|
const { entity, opts } = data;
|
|
167
153
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
168
154
|
removeEvent(entity, EventType.Down);
|
|
169
|
-
|
|
155
|
+
getEvent(entity).set(EventType.Down, { cb, opts: options });
|
|
170
156
|
setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options);
|
|
171
157
|
};
|
|
172
158
|
const onPointerUp = (...args) => {
|
|
@@ -177,7 +163,7 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
177
163
|
const { entity, opts } = data;
|
|
178
164
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
179
165
|
removeEvent(entity, EventType.Up);
|
|
180
|
-
|
|
166
|
+
getEvent(entity).set(EventType.Up, { cb, opts: options });
|
|
181
167
|
setPointerEvent(entity, 0 /* PointerEventType.PET_UP */, options);
|
|
182
168
|
};
|
|
183
169
|
const onPointerHoverEnter = (...args) => {
|
|
@@ -185,7 +171,7 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
185
171
|
const { entity, opts } = data;
|
|
186
172
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
187
173
|
removeEvent(entity, EventType.HoverEnter);
|
|
188
|
-
|
|
174
|
+
getEvent(entity).set(EventType.HoverEnter, { cb, opts: options });
|
|
189
175
|
setPointerEvent(entity, 2 /* PointerEventType.PET_HOVER_ENTER */, options);
|
|
190
176
|
};
|
|
191
177
|
const onPointerHoverLeave = (...args) => {
|
|
@@ -193,15 +179,39 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
193
179
|
const { entity, opts } = data;
|
|
194
180
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
195
181
|
removeEvent(entity, EventType.HoverLeave);
|
|
196
|
-
|
|
182
|
+
getEvent(entity).set(EventType.HoverLeave, { cb, opts: options });
|
|
197
183
|
setPointerEvent(entity, 3 /* PointerEventType.PET_HOVER_LEAVE */, options);
|
|
198
184
|
};
|
|
185
|
+
const onPointerDrag = (...args) => {
|
|
186
|
+
const [data, cb] = args;
|
|
187
|
+
const { entity, opts } = data;
|
|
188
|
+
const options = (0, exports.getDefaultOpts)(opts);
|
|
189
|
+
removeEvent(entity, EventType.Drag);
|
|
190
|
+
getEvent(entity).set(EventType.Drag, { cb, opts: options });
|
|
191
|
+
setPointerEvent(entity, 7 /* PointerEventType.PET_DRAG */, options);
|
|
192
|
+
};
|
|
193
|
+
const onPointerDragLocked = (...args) => {
|
|
194
|
+
const [data, cb] = args;
|
|
195
|
+
const { entity, opts } = data;
|
|
196
|
+
const options = (0, exports.getDefaultOpts)(opts);
|
|
197
|
+
removeEvent(entity, EventType.DragLocked);
|
|
198
|
+
getEvent(entity).set(EventType.DragLocked, { cb, opts: options });
|
|
199
|
+
setPointerEvent(entity, 6 /* PointerEventType.PET_DRAG_LOCKED */, options);
|
|
200
|
+
};
|
|
201
|
+
const onPointerDragEnd = (...args) => {
|
|
202
|
+
const [data, cb] = args;
|
|
203
|
+
const { entity, opts } = data;
|
|
204
|
+
const options = (0, exports.getDefaultOpts)(opts);
|
|
205
|
+
removeEvent(entity, EventType.DragEnd);
|
|
206
|
+
getEvent(entity).set(EventType.DragEnd, { cb, opts: options });
|
|
207
|
+
setPointerEvent(entity, 8 /* PointerEventType.PET_DRAG_END */, options);
|
|
208
|
+
};
|
|
199
209
|
const onProximityDown = (...args) => {
|
|
200
210
|
const [data, cb] = args;
|
|
201
211
|
const { entity, opts } = data;
|
|
202
212
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
203
213
|
removeEvent(entity, EventType.Down, 1 /* InteractionType.PROXIMITY */);
|
|
204
|
-
|
|
214
|
+
getEvent(entity).set(EventType.Down, { cb, opts: options });
|
|
205
215
|
setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options, 1 /* InteractionType.PROXIMITY */);
|
|
206
216
|
};
|
|
207
217
|
const onProximityUp = (...args) => {
|
|
@@ -209,7 +219,7 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
209
219
|
const { entity, opts } = data;
|
|
210
220
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
211
221
|
removeEvent(entity, EventType.Up, 1 /* InteractionType.PROXIMITY */);
|
|
212
|
-
|
|
222
|
+
getEvent(entity).set(EventType.Up, { cb, opts: options });
|
|
213
223
|
setPointerEvent(entity, 0 /* PointerEventType.PET_UP */, options, 1 /* InteractionType.PROXIMITY */);
|
|
214
224
|
};
|
|
215
225
|
const onProximityEnter = (...args) => {
|
|
@@ -217,7 +227,7 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
217
227
|
const { entity, opts } = data;
|
|
218
228
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
219
229
|
removeEvent(entity, EventType.ProximityEnter, 1 /* InteractionType.PROXIMITY */);
|
|
220
|
-
|
|
230
|
+
getEvent(entity).set(EventType.ProximityEnter, { cb, opts: options });
|
|
221
231
|
setPointerEvent(entity, 4 /* PointerEventType.PET_PROXIMITY_ENTER */, options, 1 /* InteractionType.PROXIMITY */);
|
|
222
232
|
};
|
|
223
233
|
const onProximityLeave = (...args) => {
|
|
@@ -225,7 +235,7 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
225
235
|
const { entity, opts } = data;
|
|
226
236
|
const options = (0, exports.getDefaultOpts)(opts);
|
|
227
237
|
removeEvent(entity, EventType.ProximityLeave, 1 /* InteractionType.PROXIMITY */);
|
|
228
|
-
|
|
238
|
+
getEvent(entity).set(EventType.ProximityLeave, { cb, opts: options });
|
|
229
239
|
setPointerEvent(entity, 5 /* PointerEventType.PET_PROXIMITY_LEAVE */, options, 1 /* InteractionType.PROXIMITY */);
|
|
230
240
|
};
|
|
231
241
|
return {
|
|
@@ -244,6 +254,15 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
244
254
|
removeOnPointerHoverLeave(entity) {
|
|
245
255
|
removeEvent(entity, EventType.HoverLeave);
|
|
246
256
|
},
|
|
257
|
+
removeOnPointerDrag(entity) {
|
|
258
|
+
removeEvent(entity, EventType.Drag);
|
|
259
|
+
},
|
|
260
|
+
removeOnPointerDragLocked(entity) {
|
|
261
|
+
removeEvent(entity, EventType.DragLocked);
|
|
262
|
+
},
|
|
263
|
+
removeOnPointerDragEnd(entity) {
|
|
264
|
+
removeEvent(entity, EventType.DragEnd);
|
|
265
|
+
},
|
|
247
266
|
removeOnProximityDown(entity) {
|
|
248
267
|
removeEvent(entity, EventType.Down, 1 /* InteractionType.PROXIMITY */);
|
|
249
268
|
},
|
|
@@ -262,13 +281,16 @@ function createPointerEventsSystem(engine, inputSystem) {
|
|
|
262
281
|
// Clear previous event with over feedback included
|
|
263
282
|
removeEvent(entity, EventType.Click);
|
|
264
283
|
// Set new event
|
|
265
|
-
|
|
284
|
+
getEvent(entity).set(EventType.Click, { cb, opts: options });
|
|
266
285
|
setPointerEvent(entity, 1 /* PointerEventType.PET_DOWN */, options);
|
|
267
286
|
},
|
|
268
287
|
onPointerDown,
|
|
269
288
|
onPointerUp,
|
|
270
289
|
onPointerHoverEnter,
|
|
271
290
|
onPointerHoverLeave,
|
|
291
|
+
onPointerDrag,
|
|
292
|
+
onPointerDragLocked,
|
|
293
|
+
onPointerDragEnd,
|
|
272
294
|
onProximityDown,
|
|
273
295
|
onProximityUp,
|
|
274
296
|
onProximityEnter,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RaycastQueryType, PBRaycastResult } from '../components';
|
|
1
|
+
import { RaycastQueryType, RaycastShape, PBRaycastResult } from '../components';
|
|
2
2
|
import { DeepReadonlyObject, Entity } from '../engine';
|
|
3
3
|
import { Vector3 } from '../components/generated/pb/decentraland/common/vectors.gen';
|
|
4
4
|
/**
|
|
@@ -14,6 +14,10 @@ export type RaycastSystemOptions = {
|
|
|
14
14
|
queryType: RaycastQueryType;
|
|
15
15
|
continuous?: boolean | undefined;
|
|
16
16
|
collisionMask?: number | undefined;
|
|
17
|
+
/** shape to sweep along the ray, default RS_RAY (a point) */
|
|
18
|
+
shape?: RaycastShape | undefined;
|
|
19
|
+
/** include colliders from other scenes, default false */
|
|
20
|
+
includeWorld?: boolean | undefined;
|
|
17
21
|
};
|
|
18
22
|
export type LocalDirectionRaycastSystemOptions = {
|
|
19
23
|
direction?: Vector3;
|
|
@@ -38,7 +38,9 @@ function createRaycastSystem(engine) {
|
|
|
38
38
|
queryType: 0 /* RaycastQueryType.RQT_HIT_FIRST */,
|
|
39
39
|
continuous: false,
|
|
40
40
|
originOffset: { x: 0, y: 0, z: 0 },
|
|
41
|
-
collisionMask: 2 /* ColliderLayer.CL_PHYSICS
|
|
41
|
+
collisionMask: 2 /* ColliderLayer.CL_PHYSICS */,
|
|
42
|
+
shape: 0 /* RaycastShape.RS_RAY */,
|
|
43
|
+
includeWorld: false
|
|
42
44
|
};
|
|
43
45
|
const getLocalDirectionRaycastDefaultOptions = (options = {}) => ({
|
|
44
46
|
...defaultOptions,
|
|
@@ -84,6 +86,8 @@ function createRaycastSystem(engine) {
|
|
|
84
86
|
raycast.direction = raycastValue.directionRawValue;
|
|
85
87
|
raycast.continuous = raycastValue.continuous;
|
|
86
88
|
raycast.queryType = raycastValue.queryType;
|
|
89
|
+
raycast.shape = raycastValue.shape;
|
|
90
|
+
raycast.includeWorld = raycastValue.includeWorld;
|
|
87
91
|
entitiesCallbackResultMap.set(entity, { callback: callback });
|
|
88
92
|
};
|
|
89
93
|
nextTickRaycasts.push(onNextTick);
|