@dcl/ecs 7.24.5-29247185020.commit-e92dfe6 → 7.24.5-29264961047.commit-77493c3
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/AudioAnalysis.d.ts +55 -0
- package/dist/components/extended/AudioAnalysis.js +66 -0
- package/dist/components/extended/AudioSource.d.ts +5 -3
- package/dist/components/extended/AudioSource.js +7 -7
- package/dist/components/extended/MeshCollider.d.ts +0 -8
- package/dist/components/extended/MeshCollider.js +0 -6
- package/dist/components/extended/MeshRenderer.d.ts +0 -8
- package/dist/components/extended/MeshRenderer.js +0 -5
- package/dist/components/extended/ParticleSystem.d.ts +24 -0
- package/dist/components/extended/ParticleSystem.js +23 -0
- package/dist/components/extended/TriggerArea.d.ts +2 -2
- package/dist/components/extended/Tween.d.ts +48 -1
- package/dist/components/extended/Tween.js +66 -0
- package/dist/components/generated/{TextureCamera.gen.js → AudioAnalysis.gen.js} +7 -7
- package/dist/components/generated/component-names.gen.js +1 -10
- package/dist/components/generated/global.gen.d.ts +2 -20
- package/dist/components/generated/global.gen.js +1 -10
- package/dist/components/generated/index.gen.d.ts +4 -40
- package/dist/components/generated/index.gen.js +5 -50
- package/dist/components/generated/pb/decentraland/common/texture.gen.d.ts +0 -20
- package/dist/components/generated/pb/decentraland/common/texture.gen.js +0 -65
- package/dist/components/generated/pb/decentraland/sdk/components/audio_analysis.gen.d.ts +37 -0
- package/dist/components/generated/pb/decentraland/sdk/components/audio_analysis.gen.js +161 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +0 -2
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +1 -10
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_locomotion_settings.gen.d.ts +6 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_locomotion_settings.gen.js +30 -0
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +3 -44
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +3 -151
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +0 -2
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +0 -10
- package/dist/components/generated/pb/decentraland/sdk/components/billboard.gen.d.ts +9 -2
- package/dist/components/generated/pb/decentraland/sdk/components/billboard.gen.js +10 -1
- package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +1 -37
- package/dist/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +1 -119
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +2 -4
- package/dist/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +1 -3
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +0 -19
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +1 -46
- package/dist/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +0 -22
- package/dist/components/generated/pb/decentraland/sdk/components/material.gen.js +1 -57
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +3 -22
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +3 -58
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +3 -21
- package/dist/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +0 -56
- package/dist/components/generated/pb/decentraland/sdk/components/particle_system.gen.d.ts +14 -1
- package/dist/components/generated/pb/decentraland/sdk/components/particle_system.gen.js +42 -4
- package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +2 -8
- package/dist/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +0 -3
- package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.d.ts +0 -13
- package/dist/components/generated/pb/decentraland/sdk/components/raycast.gen.js +0 -30
- package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas_information.gen.d.ts +8 -0
- package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas_information.gen.js +10 -1
- package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +0 -4
- package/dist/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +0 -20
- package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +0 -4
- package/dist/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +0 -20
- package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +0 -35
- package/dist/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +0 -90
- package/dist/components/generated/types.gen.d.ts +1 -0
- package/dist/components/generated/types.gen.js +1 -0
- package/dist/components/index.d.ts +13 -11
- package/dist/components/index.js +11 -11
- package/dist/components/manual/Transform.d.ts +13 -0
- package/dist/components/manual/Transform.js +8 -0
- package/dist/components/types.d.ts +3 -3
- package/dist/composite/index.d.ts +8 -5
- package/dist/composite/index.js +8 -5
- package/dist/composite/instance.d.ts +5 -0
- package/dist/composite/instance.js +34 -25
- package/dist/composite/provider-registry.d.ts +15 -0
- package/dist/composite/provider-registry.js +32 -0
- package/dist/engine/entity.js +4 -2
- package/dist/engine/grow-only-value-set-component-definition.js +1 -1
- package/dist/engine/index.js +2 -1
- package/dist/engine/input.d.ts +0 -6
- package/dist/engine/input.js +6 -10
- package/dist/engine/lww-element-set-component-definition.d.ts +2 -2
- package/dist/engine/lww-element-set-component-definition.js +24 -7
- package/dist/index.d.ts +5 -2
- package/dist/index.js +5 -1
- package/dist/runtime/globals.d.ts +1 -2
- package/dist/runtime/globals.js +1 -2
- package/dist/runtime/helpers/coordinates.js +37 -14
- package/dist/runtime/helpers/index.d.ts +1 -0
- package/dist/runtime/helpers/index.js +1 -0
- package/dist/runtime/helpers/timers.js +32 -20
- package/dist/runtime/helpers/tree.d.ts +6 -0
- package/dist/runtime/helpers/tree.js +2 -2
- package/dist/runtime/helpers/vectors.js +36 -0
- package/dist/runtime/initialization/index.d.ts +7 -0
- package/dist/runtime/initialization/index.js +6 -0
- package/dist/systems/crdt/index.js +6 -6
- package/dist/systems/events.d.ts +25 -59
- package/dist/systems/events.js +129 -145
- package/dist/systems/physics-force.js +140 -0
- package/dist/systems/physics-impulse.d.ts +12 -0
- package/dist/systems/physics-impulse.js +85 -0
- package/dist/systems/physics.d.ts +77 -0
- package/dist/systems/physics.js +18 -0
- package/dist/systems/raycast.d.ts +1 -3
- package/dist/systems/raycast.js +0 -2
- package/dist/systems/triggerArea.d.ts +5 -0
- package/dist/systems/triggerArea.js +129 -42
- package/dist-cjs/components/extended/AudioAnalysis.d.ts +55 -0
- package/dist-cjs/components/extended/AudioAnalysis.js +70 -0
- package/dist-cjs/components/extended/AudioSource.d.ts +5 -3
- package/dist-cjs/components/extended/AudioSource.js +7 -7
- package/dist-cjs/components/extended/MeshCollider.d.ts +0 -8
- package/dist-cjs/components/extended/MeshCollider.js +0 -6
- package/dist-cjs/components/extended/MeshRenderer.d.ts +0 -8
- package/dist-cjs/components/extended/MeshRenderer.js +0 -5
- package/dist-cjs/components/extended/ParticleSystem.d.ts +24 -0
- package/dist-cjs/components/extended/ParticleSystem.js +28 -0
- package/dist-cjs/components/extended/TriggerArea.d.ts +2 -2
- package/dist-cjs/components/extended/Tween.d.ts +48 -1
- package/dist-cjs/components/extended/Tween.js +66 -0
- package/dist-cjs/components/generated/{TextureCamera.gen.js → AudioAnalysis.gen.js} +8 -8
- package/dist-cjs/components/generated/component-names.gen.js +1 -10
- package/dist-cjs/components/generated/global.gen.d.ts +2 -20
- package/dist-cjs/components/generated/global.gen.js +3 -12
- package/dist-cjs/components/generated/index.gen.d.ts +4 -40
- package/dist-cjs/components/generated/index.gen.js +8 -62
- package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.d.ts +0 -20
- package/dist-cjs/components/generated/pb/decentraland/common/texture.gen.js +1 -66
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/audio_analysis.gen.d.ts +37 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/audio_analysis.gen.js +167 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.d.ts +0 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_equipped_data.gen.js +1 -10
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_locomotion_settings.gen.d.ts +6 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_locomotion_settings.gen.js +30 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.d.ts +3 -44
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_modifier_area.gen.js +4 -152
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.d.ts +0 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_shape.gen.js +0 -10
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/billboard.gen.d.ts +9 -2
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/billboard.gen.js +10 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.d.ts +1 -37
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_mode_area.gen.js +2 -120
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.d.ts +2 -4
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/common/input_action.gen.js +1 -3
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.d.ts +0 -19
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_container_loading_state.gen.js +1 -46
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.d.ts +0 -22
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/material.gen.js +2 -58
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.d.ts +3 -22
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_collider.gen.js +4 -59
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.d.ts +3 -21
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/mesh_renderer.gen.js +1 -57
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/particle_system.gen.d.ts +14 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/particle_system.gen.js +43 -5
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.d.ts +2 -8
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/primary_pointer_info.gen.js +0 -3
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/raycast.gen.d.ts +0 -13
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/raycast.gen.js +1 -31
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas_information.gen.d.ts +8 -0
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas_information.gen.js +10 -1
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.d.ts +0 -4
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_input.gen.js +0 -20
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.d.ts +0 -4
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_text.gen.js +0 -20
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.d.ts +0 -35
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_transform.gen.js +1 -91
- package/dist-cjs/components/generated/types.gen.d.ts +1 -0
- package/dist-cjs/components/generated/types.gen.js +3 -0
- package/dist-cjs/components/index.d.ts +13 -11
- package/dist-cjs/components/index.js +15 -15
- package/dist-cjs/components/manual/Transform.d.ts +13 -0
- package/dist-cjs/components/manual/Transform.js +31 -0
- package/dist-cjs/components/types.d.ts +3 -3
- package/dist-cjs/composite/index.d.ts +8 -5
- package/dist-cjs/composite/index.js +11 -6
- package/dist-cjs/composite/instance.d.ts +5 -0
- package/dist-cjs/composite/instance.js +34 -25
- package/dist-cjs/composite/provider-registry.d.ts +15 -0
- package/dist-cjs/composite/provider-registry.js +37 -0
- package/dist-cjs/engine/entity.js +4 -2
- package/dist-cjs/engine/grow-only-value-set-component-definition.js +1 -1
- package/dist-cjs/engine/index.js +2 -1
- package/dist-cjs/engine/input.d.ts +0 -6
- package/dist-cjs/engine/input.js +6 -10
- package/dist-cjs/engine/lww-element-set-component-definition.d.ts +2 -2
- package/dist-cjs/engine/lww-element-set-component-definition.js +24 -7
- package/dist-cjs/index.d.ts +5 -2
- package/dist-cjs/index.js +6 -2
- package/dist-cjs/runtime/globals.d.ts +1 -2
- package/dist-cjs/runtime/globals.js +1 -2
- package/dist-cjs/runtime/helpers/coordinates.js +37 -14
- package/dist-cjs/runtime/helpers/index.d.ts +1 -0
- package/dist-cjs/runtime/helpers/index.js +1 -0
- package/dist-cjs/runtime/helpers/timers.js +32 -20
- package/dist-cjs/runtime/helpers/tree.d.ts +6 -0
- package/dist-cjs/runtime/helpers/tree.js +3 -2
- package/dist-cjs/runtime/helpers/vectors.js +39 -0
- package/dist-cjs/runtime/initialization/index.d.ts +7 -0
- package/dist-cjs/runtime/initialization/index.js +7 -1
- package/dist-cjs/systems/crdt/index.js +6 -6
- package/dist-cjs/systems/events.d.ts +25 -59
- package/dist-cjs/systems/events.js +129 -145
- package/dist-cjs/systems/physics-force.js +167 -0
- package/dist-cjs/systems/physics-impulse.d.ts +12 -0
- package/dist-cjs/systems/physics-impulse.js +112 -0
- package/dist-cjs/systems/physics.d.ts +77 -0
- package/dist-cjs/systems/physics.js +23 -0
- package/dist-cjs/systems/raycast.d.ts +1 -3
- package/dist-cjs/systems/raycast.js +0 -2
- package/dist-cjs/systems/triggerArea.d.ts +5 -0
- package/dist-cjs/systems/triggerArea.js +129 -42
- package/package.json +3 -2
- package/dist/components/extended/AvatarEquippedData.d.ts +0 -10
- package/dist/components/extended/AvatarEquippedData.js +0 -15
- package/dist/components/extended/AvatarShape.d.ts +0 -10
- package/dist/components/extended/AvatarShape.js +0 -15
- package/dist/components/generated/AvatarMovement.gen.d.ts +0 -1
- package/dist/components/generated/AvatarMovement.gen.js +0 -25
- package/dist/components/generated/AvatarMovementInfo.gen.d.ts +0 -1
- package/dist/components/generated/AvatarMovementInfo.gen.js +0 -25
- package/dist/components/generated/CameraLayer.gen.d.ts +0 -1
- package/dist/components/generated/CameraLayer.gen.js +0 -25
- package/dist/components/generated/CameraLayers.gen.d.ts +0 -1
- package/dist/components/generated/CameraLayers.gen.js +0 -25
- package/dist/components/generated/GlobalLight.gen.d.ts +0 -1
- package/dist/components/generated/GlobalLight.gen.js +0 -25
- package/dist/components/generated/GltfNode.gen.d.ts +0 -1
- package/dist/components/generated/GltfNode.gen.js +0 -25
- package/dist/components/generated/GltfNodeState.gen.d.ts +0 -1
- package/dist/components/generated/GltfNodeState.gen.js +0 -25
- package/dist/components/generated/TextureCamera.gen.d.ts +0 -1
- package/dist/components/generated/UiCanvas.gen.d.ts +0 -1
- package/dist/components/generated/UiCanvas.gen.js +0 -25
- package/dist/components/generated/UiScrollResult.gen.d.ts +0 -1
- package/dist/components/generated/UiScrollResult.gen.js +0 -25
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.d.ts +0 -20
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +0 -69
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +0 -32
- package/dist/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +0 -126
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +0 -30
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +0 -104
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +0 -14
- package/dist/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +0 -50
- package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +0 -34
- package/dist/components/generated/pb/decentraland/sdk/components/global_light.gen.js +0 -61
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +0 -50
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +0 -41
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +0 -27
- package/dist/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +0 -59
- package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +0 -74
- package/dist/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +0 -191
- package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +0 -19
- package/dist/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +0 -60
- package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +0 -15
- package/dist/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +0 -42
- package/dist-cjs/components/extended/AvatarEquippedData.d.ts +0 -10
- package/dist-cjs/components/extended/AvatarEquippedData.js +0 -19
- package/dist-cjs/components/extended/AvatarShape.d.ts +0 -10
- package/dist-cjs/components/extended/AvatarShape.js +0 -19
- package/dist-cjs/components/generated/AvatarMovement.gen.js +0 -28
- package/dist-cjs/components/generated/AvatarMovementInfo.gen.js +0 -28
- package/dist-cjs/components/generated/CameraLayer.gen.js +0 -28
- package/dist-cjs/components/generated/CameraLayers.gen.js +0 -28
- package/dist-cjs/components/generated/GlobalLight.gen.js +0 -28
- package/dist-cjs/components/generated/GltfNode.gen.js +0 -28
- package/dist-cjs/components/generated/GltfNodeState.gen.d.ts +0 -1
- package/dist-cjs/components/generated/GltfNodeState.gen.js +0 -28
- package/dist-cjs/components/generated/TextureCamera.gen.d.ts +0 -1
- package/dist-cjs/components/generated/UiCanvas.gen.d.ts +0 -1
- package/dist-cjs/components/generated/UiCanvas.gen.js +0 -28
- package/dist-cjs/components/generated/UiScrollResult.gen.d.ts +0 -1
- package/dist-cjs/components/generated/UiScrollResult.gen.js +0 -28
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.d.ts +0 -20
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement.gen.js +0 -75
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.d.ts +0 -32
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/avatar_movement_info.gen.js +0 -132
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.d.ts +0 -30
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layer.gen.js +0 -110
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.d.ts +0 -14
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/camera_layers.gen.js +0 -56
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.d.ts +0 -34
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/global_light.gen.js +0 -67
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.d.ts +0 -50
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node.gen.js +0 -47
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.d.ts +0 -27
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/gltf_node_state.gen.js +0 -65
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.d.ts +0 -74
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/texture_camera.gen.js +0 -197
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.d.ts +0 -19
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_canvas.gen.js +0 -66
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.d.ts +0 -15
- package/dist-cjs/components/generated/pb/decentraland/sdk/components/ui_scroll_result.gen.js +0 -48
- /package/{dist-cjs/components/generated/CameraLayers.gen.d.ts → dist/components/generated/AudioAnalysis.gen.d.ts} +0 -0
- /package/{dist-cjs/components/generated/GlobalLight.gen.d.ts → dist/runtime/helpers/vectors.d.ts} +0 -0
- /package/{dist-cjs/components/generated/GltfNode.gen.d.ts → dist/systems/physics-force.d.ts} +0 -0
- /package/dist-cjs/components/generated/{AvatarMovement.gen.d.ts → AudioAnalysis.gen.d.ts} +0 -0
- /package/dist-cjs/{components/generated/AvatarMovementInfo.gen.d.ts → runtime/helpers/vectors.d.ts} +0 -0
- /package/dist-cjs/{components/generated/CameraLayer.gen.d.ts → systems/physics-force.d.ts} +0 -0
|
@@ -2,41 +2,42 @@ import { GrowOnlyValueSetComponentDefinition, LastWriteWinElementSetComponentDef
|
|
|
2
2
|
import { IEngine } from '../engine/types';
|
|
3
3
|
import { AnimatorComponentDefinitionExtended } from './extended/Animator';
|
|
4
4
|
import { AudioSourceComponentDefinitionExtended } from './extended/AudioSource';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { AvatarShapeComponentDefinitionExtended } from './extended/AvatarShape';
|
|
8
|
-
import { InputModifierComponentDefinitionExtended } from './extended/InputModifier';
|
|
5
|
+
import { AudioAnalysisComponentDefinitionExtended } from './extended/AudioAnalysis';
|
|
6
|
+
import type { AudioAnalysisView } from './extended/AudioAnalysis';
|
|
9
7
|
import { MaterialComponentDefinitionExtended } from './extended/Material';
|
|
10
8
|
import { MeshColliderComponentDefinitionExtended } from './extended/MeshCollider';
|
|
11
9
|
import { MeshRendererComponentDefinitionExtended } from './extended/MeshRenderer';
|
|
12
10
|
import { TweenComponentDefinitionExtended } from './extended/Tween';
|
|
13
|
-
import {
|
|
14
|
-
import { GSetComponentGetter, LwwComponentGetter } from './generated/index.gen';
|
|
15
|
-
import { MediaState } from './generated/pb/decentraland/sdk/components/common/media_state.gen';
|
|
11
|
+
import { LwwComponentGetter, GSetComponentGetter } from './generated/index.gen';
|
|
16
12
|
import { NameType } from './manual/Name';
|
|
13
|
+
import { ISyncComponentsType } from './manual/SyncComponents';
|
|
17
14
|
import { INetowrkEntityType } from './manual/NetworkEntity';
|
|
18
15
|
import { INetowrkParentType } from './manual/NetworkParent';
|
|
19
|
-
import { ISyncComponentsType } from './manual/SyncComponents';
|
|
20
16
|
import { TransformComponentExtended } from './manual/Transform';
|
|
17
|
+
import { AudioStreamComponentDefinitionExtended } from './extended/AudioStream';
|
|
18
|
+
import { MediaState } from './generated/pb/decentraland/sdk/components/common/media_state.gen';
|
|
19
|
+
import { VirtualCameraComponentDefinitionExtended } from './extended/VirtualCamera';
|
|
20
|
+
import { InputModifierComponentDefinitionExtended } from './extended/InputModifier';
|
|
21
21
|
import { LightSourceComponentDefinitionExtended } from './extended/LightSource';
|
|
22
22
|
import { TriggerAreaComponentDefinitionExtended } from './extended/TriggerArea';
|
|
23
|
+
import { ParticleSystemComponentDefinitionExtended } from './extended/ParticleSystem';
|
|
23
24
|
import { TagsComponentDefinitionExtended } from './manual/Tags';
|
|
24
25
|
export * from './generated/index.gen';
|
|
25
|
-
export type { GrowOnlyValueSetComponentDefinition,
|
|
26
|
+
export type { GrowOnlyValueSetComponentDefinition, LastWriteWinElementSetComponentDefinition, LwwComponentGetter, GSetComponentGetter };
|
|
26
27
|
export declare const Transform: LwwComponentGetter<TransformComponentExtended>;
|
|
27
28
|
export declare const Material: LwwComponentGetter<MaterialComponentDefinitionExtended>;
|
|
28
29
|
export declare const Animator: LwwComponentGetter<AnimatorComponentDefinitionExtended>;
|
|
29
30
|
export declare const AudioSource: LwwComponentGetter<AudioSourceComponentDefinitionExtended>;
|
|
31
|
+
export declare const AudioAnalysis: LwwComponentGetter<AudioAnalysisComponentDefinitionExtended>;
|
|
30
32
|
export declare const AudioStream: (engine: Pick<IEngine, 'defineComponentFromSchema' | 'defineValueSetComponentFromSchema'>) => AudioStreamComponentDefinitionExtended;
|
|
31
33
|
export declare const MeshRenderer: LwwComponentGetter<MeshRendererComponentDefinitionExtended>;
|
|
32
34
|
export declare const MeshCollider: LwwComponentGetter<MeshColliderComponentDefinitionExtended>;
|
|
33
35
|
export declare const Tween: LwwComponentGetter<TweenComponentDefinitionExtended>;
|
|
34
|
-
export declare const AvatarShape: LwwComponentGetter<AvatarShapeComponentDefinitionExtended>;
|
|
35
|
-
export declare const AvatarEquippedData: LwwComponentGetter<AvatarEquippedDataComponentDefinitionExtended>;
|
|
36
36
|
export declare const VirtualCamera: LwwComponentGetter<VirtualCameraComponentDefinitionExtended>;
|
|
37
37
|
export declare const InputModifier: LwwComponentGetter<InputModifierComponentDefinitionExtended>;
|
|
38
38
|
export declare const LightSource: LwwComponentGetter<LightSourceComponentDefinitionExtended>;
|
|
39
39
|
export declare const TriggerArea: LwwComponentGetter<TriggerAreaComponentDefinitionExtended>;
|
|
40
|
+
export declare const ParticleSystem: LwwComponentGetter<ParticleSystemComponentDefinitionExtended>;
|
|
40
41
|
/**
|
|
41
42
|
* @alpha
|
|
42
43
|
*/
|
|
@@ -55,3 +56,4 @@ export declare const NetworkEntity: (engine: Pick<IEngine, 'defineComponent'>) =
|
|
|
55
56
|
*/
|
|
56
57
|
export declare const NetworkParent: (engine: Pick<IEngine, 'defineComponent'>) => LastWriteWinElementSetComponentDefinition<INetowrkParentType>;
|
|
57
58
|
export { MediaState };
|
|
59
|
+
export type { AudioAnalysisView };
|
package/dist/components/index.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { defineAnimatorComponent } from './extended/Animator';
|
|
2
2
|
import { defineAudioSourceComponent } from './extended/AudioSource';
|
|
3
|
-
import {
|
|
4
|
-
import { defineAvatarEquippedDataComponent } from './extended/AvatarEquippedData';
|
|
5
|
-
import { defineAvatarShapeComponent } from './extended/AvatarShape';
|
|
6
|
-
import { defineInputModifierComponent } from './extended/InputModifier';
|
|
3
|
+
import { defineAudioAnalysisComponent } from './extended/AudioAnalysis';
|
|
7
4
|
import { defineMaterialComponent } from './extended/Material';
|
|
8
5
|
import { defineMeshColliderComponent } from './extended/MeshCollider';
|
|
9
6
|
import { defineMeshRendererComponent } from './extended/MeshRenderer';
|
|
10
7
|
import { defineTweenComponent } from './extended/Tween';
|
|
11
|
-
import { defineVirtualCameraComponent } from './extended/VirtualCamera';
|
|
12
|
-
import { MediaState } from './generated/pb/decentraland/sdk/components/common/media_state.gen';
|
|
13
8
|
import defineNameComponent from './manual/Name';
|
|
9
|
+
import defineSyncComponent from './manual/SyncComponents';
|
|
14
10
|
import defineNetworkEntity from './manual/NetworkEntity';
|
|
15
11
|
import defineNetworkParent from './manual/NetworkParent';
|
|
16
|
-
import defineSyncComponent from './manual/SyncComponents';
|
|
17
12
|
import { defineTransformComponent } from './manual/Transform';
|
|
13
|
+
import { defineAudioStreamComponent } from './extended/AudioStream';
|
|
14
|
+
import { MediaState } from './generated/pb/decentraland/sdk/components/common/media_state.gen';
|
|
15
|
+
import { defineVirtualCameraComponent } from './extended/VirtualCamera';
|
|
16
|
+
import { defineInputModifierComponent } from './extended/InputModifier';
|
|
18
17
|
import { defineLightSourceComponent } from './extended/LightSource';
|
|
19
18
|
import { defineTriggerAreaComponent } from './extended/TriggerArea';
|
|
19
|
+
import { defineParticleSystemComponent } from './extended/ParticleSystem';
|
|
20
20
|
import defineTagsComponent from './manual/Tags';
|
|
21
21
|
export * from './generated/index.gen';
|
|
22
22
|
/* @__PURE__ */
|
|
@@ -28,6 +28,8 @@ export const Animator = (engine) => defineAnimatorComponent(engine);
|
|
|
28
28
|
/* @__PURE__ */
|
|
29
29
|
export const AudioSource = (engine) => defineAudioSourceComponent(engine);
|
|
30
30
|
/* @__PURE__ */
|
|
31
|
+
export const AudioAnalysis = (engine) => defineAudioAnalysisComponent(engine);
|
|
32
|
+
/* @__PURE__ */
|
|
31
33
|
export const AudioStream = (engine) => defineAudioStreamComponent(engine);
|
|
32
34
|
/* @__PURE__ */
|
|
33
35
|
export const MeshRenderer = (engine) => defineMeshRendererComponent(engine);
|
|
@@ -36,10 +38,6 @@ export const MeshCollider = (engine) => defineMeshColliderComponent(engine);
|
|
|
36
38
|
/* @__PURE__ */
|
|
37
39
|
export const Tween = (engine) => defineTweenComponent(engine);
|
|
38
40
|
/* @__PURE__ */
|
|
39
|
-
export const AvatarShape = (engine) => defineAvatarShapeComponent(engine);
|
|
40
|
-
/* @__PURE__ */
|
|
41
|
-
export const AvatarEquippedData = (engine) => defineAvatarEquippedDataComponent(engine);
|
|
42
|
-
/* @__PURE__ */
|
|
43
41
|
export const VirtualCamera = (engine) => defineVirtualCameraComponent(engine);
|
|
44
42
|
/* @__PURE__*/
|
|
45
43
|
export const InputModifier = (engine) => defineInputModifierComponent(engine);
|
|
@@ -47,6 +45,8 @@ export const InputModifier = (engine) => defineInputModifierComponent(engine);
|
|
|
47
45
|
export const LightSource = (engine) => defineLightSourceComponent(engine);
|
|
48
46
|
/* @__PURE__ */
|
|
49
47
|
export const TriggerArea = (engine) => defineTriggerAreaComponent(engine);
|
|
48
|
+
/* @__PURE__ */
|
|
49
|
+
export const ParticleSystem = (engine) => defineParticleSystemComponent(engine);
|
|
50
50
|
/**
|
|
51
51
|
* @alpha
|
|
52
52
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LastWriteWinElementSetComponentDefinition, IEngine } from '../../engine';
|
|
2
2
|
import { Entity } from '../../engine/entity';
|
|
3
|
+
import type { Vector3Type } from '../../schemas/custom/Vector3';
|
|
3
4
|
/**
|
|
4
5
|
* @public
|
|
5
6
|
*/
|
|
@@ -10,6 +11,18 @@ export type TransformComponent = LastWriteWinElementSetComponentDefinition<Trans
|
|
|
10
11
|
export interface TransformComponentExtended extends TransformComponent {
|
|
11
12
|
create(entity: Entity, val?: TransformTypeWithOptionals): TransformType;
|
|
12
13
|
createOrReplace(entity: Entity, val?: TransformTypeWithOptionals): TransformType;
|
|
14
|
+
/**
|
|
15
|
+
* Transforms a direction vector from an entity's local coordinate space
|
|
16
|
+
* to world space, accounting for the full parent hierarchy.
|
|
17
|
+
*
|
|
18
|
+
* This applies only rotation (not translation or scale) — suitable for
|
|
19
|
+
* direction vectors like force/impulse directions.
|
|
20
|
+
*
|
|
21
|
+
* @param entity - The source entity whose local space defines the direction
|
|
22
|
+
* @param localDirection - Direction vector in the entity's local coordinates
|
|
23
|
+
* @returns The direction vector in world coordinates
|
|
24
|
+
*/
|
|
25
|
+
localToWorldDirection(entity: Entity, localDirection: Vector3Type): Vector3Type;
|
|
13
26
|
}
|
|
14
27
|
/**
|
|
15
28
|
* @public
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
// Use import * to safely handle circular dependency (tree.ts → components → Transform.ts → tree.ts).
|
|
2
|
+
// With import *, the namespace object's properties are resolved at access time (live bindings in ESM,
|
|
3
|
+
// getters via __importStar in CJS), so by the time methods are called all exports are available.
|
|
4
|
+
import * as treeHelpers from '../../runtime/helpers/tree';
|
|
1
5
|
/**
|
|
2
6
|
* @internal
|
|
3
7
|
*/
|
|
@@ -101,6 +105,10 @@ export function defineTransformComponent(engine) {
|
|
|
101
105
|
},
|
|
102
106
|
createOrReplace(entity, val) {
|
|
103
107
|
return transformDef.createOrReplace(entity, TransformSchema.extend(val));
|
|
108
|
+
},
|
|
109
|
+
localToWorldDirection(entity, localDirection) {
|
|
110
|
+
const worldRotation = treeHelpers.getWorldRotation(engine, entity);
|
|
111
|
+
return treeHelpers.rotateVectorByQuaternion(localDirection, worldRotation);
|
|
104
112
|
}
|
|
105
113
|
};
|
|
106
114
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
export type { AnimatorComponentDefinitionExtended } from './extended/Animator';
|
|
2
2
|
export type { AudioSourceComponentDefinitionExtended } from './extended/AudioSource';
|
|
3
|
+
export type { AudioAnalysisComponentDefinitionExtended, AudioAnalysisView } from './extended/AudioAnalysis';
|
|
3
4
|
export type { AudioStreamComponentDefinitionExtended } from './extended/AudioStream';
|
|
4
5
|
export type { MeshRendererComponentDefinitionExtended } from './extended/MeshRenderer';
|
|
5
6
|
export type { MeshColliderComponentDefinitionExtended } from './extended/MeshCollider';
|
|
6
|
-
export type { AvatarEquippedDataComponentDefinitionExtended, AvatarEquippedDataType } from './extended/AvatarEquippedData';
|
|
7
|
-
export type { AvatarShapeComponentDefinitionExtended, AvatarShapeType } from './extended/AvatarShape';
|
|
8
7
|
export type { TextureHelper, MaterialComponentDefinitionExtended, FlatTexture, ReadonlyFlatMaterial, ReadonlyFlatTexture, FlatMaterial } from './extended/Material';
|
|
9
|
-
export type { TweenHelper, TweenComponentDefinitionExtended } from './extended/Tween';
|
|
8
|
+
export type { TweenHelper, TweenComponentDefinitionExtended, SetMoveRotateScaleParams, MoveRotateScaleModeParams } from './extended/Tween';
|
|
10
9
|
export type { CameraTransitionHelper, VirtualCameraComponentDefinitionExtended } from './extended/VirtualCamera';
|
|
11
10
|
export type { TransformComponentExtended, TransformTypeWithOptionals } from './manual/Transform';
|
|
12
11
|
export type { NameComponent, NameType } from './manual/Name';
|
|
@@ -17,3 +16,4 @@ export type { INetowrkParent, INetowrkParentType } from './manual/NetworkParent'
|
|
|
17
16
|
export type { InputModifierHelper, InputModifierComponentDefinitionExtended } from './extended/InputModifier';
|
|
18
17
|
export type { LightSourceHelper, LightSourceComponentDefinitionExtended } from './extended/LightSource';
|
|
19
18
|
export type { TriggerAreaComponentDefinitionExtended } from './extended/TriggerArea';
|
|
19
|
+
export type { ParticleSystemHelper, ParticleSystemComponentDefinitionExtended, ParticleSystemBlendMode, ParticleSystemPlaybackState } from './extended/ParticleSystem';
|
|
@@ -6,6 +6,7 @@ import { CompositeDefinition } from './proto/gen/composite.gen';
|
|
|
6
6
|
export type { CompositeDefinition, ComponentData, CompositeComponent, CompositeComponent_DataEntry, InstanceCompositeOptions, CompositeProvider, CompositeRootType, CompositeResource };
|
|
7
7
|
export { EntityMappingMode };
|
|
8
8
|
export { getCompositeRootComponent };
|
|
9
|
+
export { setCompositeProvider, getCompositeProvider } from './provider-registry';
|
|
9
10
|
/**
|
|
10
11
|
* @public
|
|
11
12
|
* @deprecated composite is not being supported so far, please do not use this feature
|
|
@@ -31,14 +32,16 @@ export declare namespace Composite {
|
|
|
31
32
|
/** @public */
|
|
32
33
|
function toBinary(composite: Composite.Definition): Uint8Array;
|
|
33
34
|
/**
|
|
34
|
-
* Instance a composite and
|
|
35
|
-
* @param
|
|
36
|
-
* @param
|
|
37
|
-
* @param
|
|
35
|
+
* Instance a composite and return its root entity.
|
|
36
|
+
* @param engine - the engine that will own the new entities
|
|
37
|
+
* @param compositeData - the composite resource to instance
|
|
38
|
+
* @param compositeProvider - provider used to resolve nested composite references
|
|
39
|
+
* @param options - instancing options (`rootEntity`, `entityMapping`, `alreadyRequestedSrc`)
|
|
40
|
+
* @returns the root entity of the instanced composite
|
|
38
41
|
*
|
|
39
42
|
* @public
|
|
40
43
|
*/
|
|
41
|
-
function instance(engine: IEngine, compositeData: Composite.Resource, compositeProvider: CompositeProvider, options?: InstanceCompositeOptions):
|
|
44
|
+
function instance(engine: IEngine, compositeData: Composite.Resource, compositeProvider: CompositeProvider, options?: InstanceCompositeOptions): import("../engine").Entity;
|
|
42
45
|
/**
|
|
43
46
|
* Resolve and normalize a composite path
|
|
44
47
|
* @param src - the source path
|
package/dist/composite/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import { resolveComposite } from './path';
|
|
|
4
4
|
import { CompositeDefinition } from './proto/gen/composite.gen';
|
|
5
5
|
export { EntityMappingMode };
|
|
6
6
|
export { getCompositeRootComponent };
|
|
7
|
+
export { setCompositeProvider, getCompositeProvider } from './provider-registry';
|
|
7
8
|
/**
|
|
8
9
|
* @public
|
|
9
10
|
* @deprecated composite is not being supported so far, please do not use this feature
|
|
@@ -31,15 +32,17 @@ export var Composite;
|
|
|
31
32
|
}
|
|
32
33
|
Composite.toBinary = toBinary;
|
|
33
34
|
/**
|
|
34
|
-
* Instance a composite and
|
|
35
|
-
* @param
|
|
36
|
-
* @param
|
|
37
|
-
* @param
|
|
35
|
+
* Instance a composite and return its root entity.
|
|
36
|
+
* @param engine - the engine that will own the new entities
|
|
37
|
+
* @param compositeData - the composite resource to instance
|
|
38
|
+
* @param compositeProvider - provider used to resolve nested composite references
|
|
39
|
+
* @param options - instancing options (`rootEntity`, `entityMapping`, `alreadyRequestedSrc`)
|
|
40
|
+
* @returns the root entity of the instanced composite
|
|
38
41
|
*
|
|
39
42
|
* @public
|
|
40
43
|
*/
|
|
41
44
|
/*#__PURE__*/ function instance(engine, compositeData, compositeProvider, options = {}) {
|
|
42
|
-
instanceComposite(engine, compositeData, compositeProvider, options);
|
|
45
|
+
return instanceComposite(engine, compositeData, compositeProvider, options);
|
|
43
46
|
}
|
|
44
47
|
Composite.instance = instance;
|
|
45
48
|
/**
|
|
@@ -13,6 +13,11 @@ export type CompositeResource = {
|
|
|
13
13
|
*/
|
|
14
14
|
export type CompositeProvider = {
|
|
15
15
|
getCompositeOrNull(src: string): CompositeResource | null;
|
|
16
|
+
loadComposite?: (src: string) => Promise<CompositeResource>;
|
|
17
|
+
schemas?: Iterable<{
|
|
18
|
+
name: string;
|
|
19
|
+
jsonSchema: any;
|
|
20
|
+
}>;
|
|
16
21
|
};
|
|
17
22
|
/** @public */
|
|
18
23
|
export declare enum EntityMappingMode {
|
|
@@ -43,7 +43,7 @@ export function getComponentDefinition(engine, component) {
|
|
|
43
43
|
return engine.defineComponentFromSchema(component.name, Schemas.fromJson(component.jsonSchema));
|
|
44
44
|
}
|
|
45
45
|
else {
|
|
46
|
-
throw new Error(
|
|
46
|
+
throw new Error(`Composite references undefined component "${component.name}". Ensure provider.schemas was registered pre-seal via setCompositeProvider().`);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
else {
|
|
@@ -84,6 +84,7 @@ export function instanceComposite(engine, compositeResource, compositeProvider,
|
|
|
84
84
|
const compositeDirectoryPath = path.dirname(path.resolve(compositeResource.src));
|
|
85
85
|
const TransformComponentNumber = componentNumberFromName('core::Transform');
|
|
86
86
|
const CompositeRootComponent = getCompositeRootComponent(engine);
|
|
87
|
+
let hadNestedComposite = false;
|
|
87
88
|
// Key => EntityNumber from the composite
|
|
88
89
|
// Value => EntityNumber in current engine
|
|
89
90
|
const mappedEntities = new Map();
|
|
@@ -99,23 +100,29 @@ export function instanceComposite(engine, compositeResource, compositeProvider,
|
|
|
99
100
|
// If there are more composite inside this one, we instance first.
|
|
100
101
|
// => This is not only a copy, we need to instance. Otherwise, we'd be missing that branches
|
|
101
102
|
// => TODO: in the future, the instanciation is first, then the overides (to parameterize Composite, e.g. house with different wall colors)
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
const
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
if (
|
|
111
|
-
childCompositeResource.src
|
|
112
|
-
|
|
103
|
+
if (CompositeRootComponent) {
|
|
104
|
+
const childrenComposite = compositeResource.composite.components.find((item) => item.name === CompositeRootComponent.componentName);
|
|
105
|
+
if (childrenComposite) {
|
|
106
|
+
for (const [childCompositeEntity, compositeRawData] of childrenComposite.data) {
|
|
107
|
+
const childComposite = getComponentValue(CompositeRootComponent, compositeRawData);
|
|
108
|
+
const childCompositePath = path.resolveComposite(childComposite.src, compositeDirectoryPath);
|
|
109
|
+
const childCompositeResource = compositeProvider.getCompositeOrNull(childCompositePath);
|
|
110
|
+
const targetEntity = getCompositeEntity(childCompositeEntity);
|
|
111
|
+
if (childCompositeResource) {
|
|
112
|
+
if (alreadyRequestedSrc.has(childCompositeResource.src) ||
|
|
113
|
+
childCompositeResource.src === compositeResource.src) {
|
|
114
|
+
throw new Error(`Composite ${compositeResource.src} has a recursive instanciation while try to instance ${childCompositeResource.src}. Previous instances: ${alreadyRequestedSrc.toString()}`);
|
|
115
|
+
}
|
|
116
|
+
hadNestedComposite = true;
|
|
117
|
+
instanceComposite(engine, childCompositeResource, compositeProvider, {
|
|
118
|
+
rootEntity: targetEntity,
|
|
119
|
+
alreadyRequestedSrc: new Set(alreadyRequestedSrc).add(childCompositeResource.src),
|
|
120
|
+
entityMapping: entityMapping?.type === EntityMappingMode.EMM_NEXT_AVAILABLE ? entityMapping : undefined
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
console.warn(`Composite "${compositeResource.src}" references missing nested composite "${childCompositePath}". Skipping; the spawned subtree will be incomplete.`);
|
|
113
125
|
}
|
|
114
|
-
instanceComposite(engine, childCompositeResource, compositeProvider, {
|
|
115
|
-
rootEntity: targetEntity,
|
|
116
|
-
alreadyRequestedSrc: new Set(alreadyRequestedSrc).add(childCompositeResource.src),
|
|
117
|
-
entityMapping: entityMapping?.type === EntityMappingMode.EMM_NEXT_AVAILABLE ? entityMapping : undefined
|
|
118
|
-
});
|
|
119
126
|
}
|
|
120
127
|
}
|
|
121
128
|
}
|
|
@@ -123,7 +130,7 @@ export function instanceComposite(engine, compositeResource, compositeProvider,
|
|
|
123
130
|
// Then, we copy the all rest of the components (skipping the Composite ones)
|
|
124
131
|
for (const component of compositeResource.composite.components) {
|
|
125
132
|
// We already instanced the composite
|
|
126
|
-
if (component.name === CompositeRootComponent.componentName)
|
|
133
|
+
if (CompositeRootComponent && component.name === CompositeRootComponent.componentName)
|
|
127
134
|
continue;
|
|
128
135
|
// ## 3a ##
|
|
129
136
|
// We find the component definition
|
|
@@ -159,13 +166,15 @@ export function instanceComposite(engine, compositeResource, compositeProvider,
|
|
|
159
166
|
}
|
|
160
167
|
}
|
|
161
168
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
169
|
+
if (hadNestedComposite) {
|
|
170
|
+
const composite = CompositeRootComponent.getMutableOrNull(compositeRootEntity) || CompositeRootComponent.create(compositeRootEntity);
|
|
171
|
+
for (const [entitySource, targetEntity] of mappedEntities) {
|
|
172
|
+
composite.entities.push({
|
|
173
|
+
src: entitySource,
|
|
174
|
+
dest: targetEntity
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
composite.src = compositeResource.src;
|
|
168
178
|
}
|
|
169
|
-
composite.src = compositeResource.src;
|
|
170
179
|
return compositeRootEntity;
|
|
171
180
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { IEngine } from '../engine';
|
|
2
|
+
import type { CompositeProvider } from './instance';
|
|
3
|
+
/**
|
|
4
|
+
* Register the composite provider used to resolve composite files. Also registers
|
|
5
|
+
* any `provider.schemas` on the engine pre-seal so composites that reference those
|
|
6
|
+
* components can be instanced without further setup.
|
|
7
|
+
* @public
|
|
8
|
+
*/
|
|
9
|
+
export declare function setCompositeProvider(engine: IEngine, provider: CompositeProvider): void;
|
|
10
|
+
/**
|
|
11
|
+
* Get the composite provider registered via setCompositeProvider. Returns null if
|
|
12
|
+
* no provider has been set.
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
15
|
+
export declare function getCompositeProvider(): CompositeProvider | null;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Schemas } from '../schemas';
|
|
2
|
+
import { getCompositeRootComponent } from './components';
|
|
3
|
+
let currentProvider = null;
|
|
4
|
+
/**
|
|
5
|
+
* Register the composite provider used to resolve composite files. Also registers
|
|
6
|
+
* any `provider.schemas` on the engine pre-seal so composites that reference those
|
|
7
|
+
* components can be instanced without further setup.
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export function setCompositeProvider(engine, provider) {
|
|
11
|
+
currentProvider = provider;
|
|
12
|
+
// Define composite::root pre-seal. setCompositeProvider runs at module-load,
|
|
13
|
+
// so this guarantees the component exists before the engine seals — composites
|
|
14
|
+
// instanced at runtime (post-seal) would otherwise trip the seal when
|
|
15
|
+
// instanceComposite looks it up via getCompositeRootComponent.
|
|
16
|
+
getCompositeRootComponent(engine);
|
|
17
|
+
if (!provider.schemas)
|
|
18
|
+
return;
|
|
19
|
+
for (const { name, jsonSchema } of provider.schemas) {
|
|
20
|
+
if (engine.getComponentOrNull(name))
|
|
21
|
+
continue;
|
|
22
|
+
engine.defineComponentFromSchema(name, Schemas.fromJson(jsonSchema));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get the composite provider registered via setCompositeProvider. Returns null if
|
|
27
|
+
* no provider has been set.
|
|
28
|
+
* @public
|
|
29
|
+
*/
|
|
30
|
+
export function getCompositeProvider() {
|
|
31
|
+
return currentProvider;
|
|
32
|
+
}
|
package/dist/engine/entity.js
CHANGED
|
@@ -61,8 +61,10 @@ export var EntityState;
|
|
|
61
61
|
*/
|
|
62
62
|
export function createEntityContainer(opts) {
|
|
63
63
|
const reservedStaticEntities = opts?.reservedStaticEntities ?? RESERVED_STATIC_ENTITIES;
|
|
64
|
-
//
|
|
65
|
-
|
|
64
|
+
// If a build tool has set DCL_MAX_COMPOSITE_ENTITY (via esbuild define),
|
|
65
|
+
// start the counter past composite entities to prevent ID collisions.
|
|
66
|
+
const maxCompositeEntity = typeof DCL_MAX_COMPOSITE_ENTITY !== 'undefined' ? DCL_MAX_COMPOSITE_ENTITY : 0;
|
|
67
|
+
let entityCounter = Math.max(reservedStaticEntities, maxCompositeEntity > 0 ? maxCompositeEntity + 1 : 0);
|
|
66
68
|
const usedEntities = new Set();
|
|
67
69
|
let toRemoveEntities = [];
|
|
68
70
|
const removedEntities = createVersionGSet();
|
package/dist/engine/index.js
CHANGED
|
@@ -236,7 +236,7 @@ export function Engine(options) {
|
|
|
236
236
|
const deletedEntites = partialEngine.entityContainer.releaseRemovedEntities();
|
|
237
237
|
await crdtSystem.sendMessages(deletedEntites);
|
|
238
238
|
}
|
|
239
|
-
|
|
239
|
+
const engineInstance = {
|
|
240
240
|
_id: Date.now(),
|
|
241
241
|
addEntity: partialEngine.addEntity,
|
|
242
242
|
removeEntity: partialEngine.removeEntity,
|
|
@@ -264,4 +264,5 @@ export function Engine(options) {
|
|
|
264
264
|
addTransport: crdtSystem.addTransport,
|
|
265
265
|
entityContainer: partialEngine.entityContainer
|
|
266
266
|
};
|
|
267
|
+
return engineInstance;
|
|
267
268
|
}
|
package/dist/engine/input.d.ts
CHANGED
|
@@ -32,12 +32,6 @@ export type IInputSystem = {
|
|
|
32
32
|
* @returns the input command info or undefined if there is no command in the last tick-update
|
|
33
33
|
*/
|
|
34
34
|
getInputCommand: (inputAction: InputAction, pointerEventType: PointerEventType, entity?: Entity) => PBPointerEventsResult | null;
|
|
35
|
-
/**
|
|
36
|
-
* @public
|
|
37
|
-
* Get an ordered iterator over events received within the current frame.
|
|
38
|
-
* @returns the iterator
|
|
39
|
-
*/
|
|
40
|
-
getInputCommands: () => Generator<PBPointerEventsResult>;
|
|
41
35
|
};
|
|
42
36
|
/**
|
|
43
37
|
* @public
|
package/dist/engine/input.js
CHANGED
|
@@ -12,7 +12,8 @@ const InputCommands = [
|
|
|
12
12
|
10 /* InputAction.IA_ACTION_3 */,
|
|
13
13
|
11 /* InputAction.IA_ACTION_4 */,
|
|
14
14
|
12 /* InputAction.IA_ACTION_5 */,
|
|
15
|
-
13 /* InputAction.IA_ACTION_6
|
|
15
|
+
13 /* InputAction.IA_ACTION_6 */,
|
|
16
|
+
14 /* InputAction.IA_MODIFIER */
|
|
16
17
|
];
|
|
17
18
|
const InputStateUpdateSystemPriority = 1 << 20;
|
|
18
19
|
/**
|
|
@@ -118,8 +119,9 @@ export function createInputSystem(engine) {
|
|
|
118
119
|
}
|
|
119
120
|
if (!up || !down)
|
|
120
121
|
return null;
|
|
121
|
-
// If the DOWN command has
|
|
122
|
-
|
|
122
|
+
// If the DOWN command has happened before or at the same time as the UP command, a click has happened.
|
|
123
|
+
// Same-timestamp is possible when both events are produced within the same renderer tick.
|
|
124
|
+
if (down.timestamp <= up.timestamp && timestampIsCurrentFrame(up.timestamp)) {
|
|
123
125
|
return { up, down };
|
|
124
126
|
}
|
|
125
127
|
return null;
|
|
@@ -185,17 +187,11 @@ export function createInputSystem(engine) {
|
|
|
185
187
|
function isPressed(inputAction) {
|
|
186
188
|
return globalState.buttonState.get(inputAction)?.state === 1 /* PointerEventType.PET_DOWN */;
|
|
187
189
|
}
|
|
188
|
-
function* getInputCommands() {
|
|
189
|
-
for (let i = globalState.thisFrameCommands.length - 1; i >= 0; i--) {
|
|
190
|
-
yield globalState.thisFrameCommands[i];
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
190
|
return {
|
|
194
191
|
isPressed,
|
|
195
192
|
getClick,
|
|
196
193
|
getInputCommand,
|
|
197
194
|
isClicked,
|
|
198
|
-
isTriggered
|
|
199
|
-
getInputCommands
|
|
195
|
+
isTriggered
|
|
200
196
|
};
|
|
201
197
|
}
|
|
@@ -4,5 +4,5 @@ import { PutComponentMessageBody, DeleteComponentMessageBody, CrdtMessageBody }
|
|
|
4
4
|
import { Entity } from './entity';
|
|
5
5
|
export declare function incrementTimestamp(entity: Entity, timestamps: Map<Entity, number>): number;
|
|
6
6
|
export declare function createDumpLwwFunctionFromCrdt(componentId: number, timestamps: Map<Entity, number>, schema: Pick<ISchema<any>, 'serialize' | 'deserialize'>, data: Map<Entity, unknown>): (buffer: ByteBuffer, filterEntity?: ((entity: Entity) => boolean) | undefined) => void;
|
|
7
|
-
export declare function createUpdateLwwFromCrdt(componentId: number, timestamps: Map<Entity, number>, schema: Pick<ISchema<any>, 'serialize' | 'deserialize'>, data: Map<Entity, unknown>): (msg: CrdtMessageBody) => [null | PutComponentMessageBody | DeleteComponentMessageBody, any];
|
|
8
|
-
export declare function createGetCrdtMessagesForLww(componentId: number, timestamps: Map<Entity, number>, dirtyIterator: Set<Entity>, schema: Pick<ISchema<any>, 'serialize'>, data: Map<Entity, unknown>): () => Generator<PutComponentMessageBody | DeleteComponentMessageBody, void, unknown>;
|
|
7
|
+
export declare function createUpdateLwwFromCrdt(componentId: number, timestamps: Map<Entity, number>, schema: Pick<ISchema<any>, 'serialize' | 'deserialize'>, data: Map<Entity, unknown>, lastSentData: Map<Entity, Uint8Array>): (msg: CrdtMessageBody) => [null | PutComponentMessageBody | DeleteComponentMessageBody, any];
|
|
8
|
+
export declare function createGetCrdtMessagesForLww(componentId: number, timestamps: Map<Entity, number>, dirtyIterator: Set<Entity>, schema: Pick<ISchema<any>, 'serialize'>, data: Map<Entity, unknown>, lastSentData: Map<Entity, Uint8Array>): () => Generator<PutComponentMessageBody | DeleteComponentMessageBody, void, unknown>;
|
|
@@ -30,7 +30,7 @@ export function createDumpLwwFunctionFromCrdt(componentId, timestamps, schema, d
|
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
-
export function createUpdateLwwFromCrdt(componentId, timestamps, schema, data) {
|
|
33
|
+
export function createUpdateLwwFromCrdt(componentId, timestamps, schema, data, lastSentData) {
|
|
34
34
|
/**
|
|
35
35
|
* Process the received message only if the lamport number recieved is higher
|
|
36
36
|
* than the stored one. If its lower, we spread it to the network to correct the peer.
|
|
@@ -96,9 +96,11 @@ export function createUpdateLwwFromCrdt(componentId, timestamps, schema, data) {
|
|
|
96
96
|
if (msg.type === CrdtMessageType.PUT_COMPONENT || msg.type === CrdtMessageType.PUT_COMPONENT_NETWORK) {
|
|
97
97
|
const buf = new ReadWriteByteBuffer(msg.data);
|
|
98
98
|
data.set(entity, schema.deserialize(buf));
|
|
99
|
+
lastSentData.set(entity, new Uint8Array(msg.data));
|
|
99
100
|
}
|
|
100
101
|
else {
|
|
101
102
|
data.delete(entity);
|
|
103
|
+
lastSentData.delete(entity);
|
|
102
104
|
}
|
|
103
105
|
return [null, data.get(entity)];
|
|
104
106
|
}
|
|
@@ -134,23 +136,34 @@ export function createUpdateLwwFromCrdt(componentId, timestamps, schema, data) {
|
|
|
134
136
|
return [null, data.get(entity)];
|
|
135
137
|
};
|
|
136
138
|
}
|
|
137
|
-
export function createGetCrdtMessagesForLww(componentId, timestamps, dirtyIterator, schema, data) {
|
|
139
|
+
export function createGetCrdtMessagesForLww(componentId, timestamps, dirtyIterator, schema, data, lastSentData) {
|
|
138
140
|
return function* () {
|
|
141
|
+
const writeBuffer = new ReadWriteByteBuffer();
|
|
139
142
|
for (const entity of dirtyIterator) {
|
|
140
|
-
const newTimestamp = incrementTimestamp(entity, timestamps);
|
|
141
143
|
if (data.has(entity)) {
|
|
142
|
-
|
|
144
|
+
writeBuffer.resetBuffer();
|
|
143
145
|
schema.serialize(data.get(entity), writeBuffer);
|
|
146
|
+
// Compare against last-sent snapshot using the zero-copy subarray view.
|
|
147
|
+
// Only allocate a copy when bytes actually differ.
|
|
148
|
+
const previousBytes = lastSentData.get(entity);
|
|
149
|
+
if (previousBytes && dataCompare(writeBuffer.toBinary(), previousBytes) === 0) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
const currentBytes = writeBuffer.toCopiedBinary();
|
|
153
|
+
const newTimestamp = incrementTimestamp(entity, timestamps);
|
|
154
|
+
lastSentData.set(entity, currentBytes);
|
|
144
155
|
const msg = {
|
|
145
156
|
type: CrdtMessageType.PUT_COMPONENT,
|
|
146
157
|
componentId,
|
|
147
158
|
entityId: entity,
|
|
148
|
-
data:
|
|
159
|
+
data: currentBytes,
|
|
149
160
|
timestamp: newTimestamp
|
|
150
161
|
};
|
|
151
162
|
yield msg;
|
|
152
163
|
}
|
|
153
164
|
else {
|
|
165
|
+
lastSentData.delete(entity);
|
|
166
|
+
const newTimestamp = incrementTimestamp(entity, timestamps);
|
|
154
167
|
const msg = {
|
|
155
168
|
type: CrdtMessageType.DELETE_COMPONENT,
|
|
156
169
|
componentId,
|
|
@@ -170,6 +183,7 @@ export function createComponentDefinitionFromSchema(componentName, componentId,
|
|
|
170
183
|
const data = new Map();
|
|
171
184
|
const dirtyIterator = new Set();
|
|
172
185
|
const timestamps = new Map();
|
|
186
|
+
const lastSentData = new Map();
|
|
173
187
|
const onChangeCallbacks = new Map();
|
|
174
188
|
return {
|
|
175
189
|
get componentId() {
|
|
@@ -191,12 +205,14 @@ export function createComponentDefinitionFromSchema(componentName, componentId,
|
|
|
191
205
|
if (data.delete(entity) && markAsDirty) {
|
|
192
206
|
dirtyIterator.add(entity);
|
|
193
207
|
}
|
|
208
|
+
lastSentData.delete(entity);
|
|
194
209
|
return component || null;
|
|
195
210
|
},
|
|
196
211
|
entityDeleted(entity, markAsDirty) {
|
|
197
212
|
if (data.delete(entity) && markAsDirty) {
|
|
198
213
|
dirtyIterator.add(entity);
|
|
199
214
|
}
|
|
215
|
+
lastSentData.delete(entity);
|
|
200
216
|
},
|
|
201
217
|
getOrNull(entity) {
|
|
202
218
|
const component = data.get(entity);
|
|
@@ -223,6 +239,7 @@ export function createComponentDefinitionFromSchema(componentName, componentId,
|
|
|
223
239
|
const usedValue = value === undefined ? schema.create() : schema.extend ? schema.extend(value) : value;
|
|
224
240
|
data.set(entity, usedValue);
|
|
225
241
|
dirtyIterator.add(entity);
|
|
242
|
+
lastSentData.delete(entity);
|
|
226
243
|
return usedValue;
|
|
227
244
|
},
|
|
228
245
|
getMutableOrNull(entity) {
|
|
@@ -260,8 +277,8 @@ export function createComponentDefinitionFromSchema(componentName, componentId,
|
|
|
260
277
|
yield entity;
|
|
261
278
|
}
|
|
262
279
|
},
|
|
263
|
-
getCrdtUpdates: createGetCrdtMessagesForLww(componentId, timestamps, dirtyIterator, schema, data),
|
|
264
|
-
updateFromCrdt: createUpdateLwwFromCrdt(componentId, timestamps, schema, data),
|
|
280
|
+
getCrdtUpdates: createGetCrdtMessagesForLww(componentId, timestamps, dirtyIterator, schema, data, lastSentData),
|
|
281
|
+
updateFromCrdt: createUpdateLwwFromCrdt(componentId, timestamps, schema, data, lastSentData),
|
|
265
282
|
dumpCrdtStateToBuffer: createDumpLwwFunctionFromCrdt(componentId, timestamps, schema, data),
|
|
266
283
|
onChange(entity, cb) {
|
|
267
284
|
const cbs = onChangeCallbacks.get(entity) ?? [];
|