@fps-games/editor 0.2.0-beta.2 → 0.2.0-beta.4
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/agent-bridge/capabilities/assets.js.map +1 -1
- package/dist/agent-bridge/capabilities/editor-state.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/editor-state.js +26 -17
- package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
- package/dist/agent-bridge/capabilities/host-lifecycle.js.map +1 -1
- package/dist/agent-bridge/capabilities/prefabs.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/prefabs.js +61 -13
- package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.d.ts +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.js +110 -25
- package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
- package/dist/agent-bridge/capabilities/selection.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/selection.js +8 -5
- package/dist/agent-bridge/capabilities/selection.js.map +1 -1
- package/dist/agent-bridge/capabilities/shadows.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/shadows.js +11 -2
- package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
- package/dist/agent-bridge/capabilities/transform.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/transform.js +6 -4
- package/dist/agent-bridge/capabilities/transform.js.map +1 -1
- package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
- package/dist/agent-bridge/capabilities/viewport.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/viewport.js +79 -47
- package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
- package/dist/agent-bridge/capability-sources.js.map +1 -1
- package/dist/agent-bridge/diagnostics.js.map +1 -1
- package/dist/agent-bridge/index.js.map +1 -1
- package/dist/agent-bridge/register.js.map +1 -1
- package/dist/agent-bridge/shared.d.ts +8 -3
- package/dist/agent-bridge/shared.d.ts.map +1 -1
- package/dist/agent-bridge/shared.js +32 -0
- package/dist/agent-bridge/shared.js.map +1 -1
- package/dist/agent-bridge/source-types.js.map +1 -1
- package/dist/authoring-apply.js.map +1 -1
- package/dist/build-info.json +48 -48
- package/dist/editor-plugin-agent-capabilities.js.map +1 -1
- package/dist/editor-plugin-hierarchy-command.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/local-editor-lifecycle-operations.js.map +1 -1
- package/dist/local-editor-agent-actions.d.ts.map +1 -1
- package/dist/local-editor-agent-actions.js +9 -5
- package/dist/local-editor-agent-actions.js.map +1 -1
- package/dist/local-editor-agent-bridge-transport.js.map +1 -1
- package/dist/local-editor-agent-bridge.js.map +1 -1
- package/dist/local-editor-agent-context.js.map +1 -1
- package/dist/local-editor-harness.d.ts +57 -1
- package/dist/local-editor-harness.d.ts.map +1 -1
- package/dist/local-editor-harness.js +393 -41
- package/dist/local-editor-harness.js.map +1 -1
- package/dist/local-editor-marker-graph.js.map +1 -1
- package/dist/local-editor-performance-stats.js.map +1 -1
- package/dist/local-editor-plugin-inspector.js.map +1 -1
- package/dist/local-editor-plugin-panel.js.map +1 -1
- package/dist/local-editor-scene-render-scheduler.js.map +1 -1
- package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
- package/dist/local-editor-viewport-render-coordinator.js.map +1 -1
- package/dist/playable-babylon-facade.js.map +1 -1
- package/dist/playable-babylon-outline-inspector.js.map +1 -1
- package/dist/playable-babylon-outline-runtime.js.map +1 -1
- package/dist/playable-babylon-rendering.js.map +1 -1
- package/dist/playable-local-editor-host.d.ts +36 -0
- package/dist/playable-local-editor-host.d.ts.map +1 -1
- package/dist/playable-local-editor-host.js.map +1 -1
- package/dist/playable-product-local-editor.js.map +1 -1
- package/dist/playable-product-projection-preview.js.map +1 -1
- package/dist/playable-product-rendering.js.map +1 -1
- package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
- package/dist/playable-product-scene-capabilities.js +49 -2
- package/dist/playable-product-scene-capabilities.js.map +1 -1
- package/dist/playable-runtime-babylon.js.map +1 -1
- package/dist/playable-runtime.js.map +1 -1
- package/dist/playable-sdk-upgrade-doctor.js.map +1 -1
- package/dist/playable-sdk-vite.js.map +1 -1
- package/dist/playable-sdk.js.map +1 -1
- package/dist/playable-standard-project.js.map +1 -1
- package/dist/static-shadow-cpu-worker.js.map +1 -1
- package/dist/vite.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/lighting/directional-light-angles.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/apply.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/placement/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/placement/runtime-drop-position.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/profile.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/volume-stack.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/rendering/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/rendering/node-rendering.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-shaders.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-options.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
- package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/edit-session.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/editor-world.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/event-guard.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/infinite-grid-layer.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/input-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/inspector-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/monitor.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/outline-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/primitive-projection-instancing.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-pick-resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-source-owner-path.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/runtime-globals.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-camera-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-measurement-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/selection-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/tool-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-solver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/types.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/package.json +5 -5
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts +3 -1
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/index.js +2 -0
- package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-clipboard.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-root-ownership.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-auto-scroll.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +2 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +260 -94
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts +7 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js +186 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts +2 -2
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js +14 -8
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +23 -7
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +6 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts +3 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +60 -13
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-plugin-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts +24 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js +69 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-auto-scroll.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-session.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +58 -14
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +196 -11
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-camera-debug-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug-panel-shell.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-lighting-debug-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/package.json +4 -4
- package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/agent-interaction.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/authoring-source.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/document-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +9 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.js +18 -0
- package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/events.d.ts +1 -1
- package/node_modules/@fps-games/editor-core/dist/events.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/events.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/index.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/schema.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/types.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/validators.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/host-services.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/lifecycle.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/marker-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-view-input.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/selection-strategy.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/serialized-object.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-command.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-gizmo.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-operation-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-operations.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.js.map +1 -1
- package/node_modules/@fps-games/editor-core/package.json +6 -6
- package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +1 -1
- package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/drop-cache.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js +28 -5
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/config.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/managed-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js +13 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +58 -23
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/identity.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/managed-runtime-instance.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/runtime-scene.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/transport.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js +7 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/constants.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/drift.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/runtime-transform-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/source.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/client.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/payload.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/response.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/adapter-dispatcher.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/payload.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/project-asset-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/readers.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/pan.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-format.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-state.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-storage.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-text.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/rig.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/save-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/snapshot.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/commands/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/commands/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/commands/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/core-contracts/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/camera-section.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-property.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/format.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/marker-section.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/object-assembly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/readonly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-summary.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/safe-value.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/internal/local-harness.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/save-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/snapshot.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/storage.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/text.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/profile.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/loading-overlay.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts +18 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js +60 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/timing.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/game-objects.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/geometry.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/default-assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js +28 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/duplicate.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/paths.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/preview.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/profile.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js +26 -9
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js +0 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/text.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts +8 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/json-field.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +18 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/shadow-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/source-structure-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/structure.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/asset-manager.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal-scene-feature.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +3 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-asset-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/draft.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/route.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/import-plan.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +13 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/artifacts.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/classification.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/object-command-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/property-patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/system-defaults.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shared/http.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shared/json.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/host.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/report.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/asset-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts +6 -5
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts +3 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js +37 -8
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/path-write-coordinator.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts +4 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +14 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +5 -4
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts +3 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js +2 -11
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts +8 -7
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +84 -6
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts +4 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js +1 -4
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +0 -33
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/package.json +9 -6
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/marker-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/package.json +2 -2
- package/node_modules/@fps-games/editor-tooling/dist/contributions.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/data-object.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/migration.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/vite.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/package.json +3 -3
- package/node_modules/@fps-games/playable-assets/dist/identity.js.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/index.d.ts +1 -0
- package/node_modules/@fps-games/playable-assets/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/index.js +1 -0
- package/node_modules/@fps-games/playable-assets/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts +2 -0
- package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-assets/dist/portable-path.js +25 -0
- package/node_modules/@fps-games/playable-assets/dist/portable-path.js.map +1 -0
- package/node_modules/@fps-games/playable-assets/package.json +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/marker-graph-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/marker-graph.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/package.json +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-authoring.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-types.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-values.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-quality.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-settings.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-types.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/value.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/package.json +2 -2
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/runtime-data.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/standard-plugins.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/tokens.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/types.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/package.json +12 -12
- package/node_modules/@fps-games/playable-runtime-data/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
- package/node_modules/@fps-games/playable-scene/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-scene/dist/transform-math.js.map +1 -1
- package/node_modules/@fps-games/playable-scene/package.json +2 -2
- package/node_modules/@fps-games/plugin-api/dist/index.js.map +1 -1
- package/node_modules/@fps-games/plugin-api/package.json +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/package.json +5 -5
- package/node_modules/@fps-games/plugin-host/dist/index.js.map +1 -1
- package/node_modules/@fps-games/plugin-host/package.json +2 -2
- package/node_modules/@fps-games/plugin-markers/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/package.json +5 -5
- package/node_modules/@fps-games/plugin-materials/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/package.json +5 -5
- package/node_modules/@fps-games/plugin-rendering/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
- package/node_modules/@fps-games/plugin-scene/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/package.json +5 -5
- package/node_modules/@fps-games/plugin-shadows/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
- package/package.json +27 -19
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createEditorSession, FPS_EDITOR_ACTIVE_TOOL_CHANGED, FPS_EDITOR_DOCUMENT_CHANGED, FPS_EDITOR_HISTORY_CHANGED, FPS_EDITOR_SELECTION_CHANGED, createEditorAgentBridge, createInspectorRegistry, DEFAULT_EDITOR_TRANSFORM_OPERATION_SETTINGS, DEFAULT_EDITOR_VIEWPORT_TOOL_STATE, createEmptyEditorViewportSpatialOverlayState, cloneEditorTransformSnapshot as cloneCoreEditorTransformSnapshot, composeEditorTransformMatrix, editorTransformMatricesAlmostEqual, cloneEditorViewportToolState, cloneEditorViewportSpatialOverlayState, aggregateInspectorObjectsToMultiObject, createInspectorEditPayload, compareInspectorSections, computeEditorTransformActionTargets, mergeInspectorSections, isEditorTransformTrsSnapshot, normalizeEditorTransformConstraint, readEditorTransformPosition, resolveEditorSelectionCommand, validateSceneGraphDelete, validateSceneGraphDrop, validateSceneGraphGroupSelection, validateSceneGraphMove, validateSceneGraphRename, } from '@fps-games/editor-core';
|
|
2
2
|
import {} from '@fps-games/editor-protocol';
|
|
3
|
-
import { createLocalEditorBrowserUi, toTransformOperationPolicyStatusLabel, } from '@fps-games/editor-browser';
|
|
3
|
+
import { createLocalEditorBrowserUi, createLocalEditorActiveHierarchyScope, createLocalEditorHierarchyProjection, isLocalEditorHierarchyCommandPreconditionCurrent, resolveLocalEditorStatusDiagnostics, createLocalEditorSceneHierarchyScope, createLocalEditorPrefabStageHierarchyScope, toTransformOperationPolicyStatusLabel, } from '@fps-games/editor-browser';
|
|
4
4
|
import { createLocalEditorHarnessPluginInspectorOptions } from './local-editor-plugin-inspector.js';
|
|
5
5
|
import { registerLocalEditorHarnessLifecycleOperations, } from './internal/local-editor-lifecycle-operations.js';
|
|
6
6
|
import { createLocalEditorPluginPanelState } from './local-editor-plugin-panel.js';
|
|
@@ -27,6 +27,70 @@ const EDITOR_WORLD_DISPOSE_BOUNDARY_DELAY_MS = 500;
|
|
|
27
27
|
const RENDERING_ACTION_PROGRESS_MIN_VISIBLE_MS = 1000;
|
|
28
28
|
const EMPTY_EDITOR_SELECTION = { selectedIds: [], activeId: null };
|
|
29
29
|
const MARKER_RELATION_HIGHLIGHT_RENDER_REASON = 'marker-relation-highlight';
|
|
30
|
+
export function assertLocalEditorUpdatedAssetSnapshotFreshness(snapshot, input) {
|
|
31
|
+
if (snapshot?.assetId === input.assetId && snapshot.contentHash === input.expectedContentHash)
|
|
32
|
+
return;
|
|
33
|
+
const error = new Error('asset_update_snapshot_stale');
|
|
34
|
+
Object.assign(error, {
|
|
35
|
+
code: 'asset_update_snapshot_stale',
|
|
36
|
+
details: {
|
|
37
|
+
assetId: input.assetId,
|
|
38
|
+
expectedContentHash: input.expectedContentHash,
|
|
39
|
+
actualAssetId: snapshot?.assetId ?? null,
|
|
40
|
+
actualContentHash: snapshot?.contentHash ?? null,
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
export function syncLocalEditorUpdatedAssetProjection(state, documentChanged, rebuild) {
|
|
46
|
+
if (!documentChanged && !state.pending)
|
|
47
|
+
return false;
|
|
48
|
+
state.pending = true;
|
|
49
|
+
rebuild();
|
|
50
|
+
state.pending = false;
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
export function applyLocalEditorUpdatedAssetRefresh(session, input) {
|
|
54
|
+
const sessionState = session.getState();
|
|
55
|
+
const callbackState = session.getState();
|
|
56
|
+
const persistedDocument = input.hydrateDocumentAssets(callbackState.persistedDocument, input.assets);
|
|
57
|
+
const workingDocument = input.hydrateDocumentAssets(callbackState.workingDocument, input.assets);
|
|
58
|
+
const compareDocuments = input.compareDocuments
|
|
59
|
+
?? ((left, right) => JSON.stringify(left) === JSON.stringify(right));
|
|
60
|
+
const projectionChanged = !compareDocuments(sessionState.persistedDocument, persistedDocument)
|
|
61
|
+
|| !compareDocuments(sessionState.workingDocument, workingDocument);
|
|
62
|
+
// Re-run diagnostics even for a document no-op so retries preserve unresolved
|
|
63
|
+
// binding warnings. The callback only receives cloned snapshots; its document
|
|
64
|
+
// output is ignored unless the asset projection itself changed.
|
|
65
|
+
const reconciliation = input.reconcileUpdatedAsset?.(workingDocument, { assetId: input.assetId }) ?? { document: workingDocument };
|
|
66
|
+
if (!projectionChanged) {
|
|
67
|
+
return {
|
|
68
|
+
changed: false,
|
|
69
|
+
workingDocument: sessionState.workingDocument,
|
|
70
|
+
selection: sessionState.selection,
|
|
71
|
+
reconciledBindingCount: 0,
|
|
72
|
+
warnings: reconciliation.warnings ?? [],
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
// Finish all fallible project-owned calculation before mutating the session.
|
|
76
|
+
session.rebaseExternalDocuments({ persistedDocument, workingDocument });
|
|
77
|
+
const result = session.dispatch({
|
|
78
|
+
type: 'document.replace',
|
|
79
|
+
label: 'Reconcile updated asset',
|
|
80
|
+
document: reconciliation.document,
|
|
81
|
+
projectionImpact: {
|
|
82
|
+
type: 'rebuild',
|
|
83
|
+
reason: 'asset-update',
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
return {
|
|
87
|
+
changed: true,
|
|
88
|
+
workingDocument: result.workingDocument,
|
|
89
|
+
selection: result.selection,
|
|
90
|
+
reconciledBindingCount: reconciliation.reconciledBindingCount ?? 0,
|
|
91
|
+
warnings: reconciliation.warnings ?? [],
|
|
92
|
+
};
|
|
93
|
+
}
|
|
30
94
|
const PREFAB_STAGE_STUDIO_WORLD_APPEARANCE = {
|
|
31
95
|
sky: {
|
|
32
96
|
preset: 'atmospheric',
|
|
@@ -195,12 +259,16 @@ function createLocalEditorHarnessImplementation(options, construction) {
|
|
|
195
259
|
scopeOperations: null,
|
|
196
260
|
nextPrefabScopeRevision: 0,
|
|
197
261
|
editorStateRevision: 0,
|
|
262
|
+
hierarchyProjectionRevision: 0,
|
|
263
|
+
hierarchyCommandDiagnostics: [],
|
|
264
|
+
hierarchyReconcileDiagnostics: [],
|
|
198
265
|
sceneArtifactRevision: 0,
|
|
199
266
|
busy: false,
|
|
200
267
|
session: null,
|
|
201
268
|
source: null,
|
|
202
269
|
assets: [],
|
|
203
270
|
assetFilter: '',
|
|
271
|
+
updatedAssetProjection: { pending: false },
|
|
204
272
|
selectedAssetId: null,
|
|
205
273
|
babylon: null,
|
|
206
274
|
engine: null,
|
|
@@ -213,6 +281,8 @@ function createLocalEditorHarnessImplementation(options, construction) {
|
|
|
213
281
|
overrides: {},
|
|
214
282
|
isolatedObjectIds: [],
|
|
215
283
|
},
|
|
284
|
+
previewVisibilityScopeId: 'scene',
|
|
285
|
+
previewVisibilityByScope: new Map(),
|
|
216
286
|
markerOverlay: null,
|
|
217
287
|
markerGraphVisibility: createDefaultMarkerGraphVisibilityState(),
|
|
218
288
|
activeMarkerRelationId: null,
|
|
@@ -267,7 +337,10 @@ function createLocalEditorHarnessImplementation(options, construction) {
|
|
|
267
337
|
agentBridgeTransport: null,
|
|
268
338
|
agentBridgeStatus: createDisabledLocalEditorAgentBridgeTransportStatus(),
|
|
269
339
|
};
|
|
340
|
+
state.previewVisibilityByScope.set(state.previewVisibilityScopeId, state.previewVisibility);
|
|
270
341
|
const handleEditorSessionChange = (change) => {
|
|
342
|
+
if (change.documentChanged || change.selectionChanged)
|
|
343
|
+
advanceHierarchyProjectionRevision(state);
|
|
271
344
|
void lifecycleController?.synchronizeDocumentState(change.dirty).catch(error => {
|
|
272
345
|
console.error('[LocalEditorHarness] lifecycle document synchronization failed', error);
|
|
273
346
|
});
|
|
@@ -324,6 +397,13 @@ function createLocalEditorHarnessImplementation(options, construction) {
|
|
|
324
397
|
};
|
|
325
398
|
let harness;
|
|
326
399
|
let agentLifecycleController;
|
|
400
|
+
const acceptBrowserHierarchyCommandPrecondition = (precondition) => {
|
|
401
|
+
const hadCommandDiagnostics = state.hierarchyCommandDiagnostics.length > 0;
|
|
402
|
+
const accepted = acceptHierarchyCommandPrecondition(state, precondition);
|
|
403
|
+
if (accepted && hadCommandDiagnostics)
|
|
404
|
+
harness.render();
|
|
405
|
+
return accepted;
|
|
406
|
+
};
|
|
327
407
|
const pluginInspector = createLocalEditorHarnessPluginInspectorOptions(options.pluginHost, options.inspector);
|
|
328
408
|
const ui = createLocalEditorBrowserUi({
|
|
329
409
|
root,
|
|
@@ -364,6 +444,12 @@ function createLocalEditorHarnessImplementation(options, construction) {
|
|
|
364
444
|
harness.render();
|
|
365
445
|
},
|
|
366
446
|
onAssetAction: (input) => {
|
|
447
|
+
const hierarchyAction = input.actionId.startsWith('prefab.node.')
|
|
448
|
+
|| input.hierarchyPrecondition !== undefined;
|
|
449
|
+
if (hierarchyAction && !acceptBrowserHierarchyCommandPrecondition(input.hierarchyPrecondition)) {
|
|
450
|
+
harness.render();
|
|
451
|
+
return;
|
|
452
|
+
}
|
|
367
453
|
void runExclusive(state, harness.render, async () => {
|
|
368
454
|
if (await handleBrowserAssetAction(state, options, input))
|
|
369
455
|
harness.render();
|
|
@@ -375,14 +461,26 @@ function createLocalEditorHarnessImplementation(options, construction) {
|
|
|
375
461
|
harness.render();
|
|
376
462
|
});
|
|
377
463
|
},
|
|
378
|
-
onSelectPrefabStageItem: (itemId) => {
|
|
464
|
+
onSelectPrefabStageItem: (itemId, precondition) => {
|
|
465
|
+
if (!acceptBrowserHierarchyCommandPrecondition(precondition)) {
|
|
466
|
+
harness.render();
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
379
469
|
if (selectPrefabStageItemWithPreviewSync(state, options, itemId))
|
|
380
470
|
harness.render();
|
|
381
471
|
},
|
|
382
|
-
onSelectHierarchyItem: (input) => {
|
|
472
|
+
onSelectHierarchyItem: (input, precondition) => {
|
|
473
|
+
if (!acceptBrowserHierarchyCommandPrecondition(precondition)) {
|
|
474
|
+
harness.render();
|
|
475
|
+
return;
|
|
476
|
+
}
|
|
383
477
|
selectItem(state, options, input, harness.render);
|
|
384
478
|
},
|
|
385
|
-
onHierarchyItemEnabledChange: (input) => {
|
|
479
|
+
onHierarchyItemEnabledChange: (input, precondition) => {
|
|
480
|
+
if (!acceptBrowserHierarchyCommandPrecondition(precondition)) {
|
|
481
|
+
harness.render();
|
|
482
|
+
return;
|
|
483
|
+
}
|
|
386
484
|
if (patchHierarchyItemEnabled(state, options, input))
|
|
387
485
|
harness.render();
|
|
388
486
|
},
|
|
@@ -394,35 +492,63 @@ function createLocalEditorHarnessImplementation(options, construction) {
|
|
|
394
492
|
if (patchMarkerRelation(state, options, input))
|
|
395
493
|
harness.render();
|
|
396
494
|
},
|
|
397
|
-
onSelectionCommand: (command) => {
|
|
495
|
+
onSelectionCommand: (command, precondition) => {
|
|
496
|
+
if (!acceptBrowserHierarchyCommandPrecondition(precondition)) {
|
|
497
|
+
harness.render();
|
|
498
|
+
return;
|
|
499
|
+
}
|
|
398
500
|
dispatchSelectionCommand(state, options, command, harness.render);
|
|
399
501
|
},
|
|
400
|
-
onSceneGraphRename: (intent) => {
|
|
502
|
+
onSceneGraphRename: (intent, precondition) => {
|
|
503
|
+
if (!acceptBrowserHierarchyCommandPrecondition(precondition)) {
|
|
504
|
+
harness.render();
|
|
505
|
+
return;
|
|
506
|
+
}
|
|
401
507
|
if (renameSceneGraphNode(state, options, intent))
|
|
402
508
|
harness.render();
|
|
403
509
|
},
|
|
404
|
-
onSceneGraphCreateGroup: (intent) => {
|
|
510
|
+
onSceneGraphCreateGroup: (intent, precondition) => {
|
|
511
|
+
if (!acceptBrowserHierarchyCommandPrecondition(precondition)) {
|
|
512
|
+
harness.render();
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
405
515
|
if (createSceneGraphGroup(state, options, intent))
|
|
406
516
|
harness.render();
|
|
407
517
|
},
|
|
408
518
|
onSceneGraphCreatePrimitive: options.documentAdapter.createSceneGraphCreatePrimitivePatch
|
|
409
|
-
? (intent) => {
|
|
519
|
+
? (intent, precondition) => {
|
|
520
|
+
if (!acceptBrowserHierarchyCommandPrecondition(precondition)) {
|
|
521
|
+
harness.render();
|
|
522
|
+
return;
|
|
523
|
+
}
|
|
410
524
|
if (createSceneGraphPrimitive(state, options, intent))
|
|
411
525
|
harness.render();
|
|
412
526
|
}
|
|
413
527
|
: undefined,
|
|
414
528
|
onSceneGraphCreateMarker: options.documentAdapter.createMarkerGraphPatch
|
|
415
|
-
? (intent) => {
|
|
529
|
+
? (intent, precondition) => {
|
|
530
|
+
if (!acceptBrowserHierarchyCommandPrecondition(precondition)) {
|
|
531
|
+
harness.render();
|
|
532
|
+
return;
|
|
533
|
+
}
|
|
416
534
|
if (createSceneGraphMarker(state, options, intent))
|
|
417
535
|
harness.render();
|
|
418
536
|
}
|
|
419
537
|
: undefined,
|
|
420
|
-
onSceneGraphDelete: (intent) => {
|
|
538
|
+
onSceneGraphDelete: (intent, precondition) => {
|
|
539
|
+
if (!acceptBrowserHierarchyCommandPrecondition(precondition)) {
|
|
540
|
+
harness.render();
|
|
541
|
+
return;
|
|
542
|
+
}
|
|
421
543
|
if (deleteSceneGraphNodes(state, options, intent))
|
|
422
544
|
harness.render();
|
|
423
545
|
},
|
|
424
546
|
onSceneGraphDuplicate: options.documentAdapter.createDuplicateSelectionPatch
|
|
425
|
-
? (intent) => {
|
|
547
|
+
? (intent, precondition) => {
|
|
548
|
+
if (!acceptBrowserHierarchyCommandPrecondition(precondition)) {
|
|
549
|
+
harness.render();
|
|
550
|
+
return;
|
|
551
|
+
}
|
|
426
552
|
if (duplicateSceneGraphNodes(state, options, {
|
|
427
553
|
targetIds: intent.targetIds,
|
|
428
554
|
activeId: intent.activeId ?? null,
|
|
@@ -430,23 +556,41 @@ function createLocalEditorHarnessImplementation(options, construction) {
|
|
|
430
556
|
harness.render();
|
|
431
557
|
}
|
|
432
558
|
: undefined,
|
|
433
|
-
onSceneGraphDrop: (intent) => {
|
|
559
|
+
onSceneGraphDrop: (intent, precondition) => {
|
|
560
|
+
if (!acceptBrowserHierarchyCommandPrecondition(precondition)) {
|
|
561
|
+
harness.render();
|
|
562
|
+
return;
|
|
563
|
+
}
|
|
434
564
|
if (dropSceneGraphNode(state, options, intent))
|
|
435
565
|
harness.render();
|
|
436
566
|
},
|
|
437
|
-
onSceneGraphMove: (intent) => {
|
|
567
|
+
onSceneGraphMove: (intent, precondition) => {
|
|
568
|
+
if (!acceptBrowserHierarchyCommandPrecondition(precondition)) {
|
|
569
|
+
harness.render();
|
|
570
|
+
return { ok: false, reason: 'Hierarchy projection is stale.' };
|
|
571
|
+
}
|
|
438
572
|
const result = moveSceneGraphNodes(state, options, intent);
|
|
439
573
|
if (result)
|
|
440
574
|
harness.render();
|
|
441
575
|
return result ?? { ok: false, reason: 'Editor is not ready.' };
|
|
442
576
|
},
|
|
443
|
-
onSceneGraphGroupSelection: (intent) => {
|
|
577
|
+
onSceneGraphGroupSelection: (intent, precondition) => {
|
|
578
|
+
if (!acceptBrowserHierarchyCommandPrecondition(precondition)) {
|
|
579
|
+
harness.render();
|
|
580
|
+
return;
|
|
581
|
+
}
|
|
444
582
|
if (groupSceneGraphSelection(state, options, intent))
|
|
445
583
|
harness.render();
|
|
446
584
|
},
|
|
447
|
-
onContextAction: (action) => {
|
|
585
|
+
onContextAction: (action, precondition) => {
|
|
586
|
+
if (action.region === 'hierarchy' && !acceptBrowserHierarchyCommandPrecondition(precondition)) {
|
|
587
|
+
harness.render();
|
|
588
|
+
return;
|
|
589
|
+
}
|
|
448
590
|
if (action.region === 'hierarchy' && action.action === 'custom') {
|
|
449
|
-
|
|
591
|
+
if (!precondition)
|
|
592
|
+
return;
|
|
593
|
+
const result = runHierarchyCustomContextAction(state, options, action, precondition);
|
|
450
594
|
if (isLocalEditorPromiseLike(result)) {
|
|
451
595
|
void result.then(changed => {
|
|
452
596
|
if (changed)
|
|
@@ -691,6 +835,7 @@ function createLocalEditorHarnessImplementation(options, construction) {
|
|
|
691
835
|
onChange: handleEditorSessionChange,
|
|
692
836
|
onChangeError: handleEditorSessionObserverError,
|
|
693
837
|
});
|
|
838
|
+
advanceHierarchyProjectionRevision(state);
|
|
694
839
|
try {
|
|
695
840
|
attachLifecycleOwnedSessionAuthority();
|
|
696
841
|
}
|
|
@@ -789,6 +934,7 @@ function createLocalEditorHarnessImplementation(options, construction) {
|
|
|
789
934
|
};
|
|
790
935
|
harness = {
|
|
791
936
|
render() {
|
|
937
|
+
reconcileHierarchySelectionBeforeRender(state, options);
|
|
792
938
|
syncViewportCameraState(state);
|
|
793
939
|
syncViewportMeasurementState(state);
|
|
794
940
|
syncViewportSpatialOverlay(state, options);
|
|
@@ -863,6 +1009,70 @@ function createLocalEditorHarnessImplementation(options, construction) {
|
|
|
863
1009
|
};
|
|
864
1010
|
}
|
|
865
1011
|
},
|
|
1012
|
+
async refreshUpdatedAsset(input) {
|
|
1013
|
+
try {
|
|
1014
|
+
if (!state.session)
|
|
1015
|
+
throw new Error('editor_document_unavailable');
|
|
1016
|
+
if (!options.documentAdapter.hydrateDocumentAssets) {
|
|
1017
|
+
throw new Error('asset_update_hydration_unavailable');
|
|
1018
|
+
}
|
|
1019
|
+
if (!options.documentAdapter.resolveUpdatedAssetSnapshot) {
|
|
1020
|
+
throw new Error('asset_update_snapshot_verification_unavailable');
|
|
1021
|
+
}
|
|
1022
|
+
const assets = await options.persistenceAdapter.loadAssets();
|
|
1023
|
+
assertLocalEditorUpdatedAssetSnapshotFreshness(options.documentAdapter.resolveUpdatedAssetSnapshot(assets, { assetId: input.assetId }), input);
|
|
1024
|
+
const result = applyLocalEditorUpdatedAssetRefresh(state.session, {
|
|
1025
|
+
assetId: input.assetId,
|
|
1026
|
+
assets,
|
|
1027
|
+
hydrateDocumentAssets: options.documentAdapter.hydrateDocumentAssets,
|
|
1028
|
+
...(options.documentAdapter.reconcileUpdatedAsset
|
|
1029
|
+
? { reconcileUpdatedAsset: options.documentAdapter.reconcileUpdatedAsset }
|
|
1030
|
+
: {}),
|
|
1031
|
+
...(options.documentAdapter.compareDocuments
|
|
1032
|
+
? { compareDocuments: options.documentAdapter.compareDocuments }
|
|
1033
|
+
: {}),
|
|
1034
|
+
});
|
|
1035
|
+
state.assets = assets;
|
|
1036
|
+
clearArmedPlacement(state);
|
|
1037
|
+
syncLocalEditorUpdatedAssetProjection(state.updatedAssetProjection, result.changed, () => {
|
|
1038
|
+
rebuildProjectionFromDocument(state, options, result.workingDocument, result.selection);
|
|
1039
|
+
});
|
|
1040
|
+
state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());
|
|
1041
|
+
const warnings = result.warnings;
|
|
1042
|
+
const reconciledBindingCount = result.reconciledBindingCount;
|
|
1043
|
+
state.status = warnings.length > 0
|
|
1044
|
+
? `Asset updated with ${warnings.length} warning${warnings.length === 1 ? '' : 's'}`
|
|
1045
|
+
: result.changed ? 'Asset updated' : 'Asset metadata already current';
|
|
1046
|
+
state.statusTone = warnings.length > 0 ? 'warning' : 'success';
|
|
1047
|
+
state.statusToneStatus = state.status;
|
|
1048
|
+
state.statusDetails = warnings.map(warning => warning.code).join(', ');
|
|
1049
|
+
harness.render();
|
|
1050
|
+
return {
|
|
1051
|
+
ok: true,
|
|
1052
|
+
assetId: input.assetId,
|
|
1053
|
+
assetCount: assets.length,
|
|
1054
|
+
reconciledBindingCount,
|
|
1055
|
+
warnings,
|
|
1056
|
+
status: state.status,
|
|
1057
|
+
};
|
|
1058
|
+
}
|
|
1059
|
+
catch (error) {
|
|
1060
|
+
state.status = 'Asset update refresh failed';
|
|
1061
|
+
state.statusTone = 'error';
|
|
1062
|
+
state.statusToneStatus = state.status;
|
|
1063
|
+
state.statusDetails = error instanceof Error ? error.message : String(error);
|
|
1064
|
+
harness.render();
|
|
1065
|
+
return {
|
|
1066
|
+
ok: false,
|
|
1067
|
+
assetId: input.assetId,
|
|
1068
|
+
assetCount: state.assets.length,
|
|
1069
|
+
reconciledBindingCount: 0,
|
|
1070
|
+
warnings: [],
|
|
1071
|
+
status: state.status,
|
|
1072
|
+
error: state.statusDetails,
|
|
1073
|
+
};
|
|
1074
|
+
}
|
|
1075
|
+
},
|
|
866
1076
|
createAssetFromAssetId(assetId, createOptions) {
|
|
867
1077
|
const result = addAssetToDocument(state, options, assetId, createOptions);
|
|
868
1078
|
harness.render();
|
|
@@ -935,6 +1145,7 @@ function createLocalEditorHarnessImplementation(options, construction) {
|
|
|
935
1145
|
onChange: handleEditorSessionChange,
|
|
936
1146
|
onChangeError: handleEditorSessionObserverError,
|
|
937
1147
|
});
|
|
1148
|
+
advanceHierarchyProjectionRevision(state);
|
|
938
1149
|
try {
|
|
939
1150
|
attachLifecycleOwnedSessionAuthority();
|
|
940
1151
|
}
|
|
@@ -1028,10 +1239,10 @@ function createLocalEditorHarnessImplementation(options, construction) {
|
|
|
1028
1239
|
}),
|
|
1029
1240
|
selectPrefabStageItem: itemId => selectPrefabStageItemWithPreviewSync(state, options, itemId),
|
|
1030
1241
|
runPrefabStageAssetAction: input => patchBrowserAssetAction(state, options, input),
|
|
1031
|
-
|
|
1242
|
+
getHierarchyProjection: () => createUiState(state, options).hierarchyProjection ?? null,
|
|
1243
|
+
getStatusDiagnostics: () => createUiState(state, options).statusDiagnostics ?? [],
|
|
1032
1244
|
dispatchSelectionCommand: (command, shouldRenderUi = false) => dispatchSelectionCommand(state, options, command, shouldRenderUi ? () => harness.render() : undefined),
|
|
1033
1245
|
focusProjectionNode: objectId => frameViewportProjectionNode(state, objectId),
|
|
1034
|
-
focusSelectedProjection: () => frameSelectedViewportProjection(state, options),
|
|
1035
1246
|
syncViewportCameraState: () => syncViewportCameraState(state),
|
|
1036
1247
|
requestSceneFrame: reason => requestEditorSceneFrame(state, reason),
|
|
1037
1248
|
cloneTransformSnapshot: transform => cloneEditorTransformSnapshot(transform),
|
|
@@ -2109,7 +2320,9 @@ function clearPrefabStageForEditorTeardown(state) {
|
|
|
2109
2320
|
const stage = state.prefabStage;
|
|
2110
2321
|
if (!stage)
|
|
2111
2322
|
return;
|
|
2323
|
+
switchPreviewVisibilityScope(state, 'scene');
|
|
2112
2324
|
state.prefabStage = null;
|
|
2325
|
+
advanceHierarchyProjectionRevision(state);
|
|
2113
2326
|
setGridVisibleForEditorContext(state, stage.restoreGridVisible, 'prefab-stage-editor-teardown-grid');
|
|
2114
2327
|
state.sceneCameraPreviewEnabled = stage.restoreSceneCameraPreviewEnabled;
|
|
2115
2328
|
if (!stage.restoreSceneCameraPreviewEnabled)
|
|
@@ -2404,7 +2617,7 @@ function createBrowserContextForCustomAction(state, options, action) {
|
|
|
2404
2617
|
activeId: action.activeId,
|
|
2405
2618
|
};
|
|
2406
2619
|
}
|
|
2407
|
-
function runHierarchyCustomContextAction(state, options, action) {
|
|
2620
|
+
function runHierarchyCustomContextAction(state, options, action, precondition) {
|
|
2408
2621
|
const browserContext = createBrowserContextForCustomAction(state, options, action);
|
|
2409
2622
|
const context = browserContext
|
|
2410
2623
|
? createHarnessHierarchyContextActionContext(state, options, browserContext, action.payload)
|
|
@@ -2415,14 +2628,21 @@ function runHierarchyCustomContextAction(state, options, action) {
|
|
|
2415
2628
|
.find(candidate => candidate.id === action.id);
|
|
2416
2629
|
if (!registration)
|
|
2417
2630
|
return false;
|
|
2631
|
+
const applyIfCurrent = (value) => {
|
|
2632
|
+
const hadCommandDiagnostics = state.hierarchyCommandDiagnostics.length > 0;
|
|
2633
|
+
if (!acceptHierarchyCommandPrecondition(state, precondition))
|
|
2634
|
+
return true;
|
|
2635
|
+
return applyHierarchyContextActionResult(state, options, value, registration.label)
|
|
2636
|
+
|| hadCommandDiagnostics;
|
|
2637
|
+
};
|
|
2418
2638
|
try {
|
|
2419
2639
|
const result = registration.run(context);
|
|
2420
2640
|
if (isLocalEditorPromiseLike(result)) {
|
|
2421
2641
|
return Promise.resolve(result)
|
|
2422
|
-
.then(
|
|
2642
|
+
.then(applyIfCurrent)
|
|
2423
2643
|
.catch(error => reportHierarchyContextActionError(state, registration.label, error));
|
|
2424
2644
|
}
|
|
2425
|
-
return
|
|
2645
|
+
return applyIfCurrent(result);
|
|
2426
2646
|
}
|
|
2427
2647
|
catch (error) {
|
|
2428
2648
|
return reportHierarchyContextActionError(state, registration.label, error);
|
|
@@ -2584,6 +2804,64 @@ function dispatchSelectionCommand(state, options, command, renderUi) {
|
|
|
2584
2804
|
}
|
|
2585
2805
|
return true;
|
|
2586
2806
|
}
|
|
2807
|
+
function acceptHierarchyCommandPrecondition(state, precondition) {
|
|
2808
|
+
const documentRevision = state.session?.getState({ cloneDocuments: false }).documentRevision ?? 0;
|
|
2809
|
+
const scopeId = state.prefabStage
|
|
2810
|
+
? `prefab-stage:${state.prefabStage.descriptor.assetId}`
|
|
2811
|
+
: 'scene';
|
|
2812
|
+
const expected = {
|
|
2813
|
+
scopeId,
|
|
2814
|
+
documentRevision,
|
|
2815
|
+
projectionRevision: state.hierarchyProjectionRevision,
|
|
2816
|
+
};
|
|
2817
|
+
if (!precondition) {
|
|
2818
|
+
state.hierarchyCommandDiagnostics = [{
|
|
2819
|
+
code: 'hierarchy-command-precondition-missing',
|
|
2820
|
+
severity: 'error',
|
|
2821
|
+
source: 'hierarchy-command',
|
|
2822
|
+
message: `Hierarchy command rejected because no projection revision was provided (expected ${formatHierarchyRevision(expected)}).`,
|
|
2823
|
+
...expected,
|
|
2824
|
+
details: {
|
|
2825
|
+
expectedScopeId: expected.scopeId,
|
|
2826
|
+
expectedDocumentRevision: expected.documentRevision,
|
|
2827
|
+
expectedProjectionRevision: expected.projectionRevision,
|
|
2828
|
+
},
|
|
2829
|
+
}];
|
|
2830
|
+
return false;
|
|
2831
|
+
}
|
|
2832
|
+
const accepted = isLocalEditorHierarchyCommandPreconditionCurrent(precondition, expected);
|
|
2833
|
+
if (accepted) {
|
|
2834
|
+
state.hierarchyCommandDiagnostics = [];
|
|
2835
|
+
return true;
|
|
2836
|
+
}
|
|
2837
|
+
const message = `Hierarchy command rejected because its projection is stale (expected ${formatHierarchyRevision(expected)}, received ${formatHierarchyRevision(precondition)}).`;
|
|
2838
|
+
state.hierarchyCommandDiagnostics = [{
|
|
2839
|
+
code: 'hierarchy-command-stale',
|
|
2840
|
+
severity: 'error',
|
|
2841
|
+
source: 'hierarchy-command',
|
|
2842
|
+
message,
|
|
2843
|
+
scopeId,
|
|
2844
|
+
documentRevision,
|
|
2845
|
+
projectionRevision: state.hierarchyProjectionRevision,
|
|
2846
|
+
details: {
|
|
2847
|
+
expectedScopeId: expected.scopeId,
|
|
2848
|
+
expectedDocumentRevision: expected.documentRevision,
|
|
2849
|
+
expectedProjectionRevision: expected.projectionRevision,
|
|
2850
|
+
receivedScopeId: precondition.scopeId,
|
|
2851
|
+
receivedDocumentRevision: precondition.documentRevision,
|
|
2852
|
+
receivedProjectionRevision: precondition.projectionRevision,
|
|
2853
|
+
},
|
|
2854
|
+
}];
|
|
2855
|
+
return false;
|
|
2856
|
+
}
|
|
2857
|
+
function formatHierarchyRevision(precondition) {
|
|
2858
|
+
return `${precondition.scopeId}@document:${precondition.documentRevision}/projection:${precondition.projectionRevision}`;
|
|
2859
|
+
}
|
|
2860
|
+
function advanceHierarchyProjectionRevision(state) {
|
|
2861
|
+
state.hierarchyProjectionRevision += 1;
|
|
2862
|
+
state.hierarchyCommandDiagnostics = [];
|
|
2863
|
+
state.hierarchyReconcileDiagnostics = [];
|
|
2864
|
+
}
|
|
2587
2865
|
function consumeMarkerRelationPickSelectionCommand(state, options, command, renderUi) {
|
|
2588
2866
|
const pick = state.markerRelationPick;
|
|
2589
2867
|
if (!pick?.active)
|
|
@@ -3927,6 +4205,7 @@ async function enterPrefabStage(state, options, input) {
|
|
|
3927
4205
|
return true;
|
|
3928
4206
|
}
|
|
3929
4207
|
}
|
|
4208
|
+
switchPreviewVisibilityScope(state, `prefab-stage:${descriptor.assetId}`);
|
|
3930
4209
|
state.prefabStage = {
|
|
3931
4210
|
descriptor,
|
|
3932
4211
|
asset,
|
|
@@ -3936,6 +4215,7 @@ async function enterPrefabStage(state, options, input) {
|
|
|
3936
4215
|
restoreGridVisible: previousPrefabStage?.restoreGridVisible ?? state.gridVisible,
|
|
3937
4216
|
restoreSceneCameraPreviewEnabled: previousPrefabStage?.restoreSceneCameraPreviewEnabled ?? state.sceneCameraPreviewEnabled,
|
|
3938
4217
|
};
|
|
4218
|
+
advanceHierarchyProjectionRevision(state);
|
|
3939
4219
|
setGridVisibleForEditorContext(state, false, 'prefab-stage-enter-grid');
|
|
3940
4220
|
state.sceneCameraPreviewEnabled = false;
|
|
3941
4221
|
state.sceneCameraPreview?.setActive(false);
|
|
@@ -3958,7 +4238,9 @@ async function exitPrefabStage(state, options) {
|
|
|
3958
4238
|
const restoreGridVisible = prefabStage.restoreGridVisible;
|
|
3959
4239
|
const restoreSceneCameraPreviewEnabled = prefabStage.restoreSceneCameraPreviewEnabled;
|
|
3960
4240
|
await closePrefabStageLifecycleScopes(state, prefabStage);
|
|
4241
|
+
switchPreviewVisibilityScope(state, 'scene');
|
|
3961
4242
|
state.prefabStage = null;
|
|
4243
|
+
advanceHierarchyProjectionRevision(state);
|
|
3962
4244
|
setGridVisibleForEditorContext(state, restoreGridVisible, 'prefab-stage-exit-grid');
|
|
3963
4245
|
if (sessionState?.workingDocument) {
|
|
3964
4246
|
rebuildProjectionFromDocument(state, options, sessionState.workingDocument, sessionState.selection);
|
|
@@ -3983,6 +4265,7 @@ async function closePrefabStageLifecycleScopes(state, stage) {
|
|
|
3983
4265
|
function selectPrefabStageItem(state, itemId) {
|
|
3984
4266
|
if (!state.prefabStage || state.prefabStage.selectedItemId === itemId)
|
|
3985
4267
|
return false;
|
|
4268
|
+
advanceHierarchyProjectionRevision(state);
|
|
3986
4269
|
state.prefabStage = {
|
|
3987
4270
|
...state.prefabStage,
|
|
3988
4271
|
selectedItemId: itemId,
|
|
@@ -4048,6 +4331,7 @@ function dispatchPrefabStageProjectionSelectionCommand(state, options, command)
|
|
|
4048
4331
|
if (command.type === 'selection.clear') {
|
|
4049
4332
|
if (state.prefabStage.selectedItemId === null)
|
|
4050
4333
|
return false;
|
|
4334
|
+
advanceHierarchyProjectionRevision(state);
|
|
4051
4335
|
state.prefabStage = { ...state.prefabStage, selectedItemId: null };
|
|
4052
4336
|
state.editorStateRevision += 1;
|
|
4053
4337
|
syncPrefabStageSelectionToProjection(state, options, 'prefab-stage-selection-clear', state.editorStateRevision);
|
|
@@ -4064,6 +4348,7 @@ function dispatchPrefabStageProjectionSelectionCommand(state, options, command)
|
|
|
4064
4348
|
const currentlySelected = currentProjectionSelection.selectedIds.includes(candidateId);
|
|
4065
4349
|
if ((command.type === 'selection.toggle' && currentlySelected)
|
|
4066
4350
|
|| (command.type === 'selection.remove' && currentlySelected)) {
|
|
4351
|
+
advanceHierarchyProjectionRevision(state);
|
|
4067
4352
|
state.prefabStage = { ...state.prefabStage, selectedItemId: null };
|
|
4068
4353
|
state.editorStateRevision += 1;
|
|
4069
4354
|
syncPrefabStageSelectionToProjection(state, options, 'prefab-stage-selection-remove', state.editorStateRevision);
|
|
@@ -4074,6 +4359,7 @@ function dispatchPrefabStageProjectionSelectionCommand(state, options, command)
|
|
|
4074
4359
|
const nextItemId = target.itemId ?? `prefab-node:${target.targetId}`;
|
|
4075
4360
|
if (state.prefabStage.selectedItemId === nextItemId)
|
|
4076
4361
|
return false;
|
|
4362
|
+
advanceHierarchyProjectionRevision(state);
|
|
4077
4363
|
state.prefabStage = { ...state.prefabStage, selectedItemId: nextItemId };
|
|
4078
4364
|
state.editorStateRevision += 1;
|
|
4079
4365
|
syncPrefabStageSelectionToProjection(state, options, 'prefab-stage-selection-command', state.editorStateRevision);
|
|
@@ -5721,6 +6007,7 @@ function cancelEditorIntent(state, options) {
|
|
|
5721
6007
|
}
|
|
5722
6008
|
if (state.prefabStage?.selectedItemId) {
|
|
5723
6009
|
cancelActiveOperation(state);
|
|
6010
|
+
advanceHierarchyProjectionRevision(state);
|
|
5724
6011
|
state.prefabStage = { ...state.prefabStage, selectedItemId: null };
|
|
5725
6012
|
state.editorStateRevision += 1;
|
|
5726
6013
|
syncPrefabStageSelectionToProjection(state, options, 'prefab-stage-selection-cancel', state.editorStateRevision);
|
|
@@ -5829,24 +6116,6 @@ function createProjectionBoundsFocusFrame(bounds) {
|
|
|
5829
6116
|
radius,
|
|
5830
6117
|
};
|
|
5831
6118
|
}
|
|
5832
|
-
function frameSelectedViewportProjection(state, options) {
|
|
5833
|
-
if (state.mode !== 'editor')
|
|
5834
|
-
return false;
|
|
5835
|
-
if (state.prefabStage) {
|
|
5836
|
-
const activeId = getCurrentPrefabStageProjectionSelection(state, options).activeId;
|
|
5837
|
-
if (!activeId) {
|
|
5838
|
-
state.status = 'Focus failed: no Prefab Stage selection';
|
|
5839
|
-
return false;
|
|
5840
|
-
}
|
|
5841
|
-
return focusPrefabStageProjectionNode(state, options, activeId, 'prefab-stage-frame-selection');
|
|
5842
|
-
}
|
|
5843
|
-
const activeId = state.session?.getState({ cloneDocuments: false }).selection.activeId ?? null;
|
|
5844
|
-
if (!activeId) {
|
|
5845
|
-
state.status = 'Focus failed: no selection';
|
|
5846
|
-
return false;
|
|
5847
|
-
}
|
|
5848
|
-
return frameViewportProjectionNode(state, activeId);
|
|
5849
|
-
}
|
|
5850
6119
|
function focusPrefabStageProjectionNode(state, options, projectionNodeId, reason) {
|
|
5851
6120
|
const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;
|
|
5852
6121
|
if (!state.prefabStage || !document)
|
|
@@ -6283,6 +6552,18 @@ function applyPreviewVisibilityStateToProjection(state) {
|
|
|
6283
6552
|
projection.setPreviewVisibilityOverrides(overrides);
|
|
6284
6553
|
}
|
|
6285
6554
|
}
|
|
6555
|
+
function switchPreviewVisibilityScope(state, nextScopeId) {
|
|
6556
|
+
if (state.previewVisibilityScopeId === nextScopeId)
|
|
6557
|
+
return;
|
|
6558
|
+
state.previewVisibilityByScope.set(state.previewVisibilityScopeId, state.previewVisibility);
|
|
6559
|
+
const next = state.previewVisibilityByScope.get(nextScopeId) ?? {
|
|
6560
|
+
overrides: {},
|
|
6561
|
+
isolatedObjectIds: [],
|
|
6562
|
+
};
|
|
6563
|
+
state.previewVisibilityByScope.set(nextScopeId, next);
|
|
6564
|
+
state.previewVisibilityScopeId = nextScopeId;
|
|
6565
|
+
state.previewVisibility = next;
|
|
6566
|
+
}
|
|
6286
6567
|
function setSceneCameraPreviewEnabled(state, options, enabled) {
|
|
6287
6568
|
if (!enabled) {
|
|
6288
6569
|
state.sceneCameraPreviewEnabled = false;
|
|
@@ -6505,6 +6786,7 @@ function createUiState(state, options) {
|
|
|
6505
6786
|
const hierarchy = document
|
|
6506
6787
|
? createMarkerGraphHierarchyItems(documentHierarchy, markerGraph, createMarkerGraphHierarchyVisibility(state))
|
|
6507
6788
|
: [];
|
|
6789
|
+
const prefabStage = createBrowserPrefabStageState(state, options, document);
|
|
6508
6790
|
state.performanceObjectCount = document ? countLocalEditorAuthoredObjects(documentHierarchy) : null;
|
|
6509
6791
|
state.performanceStats = createLocalEditorPerformanceStats({
|
|
6510
6792
|
frameStats: state.sceneFrameStats,
|
|
@@ -6515,7 +6797,7 @@ function createUiState(state, options) {
|
|
|
6515
6797
|
...state.assets.map(asset => toBrowserAssetItem(options, asset)),
|
|
6516
6798
|
...documentAssetItems,
|
|
6517
6799
|
]);
|
|
6518
|
-
|
|
6800
|
+
const uiState = {
|
|
6519
6801
|
mode: state.mode,
|
|
6520
6802
|
busy: state.busy,
|
|
6521
6803
|
agentBridge: state.agentBridgeStatus,
|
|
@@ -6530,6 +6812,8 @@ function createUiState(state, options) {
|
|
|
6530
6812
|
hierarchy,
|
|
6531
6813
|
selectedIds,
|
|
6532
6814
|
activeId,
|
|
6815
|
+
documentRevision: sessionState?.documentRevision ?? 0,
|
|
6816
|
+
hierarchyProjectionRevision: state.hierarchyProjectionRevision,
|
|
6533
6817
|
selectionSummary: {
|
|
6534
6818
|
count: selectedIds.length,
|
|
6535
6819
|
activeId,
|
|
@@ -6576,7 +6860,7 @@ function createUiState(state, options) {
|
|
|
6576
6860
|
enabled: state.sceneCameraPreviewEnabled,
|
|
6577
6861
|
available: hasSceneCameraPreviewRig(state, options),
|
|
6578
6862
|
},
|
|
6579
|
-
prefabStage
|
|
6863
|
+
prefabStage,
|
|
6580
6864
|
grid: {
|
|
6581
6865
|
visible: state.gridVisible,
|
|
6582
6866
|
available: !!state.grid,
|
|
@@ -6591,6 +6875,74 @@ function createUiState(state, options) {
|
|
|
6591
6875
|
}
|
|
6592
6876
|
: null,
|
|
6593
6877
|
};
|
|
6878
|
+
const hierarchyProjection = createLocalEditorHierarchyProjection(createLocalEditorActiveHierarchyScope(uiState));
|
|
6879
|
+
uiState.hierarchyProjection = hierarchyProjection;
|
|
6880
|
+
uiState.statusDiagnostics = [
|
|
6881
|
+
...hierarchyProjection.diagnostics,
|
|
6882
|
+
...state.hierarchyReconcileDiagnostics,
|
|
6883
|
+
...state.hierarchyCommandDiagnostics,
|
|
6884
|
+
];
|
|
6885
|
+
uiState.statusDiagnostics = resolveLocalEditorStatusDiagnostics(uiState);
|
|
6886
|
+
if (!state.prefabStage) {
|
|
6887
|
+
uiState.selectedIds = hierarchyProjection.selectedIds;
|
|
6888
|
+
uiState.activeId = hierarchyProjection.activeId;
|
|
6889
|
+
uiState.selectionSummary = {
|
|
6890
|
+
count: hierarchyProjection.selectedIds.length,
|
|
6891
|
+
activeId: hierarchyProjection.activeId,
|
|
6892
|
+
};
|
|
6893
|
+
if (activeId !== hierarchyProjection.activeId) {
|
|
6894
|
+
uiState.inspectorObject = null;
|
|
6895
|
+
uiState.inspectorMultiObject = null;
|
|
6896
|
+
}
|
|
6897
|
+
}
|
|
6898
|
+
return uiState;
|
|
6899
|
+
}
|
|
6900
|
+
function reconcileHierarchySelectionBeforeRender(state, options) {
|
|
6901
|
+
const sessionState = state.session?.getState({ cloneDocuments: false });
|
|
6902
|
+
const document = sessionState?.workingDocument ?? null;
|
|
6903
|
+
if (!sessionState || !document)
|
|
6904
|
+
return;
|
|
6905
|
+
if (state.prefabStage) {
|
|
6906
|
+
const stage = createBrowserPrefabStageState(state, options, document);
|
|
6907
|
+
if (!stage)
|
|
6908
|
+
return;
|
|
6909
|
+
const projection = createLocalEditorHierarchyProjection(createLocalEditorPrefabStageHierarchyScope(stage, sessionState.documentRevision, state.hierarchyProjectionRevision));
|
|
6910
|
+
if (stage.selectedItemId === projection.activeId)
|
|
6911
|
+
return;
|
|
6912
|
+
const reconcileDiagnostics = projection.diagnostics.filter(diagnostic => diagnostic.code === 'hierarchy-selection-stale');
|
|
6913
|
+
advanceHierarchyProjectionRevision(state);
|
|
6914
|
+
state.hierarchyReconcileDiagnostics = reconcileDiagnostics;
|
|
6915
|
+
state.prefabStage.selectedItemId = projection.activeId;
|
|
6916
|
+
state.editorStateRevision += 1;
|
|
6917
|
+
syncPrefabStageSelectionToProjection(state, options, 'hierarchy-projection-selection-sanitize', state.editorStateRevision);
|
|
6918
|
+
return;
|
|
6919
|
+
}
|
|
6920
|
+
const documentHierarchy = options.documentAdapter.getHierarchyItems(document);
|
|
6921
|
+
const markerGraph = options.documentAdapter.getMarkerGraph?.(document) ?? null;
|
|
6922
|
+
const hierarchy = markerGraph
|
|
6923
|
+
? createMarkerGraphHierarchyItems(documentHierarchy, markerGraph, createMarkerGraphHierarchyVisibility(state))
|
|
6924
|
+
: documentHierarchy;
|
|
6925
|
+
const projection = createLocalEditorHierarchyProjection(createLocalEditorSceneHierarchyScope({
|
|
6926
|
+
hierarchy,
|
|
6927
|
+
selectedIds: sessionState.selection.selectedIds,
|
|
6928
|
+
activeId: sessionState.selection.activeId,
|
|
6929
|
+
documentRevision: sessionState.documentRevision,
|
|
6930
|
+
hierarchyProjectionRevision: state.hierarchyProjectionRevision,
|
|
6931
|
+
}));
|
|
6932
|
+
if (projection.activeId === sessionState.selection.activeId
|
|
6933
|
+
&& projection.selectedIds.length === sessionState.selection.selectedIds.length
|
|
6934
|
+
&& projection.selectedIds.every((id, index) => id === sessionState.selection.selectedIds[index]))
|
|
6935
|
+
return;
|
|
6936
|
+
const reconcileDiagnostics = projection.diagnostics.filter(diagnostic => diagnostic.code === 'hierarchy-selection-stale');
|
|
6937
|
+
state.session?.dispatch({
|
|
6938
|
+
type: 'selection.replace',
|
|
6939
|
+
selectedIds: projection.selectedIds,
|
|
6940
|
+
activeId: projection.activeId,
|
|
6941
|
+
label: 'Sanitize Hierarchy Projection Selection',
|
|
6942
|
+
});
|
|
6943
|
+
state.hierarchyReconcileDiagnostics = reconcileDiagnostics;
|
|
6944
|
+
state.editorStateRevision += 1;
|
|
6945
|
+
syncSelectionToProjection(state, options, { selectedIds: projection.selectedIds, activeId: projection.activeId }, 'hierarchy-projection-selection-sanitize', state.editorStateRevision);
|
|
6594
6946
|
}
|
|
6595
6947
|
function createBrowserPrefabStageState(state, options, document) {
|
|
6596
6948
|
const stage = state.prefabStage;
|