@fps-games/editor 0.2.0-beta.1 → 0.2.0-beta.3
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.js.map +1 -1
- package/dist/agent-bridge/capabilities/host-lifecycle.js.map +1 -1
- package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
- package/dist/agent-bridge/capabilities/selection.js.map +1 -1
- package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
- 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.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.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.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 +129 -0
- 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 +50 -3
- 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.d.ts.map +1 -1
- package/dist/playable-standard-project.js +8 -3
- 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.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.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-scope.js.map +1 -1
- 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.js.map +1 -1
- 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-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.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.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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js +17 -2
- 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 +6 -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 +9 -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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js +10 -0
- 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 +8 -0
- 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 +24 -2
- 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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js +6 -2
- 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 +83 -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.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js +8 -0
- 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.d.ts +22 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js +108 -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.d.ts +3 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js +2 -2
- 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.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/types.d.ts.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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js +2 -0
- 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.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts.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.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.js +1 -0
- 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 +2 -2
- 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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js +4 -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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/loading-overlay.js +54 -2
- 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.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts.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.d.ts +3 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js +10 -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.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +82 -6
- 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.d.ts +11 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts.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.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js +46 -3
- 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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +4 -0
- 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.d.ts +3 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.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.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shared/json.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shared/json.js +25 -0
- 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 +37 -20
- 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 +10 -17
- 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 +5 -1
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playable-local-editor-host.js","sourceRoot":"","sources":["../src/playable-local-editor-host.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"playable-local-editor-host.js","sourceRoot":"","sources":["../src/playable-local-editor-host.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createEditorAgentInteractionController,\n createProjectAuthoringHost,\n type AuthoringSourceDriver,\n type EditorProjectionImpact,\n type EditorTransformDocumentCapabilities,\n type EditorTransformSnapshot,\n type ProjectAuthoringHost,\n} from '@fps-games/editor-core';\nimport {\n getFpsEditorPluginLifecycleScopeHost,\n resolveFpsEditorLifecycleParticipants,\n type FpsEditorPluginHost,\n} from '@fps-games/editor-core/plugin-host';\nimport type {\n FpsEditorLifecycleService,\n} from '@fps-games/editor-core/lifecycle';\nimport {\n createForgePlayAgentTransport,\n} from '@fps-games/editor-forge-play';\nimport type { BabylonEditorProjectionSelectionEdgesPrewarm } from '@fps-games/editor-babylon';\nimport type { LocalEditorBrowserUiHierarchyItem } from '@fps-games/editor-browser';\nimport type {\n ArtistMaterialTextureRef,\n EditorAgentContextSemantics,\n SpatialMarkerGraph,\n SpatialMarkerTypeDefinition,\n SpatialRelationTypeDefinition,\n} from '@fps-games/editor-protocol';\nimport {\n createPlayableLocalEditorLoadingOverlay,\n formatPlayableEditorDoctorReport,\n inspectPlayableEditorHostCompatibilityReport,\n type FpsGameEditorProjectDefinition,\n type PlayableForgePlayModeBridge,\n type PlayableForgePlaySaveState,\n type PlayableForgePlayWindowLike,\n type PlayableLocalEditorDiscardConfirmationInput,\n type PlayableLocalEditorHostBridgeContext,\n type PlayableLocalEditorHostLoadingContent,\n type PlayableLocalEditorInteractionPolicy,\n type PlayableLocalEditorSaveFailureInput,\n type PlayableLocalEditorSaveFailureState,\n type PlayableLocalEditorUnsavedChangesState,\n} from '@fps-games/editor-playable-sdk';\nimport {\n createPlayableLocalEditorHostController,\n PLAYABLE_LOCAL_EDITOR_APPLICATION_SCOPE_ID,\n type PlayableLocalEditorLifecycleController,\n} from '@fps-games/editor-playable-sdk/internal/local-harness';\nimport {\n createLocalEditorHarness,\n type LocalEditorHarness,\n type LocalEditorHarnessDocumentAdapter,\n type LocalEditorHarnessHistoryOperation,\n type LocalEditorHarnessHistoryOperationOptions,\n type LocalEditorHarnessHistoryOperationResult,\n type LocalEditorHarnessHistoryProjectionResult,\n type LocalEditorHarnessHistoryStateResult,\n type LocalEditorHarnessHierarchyContextActionRegistration,\n type LocalEditorMarkerGraphCommand,\n type LocalEditorHarnessOptions,\n type LocalEditorHarnessOperationOrigin,\n type LocalEditorHarnessPersistenceAdapter,\n type LocalEditorHarnessProjectionWaitPolicy,\n type LocalEditorHarnessWorldAdapter,\n} from './local-editor-harness.js';\nimport {\n getLocalEditorHarnessLifecycleOperations,\n type LocalEditorHarnessLifecycleOperations,\n} from './internal/local-editor-lifecycle-operations.js';\nimport { createLocalEditorAgentHierarchyContextActions } from './local-editor-agent-actions.js';\n\nexport const PLAYABLE_LOCAL_EDITOR_HOST_MANIFEST_VERSION = 2 as const;\n\n/**\n * Frozen required contract for playable local editor host manifests.\n * \n * This contract defines the minimum set of methods that a host manifest must provide.\n * The contract is deeply frozen to prevent accidental modifications that would break\n * backward compatibility.\n * \n * IMPORTANT: Adding new required methods is a BREAKING CHANGE and requires:\n * - Incrementing PLAYABLE_LOCAL_EDITOR_HOST_MANIFEST_VERSION\n * - Providing migration documentation\n * - Updating all reference consumers\n */\nexport const PLAYABLE_LOCAL_EDITOR_HOST_REQUIRED_CONTRACT = Object.freeze({\n document: Object.freeze([\n 'reduceDocument',\n 'getHierarchyItems',\n 'getProjectionNodes',\n 'getProjectionNode',\n 'createPatchFromAsset',\n 'createSerializedPropertyPatch',\n ] as const),\n persistence: Object.freeze([\n 'loadAssets',\n 'runGame',\n ] as const),\n world: Object.freeze({\n direct: Object.freeze([\n 'getCanvas',\n 'disposeWorld',\n 'loadPreviewEngine',\n 'createPreviewEngine',\n 'importPreviewAsset',\n ] as const),\n }),\n});\n\ntype PlayableLocalEditorMaybePromise<T> = T | Promise<T>;\n\nexport type PlayableLocalEditorHostCompatibilitySeverity = 'error' | 'warning' | 'info';\n\nexport interface PlayableLocalEditorHostManifestMetadata {\n manifestVersion: typeof PLAYABLE_LOCAL_EDITOR_HOST_MANIFEST_VERSION;\n projectId?: string;\n projectName?: string;\n compatibilityTag?: string;\n}\n\nexport interface PlayableLocalEditorHostCompatibilityDiagnostic {\n severity: PlayableLocalEditorHostCompatibilitySeverity;\n code: string;\n message: string;\n path?: string;\n}\n\nexport interface PlayableLocalEditorHostCompatibilityReport {\n supportedManifestVersion: typeof PLAYABLE_LOCAL_EDITOR_HOST_MANIFEST_VERSION;\n manifestVersion?: unknown;\n projectId?: string;\n projectName?: string;\n compatibilityTag?: string;\n ok: boolean;\n diagnostics: PlayableLocalEditorHostCompatibilityDiagnostic[];\n}\n\nexport interface PlayableLocalEditorAuthoringSourceDriverLike<TDocument = unknown, TPayload = unknown> {\n sourceType: string;\n load(input: unknown): PlayableLocalEditorMaybePromise<unknown>;\n reduce?(input: {\n source: unknown;\n document: TDocument;\n command?: unknown;\n intent?: unknown;\n }): PlayableLocalEditorMaybePromise<TDocument>;\n validate?(input: unknown): PlayableLocalEditorMaybePromise<unknown>;\n save(input: {\n source: unknown;\n document: TDocument;\n command?: unknown;\n intent?: unknown;\n }): PlayableLocalEditorMaybePromise<unknown>;\n compile?(input: unknown): PlayableLocalEditorMaybePromise<unknown>;\n compileRuntimePatch?(input: unknown): PlayableLocalEditorMaybePromise<unknown>;\n}\n\nexport interface PlayableLocalEditorAuthoringHostLike {\n getSourceRegistry(): unknown;\n registerSource(source: unknown): void;\n registerSourceDriver(driver: PlayableLocalEditorAuthoringSourceDriverLike): void;\n loadSource<TDocument = unknown>(ref: unknown): Promise<unknown>;\n commitSource<TDocument = unknown>(input: {\n source: unknown;\n document: TDocument;\n beforeDocument?: TDocument;\n expectedRevision?: number;\n command?: unknown;\n }): Promise<unknown>;\n dispatch<TDocument = unknown, TPayload = unknown>(command: unknown): Promise<unknown>;\n attachRuntimeAdapter?(adapter: unknown): void;\n detachRuntimeAdapter?(): void;\n}\n\nexport interface PlayableLocalEditorPatchResult<TPatch> {\n patch: TPatch;\n label?: string;\n changedId?: string;\n createdId?: string | null;\n changedIds?: string[];\n reprojectIds?: string[];\n projectionImpact?: PlayableLocalEditorProjectionImpact;\n selectId?: string | null;\n}\n\nexport type PlayableLocalEditorProjectionImpact = EditorProjectionImpact;\n\nexport interface PlayableLocalEditorPropertyPatchInput<TDocument = unknown> {\n document: TDocument;\n targetId: string;\n targetIds?: string[];\n path: string;\n value: unknown;\n control?: string;\n valueType?: string;\n commitMode?: string;\n persistence?: string;\n source?: unknown;\n}\n\nexport interface PlayableLocalEditorMultiPropertyPatchInput<TDocument = unknown>\n extends Omit<PlayableLocalEditorPropertyPatchInput<TDocument>, 'targetId'> {\n targetIds: string[];\n activeId: string | null;\n}\n\nexport interface PlayableLocalEditorMultiPropertyCapabilityInput<TDocument = unknown> {\n document: TDocument;\n targetIds: string[];\n activeId: string | null;\n path: string;\n control?: string;\n valueType?: string;\n commitMode?: string;\n persistence?: string;\n}\n\nexport interface PlayableLocalEditorTransformPatchInput<TDocument = unknown> {\n document: TDocument;\n targetId: string;\n targetIds?: string[];\n transform?: unknown;\n worldTransform?: unknown;\n operation?: string;\n duplicate?: boolean;\n [key: string]: unknown;\n}\n\nexport interface PlayableLocalEditorTransformInspectorPreviewInput<TDocument = unknown> {\n document: TDocument;\n targetId: string;\n targetIds: string[];\n activeId: string | null;\n transform: EditorTransformSnapshot;\n}\n\nexport interface PlayableLocalEditorTransformBatchPatchInput<TDocument = unknown> {\n document: TDocument;\n targetIds: string[];\n activeId?: string | null;\n operation?: string;\n [key: string]: unknown;\n}\n\nexport interface PlayableLocalEditorRenderingPropertyChangeResult<TPatch = unknown> {\n changed?: boolean;\n dirty?: boolean;\n status?: string;\n statusTone?: string;\n statusDetails?: string;\n details?: Record<string, unknown>;\n refreshWorldRendering?: boolean;\n documentPatch?: PlayableLocalEditorPatchResult<TPatch> | null;\n}\n\nexport interface PlayableLocalEditorRuntimeInspectorContext<TDocument = unknown> {\n document: TDocument;\n targetIds: string[];\n activeId: string | null;\n inspectorObject: unknown;\n projectionNode?: unknown | null;\n projectedRoot?: unknown;\n}\n\nexport interface PlayableLocalEditorPrefabStageInput<TAsset = unknown> {\n assetId: string;\n browserAssetId?: string;\n asset?: TAsset | null;\n}\n\nexport interface PlayableLocalEditorPrefabStageDescriptor<TDocument = unknown> {\n assetId: string;\n browserAssetId?: string;\n label: string;\n sourceAssetId?: string;\n sourceAssetGuid?: string;\n readonly?: boolean;\n previewNodeId?: string;\n document?: TDocument;\n data?: unknown;\n}\n\nexport interface PlayableLocalEditorPrefabStageContext {\n previewNodeId?: string;\n importStructureReady: boolean;\n importStructure: unknown | null;\n}\n\nexport type PlayableLocalEditorHierarchyContextActionPlacement =\n | 'top'\n | 'after-primary'\n | 'after-create'\n | 'after-edit'\n | 'after-clipboard'\n | 'bottom';\n\nexport interface PlayableLocalEditorHierarchyContextActionContext<TDocument = unknown> {\n document: TDocument;\n contextNodeId: string | null;\n targetIds: string[];\n activeId: string | null;\n hierarchyItem: unknown | null;\n projectionNode: unknown | null;\n hostServices: unknown | null;\n payload?: Record<string, unknown>;\n browserContext: unknown;\n}\n\nexport interface PlayableLocalEditorHierarchyContextActionRegistration<TDocument = unknown, TPatch = unknown> {\n id: string;\n label: string;\n shortcut?: string;\n danger?: boolean;\n placement?: PlayableLocalEditorHierarchyContextActionPlacement;\n separatorBefore?: boolean;\n visible?(context: PlayableLocalEditorHierarchyContextActionContext<TDocument>): boolean;\n disabled?(context: PlayableLocalEditorHierarchyContextActionContext<TDocument>): boolean | string;\n run(context: PlayableLocalEditorHierarchyContextActionContext<TDocument>): boolean | void | PlayableLocalEditorPatchResult<TPatch>;\n}\n\nexport interface PlayableLocalEditorHierarchyActionsCapability<TDocument, TPatch = unknown> {\n contextActions?: readonly PlayableLocalEditorHierarchyContextActionRegistration<TDocument, TPatch>[];\n}\n\nexport interface PlayableLocalEditorAgentContextObjectInput<TDocument = unknown> {\n document: TDocument;\n objectId: string;\n targetIds: string[];\n activeId: string | null;\n contextNodeId: string | null;\n hierarchyItem: unknown | null;\n hierarchyItems: readonly unknown[];\n projectionNode: unknown | null | undefined;\n}\n\nexport interface PlayableLocalEditorAgentContextObjectSetInput<TDocument = unknown> {\n document: TDocument;\n objectIds: string[];\n activeId: string | null;\n hierarchyItems: readonly unknown[];\n projectionNodes: Record<string, unknown | null | undefined>;\n}\n\nexport interface PlayableLocalEditorAgentContextRegionBindingInput<TDocument = unknown>\n extends PlayableLocalEditorAgentContextObjectSetInput<TDocument> {\n relationshipType: 'selection-region';\n}\n\nexport interface PlayableLocalEditorAgentContextCapability<TDocument> {\n describeSceneObject?(input: PlayableLocalEditorAgentContextObjectInput<TDocument>): EditorAgentContextSemantics | null | undefined;\n describeSceneObjectSet?(input: PlayableLocalEditorAgentContextObjectSetInput<TDocument>): EditorAgentContextSemantics | null | undefined;\n describeRegionBinding?(input: PlayableLocalEditorAgentContextRegionBindingInput<TDocument>): EditorAgentContextSemantics | null | undefined;\n}\n\nexport interface PlayableLocalEditorDocumentLifecycleCapability<TDocument, TAsset = unknown> {\n cloneDocument?(document: TDocument): TDocument;\n compareDocuments?(left: TDocument, right: TDocument): boolean;\n prepareDocument?(document: TDocument, assets: TAsset[]): TDocument;\n hydrateDocumentAssets?(document: TDocument, assets: TAsset[]): TDocument;\n resolveUpdatedAssetSnapshot?(\n assets: TAsset[],\n input: { assetId: string },\n ): { assetId: string; contentHash?: string } | null;\n reconcileUpdatedAsset?(\n document: TDocument,\n input: { assetId: string },\n ): {\n document: TDocument;\n reconciledBindingCount?: number;\n warnings?: Array<{\n code: string;\n gameObjectId?: string;\n slotId?: string;\n materialAssetId?: string;\n candidateSlotIds?: string[];\n }>;\n };\n summarize?(document: TDocument): string;\n}\n\nexport interface PlayableLocalEditorSelectionCapability<TDocument> {\n isSelectable?(document: TDocument, id: string): boolean;\n isLocked?(document: TDocument, id: string): boolean;\n}\n\nexport interface PlayableLocalEditorInspectorCapability<TDocument> {\n getInspectorObject?(document: TDocument, activeId: string): unknown | null;\n getInspectorMultiObject?(document: TDocument, selectedIds: string[], activeId: string | null): unknown | null;\n getRuntimeInspectorSections?(context: PlayableLocalEditorRuntimeInspectorContext<TDocument>): unknown[];\n}\n\nexport interface PlayableLocalEditorAssetBrowserCapability<TDocument> {\n getBrowserAssetItems?(document: TDocument): unknown[];\n}\n\nexport interface PlayableLocalEditorAssetActionsCapability<TDocument, TPatch, TAsset = unknown> {\n createPatchFromAsset?(asset: TAsset, input?: Record<string, unknown> & { document?: TDocument; placement?: unknown }): {\n patch: TPatch;\n label?: string;\n };\n createAssetActionPatch?(input: Record<string, unknown> & { document: TDocument; asset?: TAsset }): PlayableLocalEditorPatchResult<TPatch> | null;\n createPlacedAssetPatch?(input: Record<string, unknown> & { document: TDocument; asset?: TAsset }): PlayableLocalEditorPatchResult<TPatch> | null;\n findCreatedId?(beforeDocument: TDocument, afterDocument: TDocument): string | null;\n}\n\nexport interface PlayableLocalEditorTransformCommandsCapability<TDocument, TPatch> {\n documentCapabilities?: Partial<EditorTransformDocumentCapabilities>;\n canCreateSerializedMultiPropertyPatch?(input: PlayableLocalEditorMultiPropertyCapabilityInput<TDocument>): boolean;\n createSerializedMultiPropertyPatch?(input: PlayableLocalEditorMultiPropertyPatchInput<TDocument>): PlayableLocalEditorPatchResult<TPatch> | null;\n createTransformInspectorPreview?(input: PlayableLocalEditorTransformInspectorPreviewInput<TDocument>): EditorTransformSnapshot | null;\n createTransformPatch?(input: PlayableLocalEditorTransformPatchInput<TDocument>): PlayableLocalEditorPatchResult<TPatch> | null;\n createTransformBatchPatch?(input: PlayableLocalEditorTransformBatchPatchInput<TDocument>): PlayableLocalEditorPatchResult<TPatch> | null;\n createDuplicateSelectionPatch?(input: Record<string, unknown> & { document: TDocument; targetIds: string[] }): PlayableLocalEditorPatchResult<TPatch> | null;\n}\n\nexport interface PlayableLocalEditorSceneGraphCapability<TDocument, TPatch> {\n validateSceneGraphDrop?(document: TDocument, intent: unknown): unknown;\n createSceneGraphRenamePatch?(document: TDocument, intent: unknown): PlayableLocalEditorPatchResult<TPatch> | null;\n createSceneGraphCreateGroupPatch?(document: TDocument, intent: unknown): PlayableLocalEditorPatchResult<TPatch> | null;\n createSceneGraphCreatePrimitivePatch?(document: TDocument, intent: unknown): PlayableLocalEditorPatchResult<TPatch> | null;\n createSceneGraphDeletePatch?(document: TDocument, intent: unknown): PlayableLocalEditorPatchResult<TPatch> | null;\n createSceneGraphDropPatch?(document: TDocument, intent: unknown): PlayableLocalEditorPatchResult<TPatch> | null;\n validateSceneGraphMove?(document: TDocument, intent: unknown): unknown;\n createSceneGraphMovePatch?(document: TDocument, intent: unknown): PlayableLocalEditorPatchResult<TPatch> | null;\n validateSceneGraphGroupSelection?(document: TDocument, intent: unknown): unknown;\n createSceneGraphGroupSelectionPatch?(document: TDocument, intent: unknown): PlayableLocalEditorPatchResult<TPatch> | null;\n}\n\nexport type PlayableLocalEditorMarkerGraphCommand = LocalEditorMarkerGraphCommand;\n\nexport interface PlayableLocalEditorMarkerGraphCapability<TDocument, TPatch> {\n getMarkerGraph?(document: TDocument): SpatialMarkerGraph | null;\n getMarkerTypeCatalog?(document: TDocument): SpatialMarkerTypeDefinition[];\n getRelationTypeCatalog?(document: TDocument): SpatialRelationTypeDefinition[];\n createMarkerGraphPatch?(document: TDocument, command: PlayableLocalEditorMarkerGraphCommand): PlayableLocalEditorPatchResult<TPatch> | null;\n}\n\nexport interface PlayableLocalEditorWorldPreviewCapability<TDocument> {\n getSceneCameraPreviewRig?(document: TDocument): unknown | null;\n getWorldAppearance?(document: TDocument): unknown | null;\n}\n\nexport interface PlayableLocalEditorRenderingCapability<TDocument, TPatch = unknown> {\n getWorldRendering?(document: TDocument): unknown | null;\n getRenderingPanelState?(document: TDocument, context?: Record<string, unknown>): unknown | null;\n onRenderingAction?(input: Record<string, unknown> & { document: TDocument }): PlayableLocalEditorMaybePromise<\n boolean | void | PlayableLocalEditorRenderingPropertyChangeResult<TPatch>\n >;\n onRenderingPropertyChange?(input: Record<string, unknown> & { document: TDocument }): PlayableLocalEditorMaybePromise<\n boolean | void | PlayableLocalEditorRenderingPropertyChangeResult<TPatch>\n >;\n}\n\nexport interface PlayableLocalEditorPrefabStageCapability<TDocument, TAsset = unknown> {\n getPrefabStageDescriptor?(\n document: TDocument,\n input: PlayableLocalEditorPrefabStageInput<TAsset>,\n ): PlayableLocalEditorPrefabStageDescriptor<TDocument> | null;\n getPrefabStageProjectionNodes?(\n document: TDocument,\n descriptor: PlayableLocalEditorPrefabStageDescriptor<TDocument>,\n ): unknown[];\n getPrefabStageStructure?(\n document: TDocument,\n descriptor: PlayableLocalEditorPrefabStageDescriptor<TDocument>,\n context: PlayableLocalEditorPrefabStageContext,\n ): unknown[];\n getPrefabStageInspectorObject?(\n document: TDocument,\n descriptor: PlayableLocalEditorPrefabStageDescriptor<TDocument>,\n selectedItemId: string | null,\n context: PlayableLocalEditorPrefabStageContext,\n ): unknown | null;\n resolvePrefabStagePreviewTarget?(\n document: TDocument,\n descriptor: PlayableLocalEditorPrefabStageDescriptor<TDocument>,\n projectionNodeId: string,\n context: PlayableLocalEditorPrefabStageContext,\n ): unknown | null;\n getPrefabStageProjectionNodeId?(\n document: TDocument,\n descriptor: PlayableLocalEditorPrefabStageDescriptor<TDocument>,\n nodeId: string,\n context: PlayableLocalEditorPrefabStageContext,\n ): string | null;\n}\n\nexport interface PlayableLocalEditorHostCapabilities<TDocument, TPatch, TAsset = unknown> {\n documentLifecycle?: PlayableLocalEditorDocumentLifecycleCapability<TDocument, TAsset>;\n selection?: PlayableLocalEditorSelectionCapability<TDocument>;\n inspector?: PlayableLocalEditorInspectorCapability<TDocument>;\n assetBrowser?: PlayableLocalEditorAssetBrowserCapability<TDocument>;\n assetActions?: PlayableLocalEditorAssetActionsCapability<TDocument, TPatch, TAsset>;\n transformCommands?: PlayableLocalEditorTransformCommandsCapability<TDocument, TPatch>;\n sceneGraph?: PlayableLocalEditorSceneGraphCapability<TDocument, TPatch>;\n markerGraph?: PlayableLocalEditorMarkerGraphCapability<TDocument, TPatch>;\n worldPreview?: PlayableLocalEditorWorldPreviewCapability<TDocument>;\n rendering?: PlayableLocalEditorRenderingCapability<TDocument, TPatch>;\n prefabStage?: PlayableLocalEditorPrefabStageCapability<TDocument, TAsset>;\n hierarchyActions?: PlayableLocalEditorHierarchyActionsCapability<TDocument, TPatch>;\n agentContext?: PlayableLocalEditorAgentContextCapability<TDocument>;\n}\n\nexport interface PlayableLocalEditorDocumentCapability<TDocument, TPatch, TAsset = unknown> {\n reduceDocument(document: TDocument, command: any): TDocument;\n getHierarchyItems(document: TDocument): unknown[];\n getProjectionNodes(document: TDocument): unknown[];\n getProjectionNode(document: TDocument, id: string): unknown | null;\n createPatchFromAsset(asset: TAsset, input?: Record<string, unknown> & { document?: TDocument; placement?: unknown }): {\n patch: TPatch;\n label?: string;\n };\n createSerializedPropertyPatch(input: PlayableLocalEditorPropertyPatchInput<TDocument>): PlayableLocalEditorPatchResult<TPatch> | null;\n}\n\nexport interface PlayableLocalEditorPersistenceCapability<TDocument, TAsset = unknown> {\n loadAuthoringSource?(): PlayableLocalEditorMaybePromise<{\n source: unknown;\n document: TDocument;\n assets?: TAsset[];\n summary?: string;\n }>;\n loadDocument?(): PlayableLocalEditorMaybePromise<TDocument>;\n loadAssets(): PlayableLocalEditorMaybePromise<TAsset[]>;\n saveAuthoringSource?(input: {\n source: unknown;\n document: TDocument;\n }): PlayableLocalEditorMaybePromise<{\n source: unknown;\n document: TDocument;\n summary?: string;\n }>;\n saveDocument?(document: TDocument): PlayableLocalEditorMaybePromise<{ document: TDocument; summary?: string }>;\n runGame(context?: { reason: 'save' | 'discard' }): PlayableLocalEditorMaybePromise<void>;\n}\n\nexport interface PlayableLocalEditorWorldCapability<TAsset = unknown> {\n disposeWorld(): PlayableLocalEditorMaybePromise<void>;\n getCanvas(): HTMLCanvasElement | null;\n loadPreviewEngine(): PlayableLocalEditorMaybePromise<Record<string, any>>;\n createPreviewEngine(engineModule: Record<string, any>, canvas: HTMLCanvasElement): any;\n importPreviewAsset(context: any): Promise<unknown | null>;\n resolveMaterialTextureUrl?(texture: ArtistMaterialTextureRef): string | null | undefined;\n toBrowserAssetItem?(asset: TAsset): unknown;\n resolveAssetId?(asset: TAsset): string;\n}\n\nexport interface PlayableLocalEditorWorldOptions {\n cameraTarget?: { x: number; y: number; z: number };\n cameraRadius?: number;\n clearColor?: { r: number; g: number; b: number; a: number };\n sky?: Record<string, unknown> | false;\n grid?: Record<string, unknown>;\n useRightHandedSystem?: boolean;\n coordinateAxes?: boolean;\n selectionEdgesPrewarm?: BabylonEditorProjectionSelectionEdgesPrewarm;\n}\n\nexport interface PlayableLocalEditorGridContext {\n getCamera(): unknown | null;\n getEditorCamera(): unknown | null;\n}\n\nexport type PlayableLocalEditorGridFactory = (\n babylon: Record<string, any>,\n scene: unknown,\n camera?: unknown,\n context?: PlayableLocalEditorGridContext,\n) => unknown | void;\n\nexport interface PlayableLocalEditorAssetReloadResult {\n ok: boolean;\n assetCount: number;\n status: string;\n}\n\nexport interface PlayableLocalEditorUpdatedAssetRefreshResult extends PlayableLocalEditorAssetReloadResult {\n assetId: string;\n reconciledBindingCount: number;\n warnings: Array<{\n code: string;\n gameObjectId?: string;\n slotId?: string;\n materialAssetId?: string;\n candidateSlotIds?: string[];\n }>;\n error?: string;\n}\n\nexport interface PlayableLocalEditorAssetCreationOptions {\n placement?: unknown;\n}\n\nexport interface PlayableLocalEditorAssetCreationResult {\n ok: boolean;\n assetId: string;\n changed?: boolean;\n createdId?: string | null;\n status: string;\n error?: string;\n}\n\nexport type PlayableLocalEditorOperationOrigin = LocalEditorHarnessOperationOrigin;\nexport type PlayableLocalEditorProjectionWaitPolicy = LocalEditorHarnessProjectionWaitPolicy;\nexport type PlayableLocalEditorHistoryOperation = LocalEditorHarnessHistoryOperation;\nexport type PlayableLocalEditorHistoryOperationOptions = LocalEditorHarnessHistoryOperationOptions;\nexport type PlayableLocalEditorHistoryProjectionResult = LocalEditorHarnessHistoryProjectionResult;\nexport type PlayableLocalEditorHistoryStateResult = LocalEditorHarnessHistoryStateResult;\nexport type PlayableLocalEditorHistoryOperationResult<TDocument = unknown> =\n LocalEditorHarnessHistoryOperationResult<TDocument>;\n\nexport interface PlayableLocalEditorHarnessApi<TDocument = unknown> {\n render(): void;\n notifyViewportRevealed(reason?: string): void;\n getWorkingDocument(): TDocument | null;\n getUnsavedChangesState(): PlayableLocalEditorUnsavedChangesState;\n getSaveFailureState(): PlayableLocalEditorSaveFailureState | null;\n getLifecycleService(): FpsEditorLifecycleService | null;\n reloadAssets(): Promise<PlayableLocalEditorAssetReloadResult>;\n refreshUpdatedAsset(input: {\n assetId: string;\n expectedContentHash: string;\n }): Promise<PlayableLocalEditorUpdatedAssetRefreshResult>;\n createAssetFromAssetId(assetId: string, options?: PlayableLocalEditorAssetCreationOptions): PlayableLocalEditorAssetCreationResult;\n undo(options?: PlayableLocalEditorHistoryOperationOptions): Promise<PlayableLocalEditorHistoryOperationResult<TDocument>>;\n redo(options?: PlayableLocalEditorHistoryOperationOptions): Promise<PlayableLocalEditorHistoryOperationResult<TDocument>>;\n enterEditor(): Promise<void>;\n saveScene(): Promise<boolean>;\n saveAndRunGame(): Promise<boolean>;\n discardAndRunGame(): Promise<void>;\n}\n\nexport interface PlayableLocalEditorHostManifest<TDocument, TPatch, TAsset = unknown> {\n metadata: PlayableLocalEditorHostManifestMetadata;\n root?: HTMLElement;\n localTestActions?: boolean;\n pluginHost?: FpsEditorPluginHost;\n authoring?: {\n host?: PlayableLocalEditorAuthoringHostLike;\n drivers?: readonly PlayableLocalEditorAuthoringSourceDriverLike[];\n };\n documentAdapter: PlayableLocalEditorDocumentCapability<TDocument, TPatch, TAsset>;\n capabilities?: PlayableLocalEditorHostCapabilities<TDocument, TPatch, TAsset>;\n persistenceAdapter: PlayableLocalEditorPersistenceCapability<TDocument, TAsset>;\n worldAdapter: PlayableLocalEditorWorldCapability<TAsset>;\n agentBridge?: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>['agentBridge'];\n world?: PlayableLocalEditorWorldOptions;\n createGrid?: PlayableLocalEditorGridFactory;\n lifecycle: {\n loadingContent: PlayableLocalEditorHostLoadingContent;\n interactions?: PlayableLocalEditorInteractionPolicy;\n beforeDiscardAndRunGame?: () => void | Promise<void>;\n minAssetLoadingOverlayMs?: number;\n };\n forgePlay?: {\n enabled?: boolean;\n window?: PlayableForgePlayWindowLike;\n handleProjectAssetCommand?: (\n context: PlayableLocalEditorHostBridgeContext<PlayableLocalEditorHarnessApi<TDocument>>,\n ) => Promise<void> | void;\n handleAssetDrop?: (\n payload: Record<string, unknown>,\n context: Omit<PlayableLocalEditorHostBridgeContext<PlayableLocalEditorHarnessApi<TDocument>>, 'name'>,\n ) => void;\n hasUnsavedPlatformChanges?: () => boolean;\n exportDocument?: (input: {\n payload: Record<string, unknown>;\n saveState: PlayableForgePlaySaveState;\n postEvent: (name: string, payload?: Record<string, unknown>) => void;\n context: Omit<PlayableLocalEditorHostBridgeContext<PlayableLocalEditorHarnessApi<TDocument>>, 'name' | 'payload'>;\n }) => Promise<void> | void;\n reportError?: (error: unknown) => void;\n };\n}\n\nexport interface PlayableLocalEditorHost<TDocument = unknown> {\n harness: PlayableLocalEditorHarnessApi<TDocument>;\n lifecycle: FpsEditorLifecycleService;\n enterEditor(): Promise<void>;\n saveScene(): Promise<boolean>;\n saveAndRunGame(): Promise<boolean>;\n discardAndRunGame(): Promise<void>;\n runWithAssetLoadingOverlay<T>(operation: () => Promise<T>): Promise<T>;\n getBridge(): PlayableForgePlayModeBridge | null;\n getCompatibilityReport(): PlayableLocalEditorHostCompatibilityReport;\n dispose(): Promise<void>;\n}\n\nexport interface FpsGameEditorLocalEditorHostOptions<TDocument, TPatch, TAsset = unknown>\n extends Omit<PlayableLocalEditorHostManifest<TDocument, TPatch, TAsset>, 'metadata' | 'agentBridge'> {\n project: Pick<FpsGameEditorProjectDefinition, 'projectId' | 'projectName'>;\n compatibilityTag?: string;\n agentBridgeSessionMetadata?: Record<string, unknown>;\n agentBridge?: PlayableLocalEditorHostManifest<TDocument, TPatch, TAsset>['agentBridge'];\n logCompatibilityReport?: boolean;\n logger?: Pick<Console, 'warn' | 'error'>;\n}\n\nexport interface FpsGameEditorLocalEditorHostResult<TDocument, TPatch, TAsset = unknown> {\n host: PlayableLocalEditorHost<TDocument>;\n manifest: PlayableLocalEditorHostManifest<TDocument, TPatch, TAsset>;\n compatibilityReport: PlayableLocalEditorHostCompatibilityReport;\n}\n\nexport function createFpsGameEditorLocalEditorHost<TDocument, TPatch, TAsset = unknown>(\n options: FpsGameEditorLocalEditorHostOptions<TDocument, TPatch, TAsset>,\n): FpsGameEditorLocalEditorHostResult<TDocument, TPatch, TAsset> {\n const manifest = createFpsGameEditorLocalEditorHostManifest(options);\n const host = createPlayableLocalEditorHost<TDocument, TPatch, TAsset>(manifest);\n const compatibilityReport = host.getCompatibilityReport();\n if (options.logCompatibilityReport !== false) {\n logPlayableLocalEditorHostCompatibilityReport(compatibilityReport, options.logger);\n }\n return {\n host,\n manifest,\n compatibilityReport,\n };\n}\n\nexport function createFpsGameEditorLocalEditorHostManifest<TDocument, TPatch, TAsset = unknown>(\n options: FpsGameEditorLocalEditorHostOptions<TDocument, TPatch, TAsset>,\n): PlayableLocalEditorHostManifest<TDocument, TPatch, TAsset> {\n const {\n project,\n compatibilityTag,\n agentBridgeSessionMetadata,\n agentBridge: configuredAgentBridge,\n logCompatibilityReport: _logCompatibilityReport,\n logger: _logger,\n ...manifestOptions\n } = options;\n const agentBridge = agentBridgeSessionMetadata\n ? {\n ...(configuredAgentBridge ?? {}),\n sessionMetadata: {\n ...(configuredAgentBridge?.sessionMetadata as Record<string, unknown> | undefined),\n ...agentBridgeSessionMetadata,\n },\n }\n : configuredAgentBridge;\n\n return {\n ...manifestOptions,\n metadata: {\n manifestVersion: PLAYABLE_LOCAL_EDITOR_HOST_MANIFEST_VERSION,\n projectId: project.projectId,\n projectName: project.projectName,\n ...(compatibilityTag ? { compatibilityTag } : {}),\n },\n ...(agentBridge ? { agentBridge } : {}),\n };\n}\n\nfunction logPlayableLocalEditorHostCompatibilityReport(\n report: PlayableLocalEditorHostCompatibilityReport,\n logger: Pick<Console, 'warn' | 'error'> = console,\n): void {\n const visibleDiagnostics = report.diagnostics.filter(\n diagnostic => diagnostic.severity === 'warning' || diagnostic.severity === 'error',\n );\n if (visibleDiagnostics.length === 0) return;\n const doctorReport = inspectPlayableEditorHostCompatibilityReport({\n diagnostics: visibleDiagnostics,\n });\n const formatted = formatPlayableEditorDoctorReport(doctorReport);\n if (doctorReport.ok) logger.warn(formatted);\n else logger.error(formatted);\n}\n\nexport function inspectPlayableLocalEditorHostManifest(\n manifest: unknown,\n): PlayableLocalEditorHostCompatibilityReport {\n const diagnostics: PlayableLocalEditorHostCompatibilityDiagnostic[] = [];\n const report: PlayableLocalEditorHostCompatibilityReport = {\n supportedManifestVersion: PLAYABLE_LOCAL_EDITOR_HOST_MANIFEST_VERSION,\n ok: true,\n diagnostics,\n };\n\n if (!isRecord(manifest)) {\n diagnostics.push(createDiagnostic(\n 'error',\n 'manifest.invalid',\n 'Playable local editor host manifest must be an object.',\n 'manifest',\n ));\n report.ok = false;\n return report;\n }\n\n inspectMetadata(manifest.metadata, report, diagnostics);\n inspectRequiredCapability(\n manifest,\n diagnostics,\n 'documentAdapter',\n 'documentCapability',\n PLAYABLE_LOCAL_EDITOR_HOST_REQUIRED_CONTRACT.document,\n );\n inspectRequiredCapability(\n manifest,\n diagnostics,\n 'persistenceAdapter',\n 'persistenceCapability',\n PLAYABLE_LOCAL_EDITOR_HOST_REQUIRED_CONTRACT.persistence,\n );\n inspectWorldCapability(manifest.worldAdapter, diagnostics);\n inspectLifecycle(manifest.lifecycle, diagnostics);\n inspectForgePlay(manifest.forgePlay, diagnostics);\n inspectAuthoring(manifest.authoring, diagnostics);\n inspectCapabilities(manifest.capabilities, diagnostics);\n\n report.ok = !diagnostics.some(diagnostic => diagnostic.severity === 'error');\n return report;\n}\n\nexport function formatPlayableLocalEditorHostCompatibilityReport(\n report: PlayableLocalEditorHostCompatibilityReport,\n): string {\n const project = report.projectName ?? report.projectId ?? 'unknown project';\n const header = report.ok\n ? `Playable local editor host compatibility: PASS (${project})`\n : `Playable local editor host compatibility: BLOCKED (${project})`;\n if (report.diagnostics.length === 0) return header;\n const lines = report.diagnostics.map((diagnostic) => {\n const path = diagnostic.path ? ` ${diagnostic.path}` : '';\n return `[${diagnostic.severity.toUpperCase()}] ${diagnostic.code}${path}: ${diagnostic.message}`;\n });\n return [header, ...lines].join('\\n');\n}\n\nfunction createHarnessDocumentAdapter<TDocument, TPatch, TAsset>(\n documentCapability: PlayableLocalEditorDocumentCapability<TDocument, TPatch, TAsset>,\n capabilities: PlayableLocalEditorHostCapabilities<TDocument, TPatch, TAsset> | undefined,\n): LocalEditorHarnessDocumentAdapter<TDocument, TPatch, TAsset> {\n return {\n ...documentCapability,\n ...capabilities?.documentLifecycle,\n ...capabilities?.selection,\n ...capabilities?.inspector,\n ...capabilities?.markerGraph,\n ...capabilities?.assetBrowser,\n ...capabilities?.assetActions,\n ...capabilities?.transformCommands,\n ...capabilities?.sceneGraph,\n ...capabilities?.worldPreview,\n ...capabilities?.rendering,\n ...capabilities?.prefabStage,\n } as unknown as LocalEditorHarnessDocumentAdapter<TDocument, TPatch, TAsset>;\n}\n\nfunction createHarnessHierarchyOptions<TDocument, TPatch, TAsset>(\n manifest: PlayableLocalEditorHostManifest<TDocument, TPatch, TAsset>,\n): LocalEditorHarnessOptions<TDocument, TPatch, TAsset>['hierarchy'] | undefined {\n const capabilities = manifest.capabilities;\n const agentController = createEditorAgentInteractionController({\n transport: createForgePlayAgentTransport({\n window: manifest.forgePlay?.window,\n }),\n });\n const agentActions = createLocalEditorAgentHierarchyContextActions<TDocument>({\n sendContext: context => agentController.sendContext(context),\n getHierarchyItems: document => manifest.documentAdapter.getHierarchyItems(document) as LocalEditorBrowserUiHierarchyItem[],\n getProjectionNode: (document, id) => manifest.documentAdapter.getProjectionNode(document, id),\n getMarkerGraph: document => capabilities?.markerGraph?.getMarkerGraph?.(document) ?? null,\n getMarkerTypeCatalog: document => capabilities?.markerGraph?.getMarkerTypeCatalog?.(document) ?? [],\n getRelationTypeCatalog: document => capabilities?.markerGraph?.getRelationTypeCatalog?.(document) ?? [],\n describeSceneObject: manifest.capabilities?.agentContext?.describeSceneObject,\n describeSceneObjectSet: manifest.capabilities?.agentContext?.describeSceneObjectSet,\n describeRegionBinding: manifest.capabilities?.agentContext?.describeRegionBinding,\n source: {\n projectId: manifest.metadata?.projectId,\n projectName: manifest.metadata?.projectName,\n },\n reportError: manifest.forgePlay?.reportError,\n });\n const contextActions = capabilities?.hierarchyActions?.contextActions;\n return {\n contextActions: [\n ...(agentActions as readonly LocalEditorHarnessHierarchyContextActionRegistration<TDocument, TPatch>[]),\n ...((contextActions ?? []) as readonly LocalEditorHarnessHierarchyContextActionRegistration<TDocument, TPatch>[]),\n ],\n };\n}\n\nexport function createPlayableLocalEditorHost<TDocument, TPatch, TAsset = unknown>(\n manifest: PlayableLocalEditorHostManifest<TDocument, TPatch, TAsset>,\n): PlayableLocalEditorHost<TDocument> {\n const compatibilityReport = inspectPlayableLocalEditorHostManifest(manifest);\n if (!compatibilityReport.ok) {\n throw new Error(formatPlayableLocalEditorHostCompatibilityReport(compatibilityReport));\n }\n\n const authoringHost = manifest.authoring\n ? (manifest.authoring.host as ProjectAuthoringHost | undefined)\n ?? createProjectAuthoringHost({ drivers: [...(manifest.authoring.drivers ?? [])] as AuthoringSourceDriver[] })\n : undefined;\n const harnessOptions = {\n root: manifest.root,\n localTestActions: manifest.localTestActions,\n pluginHost: manifest.pluginHost,\n authoringHost,\n documentAdapter: createHarnessDocumentAdapter(manifest.documentAdapter, manifest.capabilities),\n persistenceAdapter: manifest.persistenceAdapter as unknown as LocalEditorHarnessPersistenceAdapter<TDocument, TAsset>,\n worldAdapter: createHarnessWorldAdapter(manifest.worldAdapter),\n agentBridge: manifest.agentBridge,\n transformDocumentCapabilities: manifest.capabilities?.transformCommands?.documentCapabilities,\n world: manifest.world as LocalEditorHarnessOptions<TDocument, TPatch, TAsset>['world'],\n createGrid: manifest.createGrid as LocalEditorHarnessOptions<TDocument, TPatch, TAsset>['createGrid'],\n hierarchy: createHarnessHierarchyOptions(manifest),\n } satisfies LocalEditorHarnessOptions<TDocument, TPatch, TAsset>;\n const harness = createLocalEditorHarness<TDocument, TPatch, TAsset>(harnessOptions);\n const lifecycleOperations = getLocalEditorHarnessLifecycleOperations(harness);\n const root = manifest.root ?? document.body;\n const loadingOverlay = createPlayableLocalEditorLoadingOverlay(root);\n const interactions = composePlayableLocalEditorInteractionPolicy(\n manifest.lifecycle.interactions,\n harness.getDefaultInteractionPolicy?.(),\n createNativePlayableLocalEditorInteractionPolicy(root),\n );\n const uninstallBeforeUnloadGuard = installPlayableLocalEditorBeforeUnloadGuard(root, harness);\n const controller = createPlayableLocalEditorHostController({\n harness,\n lifecycleOperations,\n lifecycleScopeHost: manifest.pluginHost\n ? getFpsEditorPluginLifecycleScopeHost(manifest.pluginHost)\n : undefined,\n eventPublisher: manifest.pluginHost?.eventPublisher,\n reportDiagnostic: manifest.pluginHost\n ? diagnostic => manifest.pluginHost?.reportDiagnostic(diagnostic)\n : undefined,\n loadingOverlay,\n loadingContent: manifest.lifecycle.loadingContent,\n interactions,\n beforeDiscardAndRunGame: manifest.lifecycle.beforeDiscardAndRunGame,\n minAssetLoadingOverlayMs: manifest.lifecycle.minAssetLoadingOverlayMs,\n renderAfterEnter: false,\n forgePlay: manifest.forgePlay\n ? {\n enabled: manifest.forgePlay.enabled,\n window: manifest.forgePlay.window,\n hasUnsavedPlatformChanges: manifest.forgePlay.hasUnsavedPlatformChanges,\n handleProjectAssetCommand: manifest.forgePlay.handleProjectAssetCommand,\n handleAssetDrop: manifest.forgePlay.handleAssetDrop,\n exportDocument: manifest.forgePlay.exportDocument,\n reportError: manifest.forgePlay.reportError,\n }\n : undefined,\n });\n const hostHarness = controller.harness as PlayableLocalEditorHarnessApi<TDocument>;\n bindHarnessLifecycle(lifecycleOperations, controller);\n const lifecycleParticipantDisposers = manifest.pluginHost\n ? resolveFpsEditorLifecycleParticipants(manifest.pluginHost.contributions)\n .map(participant => controller.lifecycle.registerParticipant(participant))\n : [];\n if (lifecycleParticipantDisposers.length > 0) {\n controller.lifecycle.addScopeResource(\n PLAYABLE_LOCAL_EDITOR_APPLICATION_SCOPE_ID,\n () => {\n for (const dispose of [...lifecycleParticipantDisposers].reverse()) dispose();\n },\n );\n }\n\n let disposal: Promise<void> | null = null;\n let harnessDisposed = false;\n return {\n harness: hostHarness,\n lifecycle: controller.lifecycle.lifecycle,\n enterEditor: controller.enterEditor,\n saveScene: controller.saveScene,\n saveAndRunGame: controller.saveAndRunGame,\n discardAndRunGame: async () => {\n await controller.discardAndRunGame();\n },\n runWithAssetLoadingOverlay: controller.runWithAssetLoadingOverlay,\n getBridge: controller.getBridge,\n getCompatibilityReport() {\n return cloneCompatibilityReport(compatibilityReport);\n },\n async dispose() {\n if (disposal) return disposal;\n const pending = (async () => {\n await controller.dispose();\n uninstallBeforeUnloadGuard();\n if (!harnessDisposed) {\n await harness.dispose();\n harnessDisposed = true;\n }\n })();\n disposal = pending;\n void pending.catch(() => {\n if (disposal === pending) disposal = null;\n });\n return pending;\n },\n };\n}\n\nfunction bindHarnessLifecycle<TDocument>(\n lifecycleOperations: LocalEditorHarnessLifecycleOperations,\n controller: Pick<\n PlayableLocalEditorHost<TDocument>,\n 'enterEditor' | 'saveScene' | 'saveAndRunGame'\n > & { discardAndRunGame(): Promise<boolean> } & Pick<\n PlayableLocalEditorLifecycleController,\n 'prepareSaveAndRunGame' | 'prepareDiscardAndRunGame'\n > & { lifecycle: PlayableLocalEditorLifecycleController },\n): void {\n lifecycleOperations.setLifecycleController({\n enterEditor: controller.enterEditor,\n saveScene: controller.saveScene,\n saveAndRunGame: controller.saveAndRunGame,\n discardAndRunGame: controller.discardAndRunGame,\n prepareSaveAndRunGame: controller.prepareSaveAndRunGame,\n prepareDiscardAndRunGame: controller.prepareDiscardAndRunGame,\n lifecycle: controller.lifecycle.lifecycle,\n synchronizeDocumentState: controller.lifecycle.synchronizeDocumentState,\n registerParticipant: controller.lifecycle.registerParticipant,\n openScope: controller.lifecycle.openScope,\n addScopeResource: controller.lifecycle.addScopeResource,\n closeScope: controller.lifecycle.closeScope,\n });\n}\n\nfunction createNativePlayableLocalEditorInteractionPolicy(\n root: HTMLElement,\n): PlayableLocalEditorInteractionPolicy {\n const browserWindow = resolvePlayableLocalEditorWindow(root);\n return {\n confirmDiscardUnsavedChanges(input: PlayableLocalEditorDiscardConfirmationInput) {\n return browserWindow?.confirm?.(formatNativeDiscardConfirmationMessage(input)) ?? true;\n },\n notifySaveFailed(input: PlayableLocalEditorSaveFailureInput) {\n browserWindow?.alert?.(formatNativeSaveFailureMessage(input));\n },\n };\n}\n\nfunction composePlayableLocalEditorInteractionPolicy(\n override: PlayableLocalEditorInteractionPolicy | undefined,\n fallback: PlayableLocalEditorInteractionPolicy | undefined,\n nativeFallback: PlayableLocalEditorInteractionPolicy,\n): PlayableLocalEditorInteractionPolicy {\n return {\n confirmDiscardUnsavedChanges: override?.confirmDiscardUnsavedChanges\n ?? fallback?.confirmDiscardUnsavedChanges\n ?? nativeFallback.confirmDiscardUnsavedChanges,\n notifySaveFailed: override?.notifySaveFailed\n ?? fallback?.notifySaveFailed\n ?? nativeFallback.notifySaveFailed,\n };\n}\n\nfunction installPlayableLocalEditorBeforeUnloadGuard(\n root: HTMLElement,\n harness: Pick<LocalEditorHarness, 'getUnsavedChangesState'>,\n): () => void {\n const browserWindow = resolvePlayableLocalEditorWindow(root);\n if (!browserWindow?.addEventListener || !browserWindow.removeEventListener) return () => {};\n const onBeforeUnload = (event: BeforeUnloadEvent): string | void => {\n let unsavedChanges: PlayableLocalEditorUnsavedChangesState;\n try {\n unsavedChanges = harness.getUnsavedChangesState();\n } catch (error) {\n console.error('[PlayableLocalEditorHost] beforeunload dirty state unavailable', error);\n return;\n }\n if (!unsavedChanges.dirty || !unsavedChanges.hasWorkingDocument) return;\n event.preventDefault();\n event.returnValue = '';\n return '';\n };\n browserWindow.addEventListener('beforeunload', onBeforeUnload);\n return () => {\n browserWindow.removeEventListener('beforeunload', onBeforeUnload);\n };\n}\n\nfunction resolvePlayableLocalEditorWindow(root: HTMLElement): Window | null {\n return root.ownerDocument?.defaultView ?? (typeof window === 'undefined' ? null : window);\n}\n\nfunction formatNativeDiscardConfirmationMessage(\n _input: PlayableLocalEditorDiscardConfirmationInput,\n): string {\n return '当前编辑内容尚未保存。\\n\\n继续会丢弃这些更改并运行游戏。';\n}\n\nfunction formatNativeSaveFailureMessage(input: PlayableLocalEditorSaveFailureInput): string {\n const status = input.status?.trim() || '保存没有成功,当前编辑内容仍保留在编辑器中。';\n const details = input.details?.trim();\n const error = stringifyPlayableLocalEditorError(input.error)?.trim();\n const extra = [details, error]\n .filter((part): part is string => !!part && part !== status);\n return ['保存失败', status, ...extra].join('\\n\\n');\n}\n\nfunction stringifyPlayableLocalEditorError(error: unknown): string | undefined {\n if (error == null) return undefined;\n if (error instanceof Error) return error.message;\n return String(error);\n}\n\nfunction inspectMetadata(\n metadata: unknown,\n report: PlayableLocalEditorHostCompatibilityReport,\n diagnostics: PlayableLocalEditorHostCompatibilityDiagnostic[],\n): void {\n if (metadata === undefined) {\n diagnostics.push(createDiagnostic(\n 'error',\n 'metadata.missing',\n 'Manifest metadata is required for the host compatibility contract.',\n 'metadata',\n ));\n return;\n }\n if (!isRecord(metadata)) {\n diagnostics.push(createDiagnostic(\n 'error',\n 'metadata.invalid',\n 'Manifest metadata must be an object.',\n 'metadata',\n ));\n return;\n }\n\n report.manifestVersion = metadata.manifestVersion;\n report.projectId = readOptionalString(metadata.projectId);\n report.projectName = readOptionalString(metadata.projectName);\n report.compatibilityTag = readOptionalString(metadata.compatibilityTag);\n\n if (metadata.manifestVersion !== PLAYABLE_LOCAL_EDITOR_HOST_MANIFEST_VERSION) {\n diagnostics.push(createDiagnostic(\n 'error',\n 'metadata.manifest-version.unsupported',\n `Manifest version ${String(metadata.manifestVersion)} is incompatible with supported version ${PLAYABLE_LOCAL_EDITOR_HOST_MANIFEST_VERSION}. Upgrade the manifest or use a compatible editor package version.`,\n 'metadata.manifestVersion',\n ));\n }\n}\n\nfunction inspectRequiredCapability(\n manifest: Record<string, unknown>,\n diagnostics: PlayableLocalEditorHostCompatibilityDiagnostic[],\n fieldName: string,\n capabilityName: string,\n requiredFunctions: readonly string[],\n): void {\n const capability = manifest[fieldName];\n if (!isRecord(capability)) {\n diagnostics.push(createDiagnostic(\n 'error',\n `${capabilityName}.missing`,\n `${capabilityName} is required.`,\n capabilityName,\n ));\n return;\n }\n for (const functionName of requiredFunctions) {\n const fn = capability[functionName];\n if (typeof fn !== 'function') {\n diagnostics.push(createDiagnostic(\n 'error',\n `${capabilityName}.${functionName}.missing`,\n `${capabilityName}.${functionName} must be a function.`,\n `${capabilityName}.${functionName}`,\n ));\n } else {\n // Validate function signature: check parameter count\n validateFunctionSignature(fn, functionName, capabilityName, diagnostics);\n }\n }\n}\n\n/**\n * Validates function signature by checking parameter count.\n * Issues warnings when declared parameter count differs from expected.\n * \n * Note: Function.length is not fully reliable (rest params, default values, \n * destructured params all affect it), so signature mismatches are reported as\n * warnings rather than blocking errors.\n */\nfunction validateFunctionSignature(\n fn: Function,\n functionName: string,\n capabilityName: string,\n diagnostics: PlayableLocalEditorHostCompatibilityDiagnostic[],\n): void {\n const expectedArity = getExpectedFunctionArity(capabilityName, functionName);\n if (expectedArity === undefined) return; // No validation defined for this function\n \n const actualArity = fn.length;\n const arityMismatch = actualArity < expectedArity.min\n || (expectedArity.max !== undefined && actualArity > expectedArity.max);\n if (arityMismatch) {\n const severity = capabilityName === 'worldCapability' ? 'error' : 'warning';\n diagnostics.push(createDiagnostic(\n severity,\n `${capabilityName}.${functionName}.arity-mismatch`,\n `${capabilityName}.${functionName} declares ${actualArity} parameter(s), but SDK expects ${expectedArity.min}${expectedArity.max !== undefined && expectedArity.max !== expectedArity.min ? `-${expectedArity.max}` : ''}. Verify the function signature matches the SDK contract.`,\n `${capabilityName}.${functionName}`,\n ));\n }\n}\n\n/**\n * Returns expected parameter count for required functions.\n * min: minimum required parameters\n * max: maximum expected parameters (undefined = no limit)\n */\nfunction getExpectedFunctionArity(\n capabilityName: string,\n functionName: string,\n): { min: number; max?: number } | undefined {\n // Document capability function signatures\n if (capabilityName === 'documentCapability') {\n switch (functionName) {\n case 'reduceDocument': return { min: 2, max: 2 }; // (document, command)\n case 'getHierarchyItems': return { min: 1, max: 1 }; // (document)\n case 'getProjectionNodes': return { min: 1, max: 1 }; // (document)\n case 'getProjectionNode': return { min: 2, max: 2 }; // (document, id)\n case 'createPatchFromAsset': return { min: 1, max: 2 }; // (asset, input?)\n case 'createSerializedPropertyPatch': return { min: 1, max: 1 }; // (input)\n }\n }\n \n // Persistence capability function signatures\n if (capabilityName === 'persistenceCapability') {\n switch (functionName) {\n case 'loadAssets': return { min: 1, max: 1 }; // (document)\n case 'runGame': return { min: 0, max: 1 }; // (context?)\n }\n }\n \n // World capability function signatures\n if (capabilityName === 'worldCapability') {\n switch (functionName) {\n case 'getCanvas': return { min: 0, max: 0 }; // ()\n case 'disposeWorld': return { min: 0, max: 0 }; // ()\n case 'loadPreviewEngine': return { min: 0, max: 0 }; // ()\n case 'createPreviewEngine': return { min: 2, max: 2 }; // (engineModule, canvas)\n case 'importPreviewAsset': return { min: 1, max: 1 }; // (context)\n }\n }\n \n return undefined;\n}\n\nfunction inspectWorldCapability(\n worldCapability: unknown,\n diagnostics: PlayableLocalEditorHostCompatibilityDiagnostic[],\n): void {\n if (!isRecord(worldCapability)) {\n diagnostics.push(createDiagnostic(\n 'error',\n 'worldCapability.missing',\n 'worldCapability is required.',\n 'worldCapability',\n ));\n return;\n }\n for (const functionName of PLAYABLE_LOCAL_EDITOR_HOST_REQUIRED_CONTRACT.world.direct) {\n const fn = worldCapability[functionName];\n if (typeof fn !== 'function') {\n diagnostics.push(createDiagnostic(\n 'error',\n `worldCapability.${functionName}.missing`,\n `worldCapability.${functionName} must be a function.`,\n `worldCapability.${functionName}`,\n ));\n } else {\n validateFunctionSignature(fn, functionName, 'worldCapability', diagnostics);\n }\n }\n}\n\nfunction createHarnessWorldAdapter<TAsset>(\n worldCapability: PlayableLocalEditorWorldCapability<TAsset>,\n): LocalEditorHarnessWorldAdapter<TAsset> {\n const adapter: LocalEditorHarnessWorldAdapter<TAsset> = {\n disposeGameWorld() {\n return worldCapability.disposeWorld?.() as ReturnType<LocalEditorHarnessWorldAdapter<TAsset>['disposeGameWorld']>;\n },\n getCanvas() {\n return worldCapability.getCanvas();\n },\n loadBabylon() {\n return worldCapability.loadPreviewEngine?.() as ReturnType<LocalEditorHarnessWorldAdapter<TAsset>['loadBabylon']>;\n },\n createEngine(engineModule, canvas) {\n return worldCapability.createPreviewEngine?.(engineModule, canvas);\n },\n importProjectionModel(context) {\n return worldCapability.importPreviewAsset?.(context) as ReturnType<LocalEditorHarnessWorldAdapter<TAsset>['importProjectionModel']>;\n },\n };\n if (worldCapability.toBrowserAssetItem) {\n adapter.toBrowserAssetItem = worldCapability.toBrowserAssetItem as LocalEditorHarnessWorldAdapter<TAsset>['toBrowserAssetItem'];\n }\n if (worldCapability.resolveAssetId) {\n adapter.resolveAssetId = worldCapability.resolveAssetId;\n }\n if (worldCapability.resolveMaterialTextureUrl) {\n adapter.resolveMaterialTextureUrl = worldCapability.resolveMaterialTextureUrl;\n }\n return adapter;\n}\n\nfunction inspectLifecycle(\n lifecycle: unknown,\n diagnostics: PlayableLocalEditorHostCompatibilityDiagnostic[],\n): void {\n if (!isRecord(lifecycle)) {\n diagnostics.push(createDiagnostic(\n 'error',\n 'lifecycle.missing',\n 'lifecycle is required.',\n 'lifecycle',\n ));\n return;\n }\n if (!isRecord(lifecycle.loadingContent)) {\n diagnostics.push(createDiagnostic(\n 'error',\n 'lifecycle.loading-content.missing',\n 'lifecycle.loadingContent is required.',\n 'lifecycle.loadingContent',\n ));\n }\n}\n\nfunction inspectForgePlay(\n forgePlay: unknown,\n diagnostics: PlayableLocalEditorHostCompatibilityDiagnostic[],\n): void {\n if (!isRecord(forgePlay)) return;\n if (forgePlay.enabled !== false && !forgePlay.window) {\n diagnostics.push(createDiagnostic(\n 'warning',\n 'forge-play.window.missing',\n 'Forge Play bridge is enabled but no window was provided; mode and document bridge commands will not be installed.',\n 'forgePlay.window',\n ));\n }\n}\n\nfunction inspectAuthoring(\n authoring: unknown,\n diagnostics: PlayableLocalEditorHostCompatibilityDiagnostic[],\n): void {\n if (!isRecord(authoring)) return;\n const drivers = Array.isArray(authoring.drivers) ? authoring.drivers : [];\n if (authoring.host && drivers.length > 0) {\n diagnostics.push(createDiagnostic(\n 'info',\n 'authoring.host-overrides-drivers',\n 'authoring.host and authoring.drivers are both present; the provided host will be used.',\n 'authoring',\n ));\n }\n}\n\nfunction inspectCapabilities(\n capabilities: unknown,\n diagnostics: PlayableLocalEditorHostCompatibilityDiagnostic[],\n): void {\n if (capabilities === undefined) return;\n if (!isRecord(capabilities)) {\n diagnostics.push(createDiagnostic(\n 'warning',\n 'capabilities.invalid',\n 'capabilities must be an object when provided.',\n 'capabilities',\n ));\n return;\n }\n const hierarchyActions = capabilities.hierarchyActions;\n if (isRecord(hierarchyActions)\n && hierarchyActions.contextActions !== undefined\n && !Array.isArray(hierarchyActions.contextActions)) {\n diagnostics.push(createDiagnostic(\n 'warning',\n 'capabilities.hierarchyActions.contextActions.invalid',\n 'capabilities.hierarchyActions.contextActions should be an array of hierarchy action registrations.',\n 'capabilities.hierarchyActions.contextActions',\n ));\n }\n}\n\nfunction createDiagnostic(\n severity: PlayableLocalEditorHostCompatibilitySeverity,\n code: string,\n message: string,\n path?: string,\n): PlayableLocalEditorHostCompatibilityDiagnostic {\n return {\n severity,\n code,\n message,\n path,\n };\n}\n\nfunction cloneCompatibilityReport(\n report: PlayableLocalEditorHostCompatibilityReport,\n): PlayableLocalEditorHostCompatibilityReport {\n return {\n supportedManifestVersion: report.supportedManifestVersion,\n manifestVersion: report.manifestVersion,\n projectId: report.projectId,\n projectName: report.projectName,\n compatibilityTag: report.compatibilityTag,\n ok: report.ok,\n diagnostics: report.diagnostics.map(diagnostic => ({ ...diagnostic })),\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null;\n}\n\nfunction readOptionalString(value: unknown): string | undefined {\n return typeof value === 'string' ? value : undefined;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playable-product-local-editor.js","sourceRoot":"","sources":["../src/playable-product-local-editor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"playable-product-local-editor.js","sourceRoot":"","sources":["../src/playable-product-local-editor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,GAErC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,kCAAkC,GAGnC,MAAM,iCAAiC,CAAC;AAKzC,MAAM,yCAAyC,GAAG,CAAC,CAAC;AAEpD,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAA6B,CAAC;AAExE,KAAK,UAAU,+BAA+B;IAC5C,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,0BAA0B,CAAC,CAAC,GAAG,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;QACpE,IAAI,CAAC;YAAC,MAAM,OAAO,EAAE,CAAC;QAAC,CAAC;QACxB,MAAM,CAAC,CAAC,gFAAgF,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC,CAAC;AACN,CAAC;AAsED,MAAM,UAAU,oCAAoC,CAClD,OAA0E;IAE1E,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,MAAmD,CAAC;IACvG,MAAM,sBAAsB,GAAG,oCAAoC,EAAE,CAAC;IACtE,IAAI,UAAU,GAA8C,IAAI,CAAC;IACjE,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,QAAQ,GAAyB,IAAI,CAAC;IAC1C,IAAI,4BAA4B,GAAG,KAAK,CAAC;IACzC,IAAI,0BAA0B,GAAG,CAAC,CAAC;IAEnC,MAAM,oBAAoB,GAAG,KAAK,IAAmB,EAAE;QACrD,IAAI,iBAAiB;YAAE,OAAO;QAC9B,iBAAiB,GAAG,IAAI,CAAC;QACzB,MAAM,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;IACxC,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,KAAK,EAC7B,iBAA0D,EAAE,EAC7C,EAAE;QACjB,IAAI,QAAQ;YAAE,OAAO;QACrB,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,IAAI,GAAG,UAAU,CAAC;QACxB,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE;YAC1B,MAAM,IAAI,EAAE,OAAO,EAAE,CAAC;YACtB,IAAI,UAAU,KAAK,IAAI;gBAAE,UAAU,GAAG,IAAI,CAAC;YAC3C,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,cAAc,CAAC,yBAAyB;gBAAE,OAAO,CAAC,oBAAoB,EAAE,CAAC,KAAK,CAAC,CAAC;QACvF,CAAC,CAAC,EAAE,CAAC;QACL,QAAQ,GAAG,OAAO,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,OAAO,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,IAAI,QAAQ,KAAK,OAAO;gBAAE,QAAQ,GAAG,IAAI,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,8BAA8B,GAAG,KAAK,IAAmB,EAAE;QAC/D,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,CAAC;gBAAS,CAAC;YACT,IAAI,QAAQ;gBAAE,0BAA0B,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;QAClF,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,uBAAuB,GAAG,GAAS,EAAE;QACzC,0BAA0B,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IACjE,CAAC,CAAC;IAEF,MAAM,qCAAqC,GAAG,GAAS,EAAE;QACvD,uBAAuB,EAAE,CAAC;QAC1B,IAAI,4BAA4B;YAAE,OAAO;QACzC,4BAA4B,GAAG,IAAI,CAAC;QACpC,MAAM,eAAe,GAAG,CAAC,KAAa,EAAQ,EAAE;YAC9C,aAAa,CAAC,UAAU,CAAC,GAAG,EAAE;gBAC5B,0BAA0B,IAAI,CAAC,CAAC;gBAChC,KAAK,iBAAiB,CAAC,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBACxE,OAAO,CAAC,KAAK,CACX,yDAAyD,0BAA0B,SAAS,EAC5F,KAAK,CACN,CAAC;oBACF,IAAI,0BAA0B,IAAI,yCAAyC,EAAE,CAAC;wBAC5E,4BAA4B,GAAG,KAAK,CAAC;wBACrC,OAAO,CAAC,KAAK,CACX,8DAA8D,yCAAyC,qEAAqE,CAC7K,CAAC;wBACF,OAAO;oBACT,CAAC;oBACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,0BAA0B,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC3F,eAAe,CAAC,UAAU,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC,CAAC;QACF,eAAe,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,KAAK,EAAE,OAA4C,EAAiB,EAAE;QACpF,uBAAuB,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC;gBAAC,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAAC,CAAC;oBACnC,CAAC;gBAAC,qCAAqC,EAAE,CAAC;YAAC,CAAC;YACpD,OAAO;QACT,CAAC;QACD,MAAM,kBAAkB,GAAG,aAAa,CAAC,oBAAoB,CAAC;QAC9D,IAAI,OAAO,kBAAkB,KAAK,UAAU,EAAE,CAAC;YAC7C,IAAI,CAAC;gBAAC,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAAC,CAAC;oBAClC,CAAC;gBAAC,qCAAqC,EAAE,CAAC;YAAC,CAAC;YACpD,OAAO;QACT,CAAC;QACD,MAAM,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;QACjC,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;QAC7C,MAAM,oBAAoB,EAAE,CAAC;QAC7B,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,GAA6B,EAAE;QAC/C,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;QAC7C,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC;QAC1C,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,OAAO,CAAC,QAAQ,IAAI,cAAc,CAAC,CAAC;QAC5F,OAAO,MAAM,YAAY,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,CAAC,CAAC;IAEF,MAAM,OAAO,GAAsD;QACjE,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU;QACzB,yBAAyB,CAAC,OAAO;YAC/B,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QACD,mCAAmC,CAAC,OAAO;YACzC,OAAO,sBAAsB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QACD,oBAAoB;QACpB,SAAS;KACV,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACpE,KAAK,+BAA+B,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,kCAAkC,CAA4B;QAChF,GAAG,WAAW;QACd,kBAAkB,EAAE;YAClB,GAAG,WAAW,CAAC,kBAAkB;YACjC,OAAO;SACR;QACD,YAAY,EAAE;YACZ,GAAG,WAAW,CAAC,YAAY;YAC3B,YAAY;YACZ,SAAS;SACV;QACD,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,0BAA0B,EAAE,OAAO,CAAC,0BAA0B;QAC9D,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;IACH,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC;IAErC,OAAO;QACL,KAAK,CAAC,WAAW;YACf,MAAM,oBAAoB,EAAE,CAAC;YAC7B,MAAM,UAAU,EAAE,WAAW,EAAE,CAAC;QAClC,CAAC;QACD,KAAK,CAAC,iBAAiB;YACrB,MAAM,UAAU,EAAE,iBAAiB,EAAE,CAAC;QACxC,CAAC;QACD,eAAe;YACb,iBAAiB,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,KAAK,CAAC,OAAO;YACX,MAAM,iBAAiB,EAAE,CAAC;YAC1B,0BAA0B,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;YAClE,MAAM,+BAA+B,EAAE,CAAC;QAC1C,CAAC;QACD,OAAO;YACL,OAAO,UAAU,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import {\n createPlayablePlatformAssetDropCache,\n type FpsGameEditorProjectDefinition,\n} from '@fps-games/editor-playable-sdk';\nimport {\n createFpsGameEditorLocalEditorHost,\n type FpsGameEditorLocalEditorHostOptions,\n type PlayableLocalEditorHost,\n} from './playable-local-editor-host.js';\nimport type { FpsEditorPluginHost } from '@fps-games/editor-core/plugin-host';\n\ntype MaybePromise<T> = T | Promise<T>;\n\nconst MAX_DEFERRED_EDITOR_HOST_CLEANUP_ATTEMPTS = 6;\ntype DeferredEditorHostCleanup = () => Promise<void>;\nconst deferredEditorHostCleanups = new Set<DeferredEditorHostCleanup>();\n\nasync function retryDeferredEditorHostCleanups(): Promise<void> {\n await Promise.all([...deferredEditorHostCleanups].map(async cleanup => {\n try { await cleanup(); }\n catch { /* The owning cleanup remains registered for a later mount or shutdown retry. */ }\n }));\n}\n\nexport interface FpsGameEditorProductRunGameContext {\n reason?: string;\n [key: string]: unknown;\n}\n\nexport interface FpsGameEditorProductWindowLike {\n parent?: unknown;\n document?: Pick<Document, 'getElementById'>;\n location: Pick<Location, 'reload'>;\n setTimeout(handler: () => void, timeout?: number): unknown;\n __restartProjectGame?: (context?: FpsGameEditorProductRunGameContext) => MaybePromise<void>;\n}\n\nexport interface FpsGameEditorProductLocalEditorContext<TDocument> {\n getHost(): PlayableLocalEditorHost<TDocument> | null;\n rememberPlatformAssetDrop(payload: Record<string, unknown>): void;\n normalizeLoadedPlatformAssetPayload(payload: Record<string, unknown>): Record<string, unknown>;\n runBeforeEnterEditor(): Promise<void>;\n getCanvas(): HTMLCanvasElement | null;\n}\n\ntype FpsGameEditorProductBaseHostOptions<TDocument, TPatch, TAsset> =\n FpsGameEditorLocalEditorHostOptions<TDocument, TPatch, TAsset>;\n\nexport type FpsGameEditorProductLocalEditorHostOptions<TDocument, TPatch, TAsset = unknown> = Omit<\n FpsGameEditorProductBaseHostOptions<TDocument, TPatch, TAsset>,\n 'project' | 'root' | 'compatibilityTag' | 'agentBridgeSessionMetadata'\n | 'pluginHost' | 'persistenceAdapter' | 'worldAdapter'\n> & {\n persistenceAdapter: Omit<\n FpsGameEditorProductBaseHostOptions<TDocument, TPatch, TAsset>['persistenceAdapter'],\n 'runGame'\n >;\n worldAdapter: Omit<\n FpsGameEditorProductBaseHostOptions<TDocument, TPatch, TAsset>['worldAdapter'],\n 'disposeWorld' | 'disposeGameWorld' | 'getCanvas'\n >;\n};\n\nexport interface FpsGameEditorProductLocalEditorOptions<TDocument, TPatch, TAsset = unknown> {\n project: Pick<FpsGameEditorProjectDefinition, 'projectId' | 'projectName'>;\n root?: HTMLElement;\n compatibilityTag?: string;\n agentBridgeSessionMetadata?: Record<string, unknown>;\n pluginHost?: FpsEditorPluginHost;\n window?: FpsGameEditorProductWindowLike;\n canvasId?: string;\n disposeGameWorld: () => MaybePromise<void>;\n getCanvas?: () => HTMLCanvasElement | null;\n restartGame?: (context?: FpsGameEditorProductRunGameContext) => MaybePromise<void>;\n onBeforeEnterEditor?: () => MaybePromise<void>;\n onBeforeReload?: () => MaybePromise<void>;\n setAssetBridgeActive?: (active: boolean) => void;\n hostAssembly: {\n createHostOptions: (\n context: FpsGameEditorProductLocalEditorContext<TDocument>,\n ) => FpsGameEditorProductLocalEditorHostOptions<TDocument, TPatch, TAsset>;\n };\n}\n\nexport interface FpsGameEditorProductLocalEditorModeSwitcher<TDocument = unknown> {\n enterEditor(): Promise<void>;\n discardAndRunGame(): Promise<void>;\n detachForEditor(): void;\n dispose(): Promise<void>;\n getHost(): PlayableLocalEditorHost<TDocument> | null;\n}\n\nexport function mountFpsGameEditorProductLocalEditor<TDocument, TPatch, TAsset = unknown>(\n options: FpsGameEditorProductLocalEditorOptions<TDocument, TPatch, TAsset>,\n): FpsGameEditorProductLocalEditorModeSwitcher<TDocument> {\n const runtimeWindow = options.window ?? globalThis.window as unknown as FpsGameEditorProductWindowLike;\n const platformAssetDropCache = createPlayablePlatformAssetDropCache();\n let editorHost: PlayableLocalEditorHost<TDocument> | null = null;\n let detachedForEditor = false;\n let disposed = false;\n let disposal: Promise<void> | null = null;\n let cleanupAfterRunGameScheduled = false;\n let cleanupAfterRunGameAttempt = 0;\n\n const runBeforeEnterEditor = async (): Promise<void> => {\n if (detachedForEditor) return;\n detachedForEditor = true;\n await options.onBeforeEnterEditor?.();\n };\n\n const disposeEditorHost = async (\n disposeOptions: { preserveAssetBridgeActive?: boolean } = {},\n ): Promise<void> => {\n if (disposed) return;\n if (disposal) return disposal;\n const host = editorHost;\n const pending = (async () => {\n await host?.dispose();\n if (editorHost === host) editorHost = null;\n disposed = true;\n if (!disposeOptions.preserveAssetBridgeActive) options.setAssetBridgeActive?.(false);\n })();\n disposal = pending;\n try {\n await pending;\n } finally {\n if (disposal === pending) disposal = null;\n }\n };\n\n const retryRetainedEditorHostCleanup = async (): Promise<void> => {\n try {\n await disposeEditorHost({ preserveAssetBridgeActive: true });\n } finally {\n if (disposed) deferredEditorHostCleanups.delete(retryRetainedEditorHostCleanup);\n }\n };\n\n const retainEditorHostCleanup = (): void => {\n deferredEditorHostCleanups.add(retryRetainedEditorHostCleanup);\n };\n\n const scheduleEditorHostCleanupAfterRunGame = (): void => {\n retainEditorHostCleanup();\n if (cleanupAfterRunGameScheduled) return;\n cleanupAfterRunGameScheduled = true;\n const scheduleAttempt = (delay: number): void => {\n runtimeWindow.setTimeout(() => {\n cleanupAfterRunGameAttempt += 1;\n void disposeEditorHost({ preserveAssetBridgeActive: true }).catch(error => {\n console.error(\n `[FpsGameEditor] scheduled editor host cleanup attempt ${cleanupAfterRunGameAttempt} failed`,\n error,\n );\n if (cleanupAfterRunGameAttempt >= MAX_DEFERRED_EDITOR_HOST_CLEANUP_ATTEMPTS) {\n cleanupAfterRunGameScheduled = false;\n console.error(\n `[FpsGameEditor] scheduled editor host cleanup paused after ${MAX_DEFERRED_EDITOR_HOST_CLEANUP_ATTEMPTS} attempts; retaining ownership for the next mount or shutdown retry`,\n );\n return;\n }\n const retryDelay = Math.min(1000, 50 * (2 ** Math.min(cleanupAfterRunGameAttempt - 1, 5)));\n scheduleAttempt(retryDelay);\n });\n }, delay);\n };\n scheduleAttempt(0);\n };\n\n const runGame = async (context?: FpsGameEditorProductRunGameContext): Promise<void> => {\n retainEditorHostCleanup();\n if (options.restartGame) {\n try { await options.restartGame(context); }\n finally { scheduleEditorHostCleanupAfterRunGame(); }\n return;\n }\n const restartProjectGame = runtimeWindow.__restartProjectGame;\n if (typeof restartProjectGame === 'function') {\n try { await restartProjectGame(context); }\n finally { scheduleEditorHostCleanupAfterRunGame(); }\n return;\n }\n await options.onBeforeReload?.();\n runtimeWindow.location.reload();\n };\n\n const disposeWorld = async (): Promise<void> => {\n await runBeforeEnterEditor();\n await options.disposeGameWorld();\n };\n\n const getCanvas = (): HTMLCanvasElement | null => {\n const providedCanvas = options.getCanvas?.();\n if (providedCanvas) return providedCanvas;\n const canvas = runtimeWindow.document?.getElementById?.(options.canvasId ?? 'renderCanvas');\n return canvas instanceof HTMLCanvasElement ? canvas : null;\n };\n\n const context: FpsGameEditorProductLocalEditorContext<TDocument> = {\n getHost: () => editorHost,\n rememberPlatformAssetDrop(payload) {\n platformAssetDropCache.remember(payload);\n },\n normalizeLoadedPlatformAssetPayload(payload) {\n return platformAssetDropCache.normalize(payload);\n },\n runBeforeEnterEditor,\n getCanvas,\n };\n\n const hostOptions = options.hostAssembly.createHostOptions(context);\n void retryDeferredEditorHostCleanups();\n const createdHost = createFpsGameEditorLocalEditorHost<TDocument, TPatch, TAsset>({\n ...hostOptions,\n persistenceAdapter: {\n ...hostOptions.persistenceAdapter,\n runGame,\n },\n worldAdapter: {\n ...hostOptions.worldAdapter,\n disposeWorld,\n getCanvas,\n },\n project: options.project,\n compatibilityTag: options.compatibilityTag,\n root: options.root,\n agentBridgeSessionMetadata: options.agentBridgeSessionMetadata,\n pluginHost: options.pluginHost,\n });\n editorHost = createdHost.host;\n options.setAssetBridgeActive?.(true);\n\n return {\n async enterEditor() {\n await runBeforeEnterEditor();\n await editorHost?.enterEditor();\n },\n async discardAndRunGame() {\n await editorHost?.discardAndRunGame();\n },\n detachForEditor() {\n detachedForEditor = true;\n },\n async dispose() {\n await disposeEditorHost();\n deferredEditorHostCleanups.delete(retryRetainedEditorHostCleanup);\n await retryDeferredEditorHostCleanups();\n },\n getHost() {\n return editorHost;\n },\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playable-product-projection-preview.js","sourceRoot":"","sources":["../src/playable-product-projection-preview.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"playable-product-projection-preview.js","sourceRoot":"","sources":["../src/playable-product-projection-preview.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n createBabylonAssetContainerProjectionImporter,\n createBabylonPrimitiveProjectionInstancingController,\n createPlayableBabylonEditorGrid,\n type BabylonAssetContainerProjectionImportEvent,\n type PlayableBabylonProjectionImportContext,\n type PlayableBabylonProjectionImportResult,\n type PlayableBabylonProjectionNode,\n type PlayableBabylonSceneCameraPreviewRig,\n} from './playable-babylon-facade.js';\nimport {\n createEditorSceneRuntimePreviewImportPlan,\n createEditorSceneRuntimePreviewMainCameraRig,\n createEditorSceneRuntimePreviewMissingAssetUrlDiagnostic,\n createEditorSceneRuntimePreviewNode,\n readEditorSceneRuntimePreviewAssetId,\n readEditorSceneRuntimePreviewAssetKind,\n resolveEditorSceneRuntimePreviewAssetUrl,\n type EditorSceneAssetLibraryItem,\n type EditorSceneCameraRig,\n type EditorSceneDocument,\n type EditorSceneGameObject,\n type EditorSceneRuntimePreviewAssetsModule,\n} from '@fps-games/editor-playable-sdk';\n\nexport type FpsGameEditorProductBabylonModule = Record<string, any>;\n\nexport interface FpsGameEditorProductProjectionImportStats {\n importModelCalls: number;\n containerLoads: number;\n containerCacheHits: number;\n instantiateCalls: number;\n fallbackCount: number;\n lastCacheKey: string | null;\n lastError: string | null;\n}\n\nexport interface FpsGameEditorProductProjectionGroundDecalHooks<TGroundDecal> {\n isGroundDecalConfig(value: unknown): value is TGroundDecal;\n createDynamicTexture(\n name: string,\n scene: unknown,\n decal: TGroundDecal,\n ): { texture: any; ready: Promise<unknown> };\n readSize(decal: TGroundDecal): { width: number; depth: number };\n readRendering?(decal: TGroundDecal): {\n alphaIndex?: number;\n diffuseTextureLevel?: number;\n emissiveTextureLevel?: number;\n } | null | undefined;\n}\n\nexport interface FpsGameEditorProductProjectionPreviewOptions<\n TDocument extends EditorSceneDocument = EditorSceneDocument,\n TGameObject extends EditorSceneGameObject = EditorSceneGameObject,\n TAsset extends EditorSceneAssetLibraryItem = EditorSceneAssetLibraryItem,\n TGroundDecal = unknown,\n> {\n assetsModule: EditorSceneRuntimePreviewAssetsModule;\n defaultCamera: EditorSceneCameraRig;\n gridName?: string;\n primitiveSourceMeshNamePrefix?: string;\n statsTarget?: Record<string, unknown>;\n statsTargetKey?: string;\n groundDecal?: FpsGameEditorProductProjectionGroundDecalHooks<TGroundDecal>;\n loadBabylonSceneLoader(): Promise<{\n SceneLoader: {\n LoadAssetContainerAsync(\n path: string,\n filename: string,\n scene: unknown,\n onProgress?: unknown,\n pluginExtension?: string,\n ): Promise<unknown>;\n };\n }>;\n resolveModelPathAndFile(url: string): Promise<{\n path: string;\n filename: string;\n isDataUrl?: boolean;\n isCompressed?: boolean;\n }>;\n}\n\nexport interface FpsGameEditorProductProjectionPreview<\n TDocument extends EditorSceneDocument = EditorSceneDocument,\n TGameObject extends EditorSceneGameObject = EditorSceneGameObject,\n TAsset extends EditorSceneAssetLibraryItem = EditorSceneAssetLibraryItem,\n> {\n createEditorGrid(BABYLON: FpsGameEditorProductBabylonModule, scene: unknown, camera?: unknown): unknown;\n createEditorPreviewBabylonModule(BABYLON: FpsGameEditorProductBabylonModule): FpsGameEditorProductBabylonModule;\n createProjectionNodes(editorScene: TDocument): PlayableBabylonProjectionNode[];\n createProjectionNode(editorScene: TDocument, gameObject: TGameObject): PlayableBabylonProjectionNode;\n createSceneCameraPreviewRig(editorScene: TDocument): PlayableBabylonSceneCameraPreviewRig | null;\n importEditorProjectionModel(context: PlayableBabylonProjectionImportContext): Promise<PlayableBabylonProjectionImportResult | null>;\n createEditorSceneLibraryAssetPreview(asset: TAsset): { kind: 'image'; url: string; alt: string; fit: 'contain' } | undefined;\n createEditorSceneInspectorTextureAssets(assets: readonly TAsset[]): Array<{\n id: string;\n label: string;\n url: string;\n meta: string;\n usage: 'environment' | 'material';\n capabilities: { materialTexture: boolean; environmentTexture: boolean };\n }>;\n resolveEditorSceneTextureRefUrl(\n assets: readonly TAsset[],\n texture: { textureAssetId?: string | null; url?: string | null } | null | undefined,\n ): string | null;\n}\n\ntype EditorSceneRuntimePreviewImportPlan = NonNullable<ReturnType<typeof createEditorSceneRuntimePreviewImportPlan>>;\n\nexport function createFpsGameEditorProductProjectionPreview<\n TDocument extends EditorSceneDocument,\n TGameObject extends EditorSceneGameObject,\n TAsset extends EditorSceneAssetLibraryItem,\n TGroundDecal = unknown,\n>(\n options: FpsGameEditorProductProjectionPreviewOptions<TDocument, TGameObject, TAsset, TGroundDecal>,\n): FpsGameEditorProductProjectionPreview<TDocument, TGameObject, TAsset> {\n const stats: FpsGameEditorProductProjectionImportStats = {\n importModelCalls: 0,\n containerLoads: 0,\n containerCacheHits: 0,\n instantiateCalls: 0,\n fallbackCount: 0,\n lastCacheKey: null,\n lastError: null,\n };\n const importPlanCache = new WeakMap<object, EditorSceneRuntimePreviewImportPlan>();\n const primitiveProjectionInstancing = createBabylonPrimitiveProjectionInstancingController({\n sourceMeshNamePrefix: options.primitiveSourceMeshNamePrefix ?? '__fps_editor_primitive_source',\n });\n const publishStats = (): void => {\n const target = options.statsTarget ?? (typeof window !== 'undefined' ? window as unknown as Record<string, unknown> : null);\n if (!target) return;\n target[options.statsTargetKey ?? '__fpsGameEditorProjectionImportStats'] = { ...stats };\n };\n const resolveCachedImportPlan = (context: PlayableBabylonProjectionImportContext): EditorSceneRuntimePreviewImportPlan | null => {\n const cached = importPlanCache.get(context);\n if (cached) return cached;\n const importPlan = createEditorSceneRuntimePreviewImportPlan({\n assetsModule: options.assetsModule,\n asset: context.asset,\n nodeId: context.node.id,\n });\n if (importPlan) importPlanCache.set(context, importPlan);\n return importPlan;\n };\n const handleEvent = (event: BabylonAssetContainerProjectionImportEvent): void => {\n stats.lastCacheKey = event.cacheKey;\n if (event.type === 'container-load-start') {\n stats.containerLoads += 1;\n stats.lastError = null;\n } else if (event.type === 'container-cache-hit') {\n stats.containerCacheHits += 1;\n } else if (event.type === 'instantiate') {\n stats.instantiateCalls += 1;\n } else if (event.type === 'container-load-failure') {\n stats.fallbackCount += 1;\n stats.lastError = event.error instanceof Error ? event.error.message : String(event.error);\n }\n publishStats();\n };\n const modelImporter = createBabylonAssetContainerProjectionImporter({\n loadContainer: async (context) => {\n const importPlan = resolveCachedImportPlan(context);\n if (!importPlan) throw new Error('[LocalEditor] Missing model import plan for projection asset container');\n const loaderModule = await options.loadBabylonSceneLoader();\n const pathInfo = await options.resolveModelPathAndFile(importPlan.url);\n return loaderModule.SceneLoader.LoadAssetContainerAsync(\n pathInfo.path,\n pathInfo.filename,\n context.scene,\n undefined,\n pathInfo.isDataUrl || pathInfo.isCompressed ? '.glb' : undefined,\n ) as Promise<any>;\n },\n resolveCacheKey: (context) => {\n const importPlan = resolveCachedImportPlan(context);\n const assetId = readEditorSceneRuntimePreviewAssetId(context.asset) ?? '';\n const assetRecord = context.asset as Record<string, unknown>;\n const assetGuid = typeof assetRecord.guid === 'string' ? assetRecord.guid : '';\n return importPlan\n ? `fps-editor:model:${assetId}:${assetGuid}:${importPlan.url}`\n : `fps-editor:model:${assetId}:${assetGuid}`;\n },\n onEvent: handleEvent,\n });\n const readPreviewGroundDecal = (asset: unknown): TGroundDecal | null => {\n const metadata = asset && typeof asset === 'object' && !Array.isArray(asset)\n ? (asset as { metadata?: unknown }).metadata\n : null;\n const groundDecalUi = metadata && typeof metadata === 'object' && !Array.isArray(metadata)\n ? (metadata as { groundDecalUi?: unknown }).groundDecalUi\n : null;\n return options.groundDecal?.isGroundDecalConfig(groundDecalUi) ? groundDecalUi : null;\n };\n const createProjectionNode = (\n editorScene: TDocument,\n gameObject: TGameObject,\n ): PlayableBabylonProjectionNode => {\n const node = createEditorSceneRuntimePreviewNode(editorScene, gameObject) as unknown as PlayableBabylonProjectionNode;\n if (options.groundDecal?.isGroundDecalConfig((gameObject as { groundDecal?: unknown }).groundDecal)) {\n node.asset = {\n id: `ground-decal-ui:${gameObject.id}`,\n metadata: {\n assetId: `ground-decal-ui:${gameObject.id}`,\n type: 'texture',\n groundDecalUi: structuredClone((gameObject as unknown as { groundDecal: TGroundDecal }).groundDecal),\n },\n };\n node.primitive = null;\n }\n primitiveProjectionInstancing.remember(node);\n return node;\n };\n\n return {\n createEditorGrid(BABYLON, scene, camera) {\n return createPlayableBabylonEditorGrid({\n babylon: BABYLON,\n scene,\n camera,\n name: options.gridName ?? 'fps-editor-grid',\n halfLineCount: 96,\n });\n },\n createEditorPreviewBabylonModule(BABYLON) {\n return primitiveProjectionInstancing.createPreviewBabylonModule(BABYLON);\n },\n createProjectionNodes(editorScene) {\n const nodes = editorScene.scene.gameObjects.map(gameObject => createProjectionNode(editorScene, gameObject as TGameObject));\n primitiveProjectionInstancing.sync(nodes);\n return nodes;\n },\n createProjectionNode,\n createSceneCameraPreviewRig(editorScene) {\n return createEditorSceneRuntimePreviewMainCameraRig(\n editorScene,\n options.defaultCamera,\n ) as PlayableBabylonSceneCameraPreviewRig | null;\n },\n async importEditorProjectionModel(context) {\n stats.importModelCalls += 1;\n publishStats();\n const groundDecalUi = readPreviewGroundDecal(context.asset);\n if (groundDecalUi && options.groundDecal) {\n return createGroundDecalProjectionResult(context, groundDecalUi, options.groundDecal);\n }\n const assetId = readEditorSceneRuntimePreviewAssetId(context.asset);\n if (!assetId) {\n stats.fallbackCount += 1;\n publishStats();\n return null;\n }\n const importPlan = resolveCachedImportPlan(context);\n if (!importPlan) {\n const kind = readEditorSceneRuntimePreviewAssetKind(context.asset) === 'texture' ? 'texture' : 'model';\n stats.fallbackCount += 1;\n publishStats();\n console.warn('[LocalEditor] Missing projection asset URL', createEditorSceneRuntimePreviewMissingAssetUrlDiagnostic(context.asset, kind));\n return null;\n }\n return await modelImporter(context) ?? null;\n },\n createEditorSceneLibraryAssetPreview(asset) {\n if (asset.kind !== 'texture') return undefined;\n const url = resolveEditorSceneRuntimePreviewAssetUrl(options.assetsModule, asset, 'texture');\n return url ? { kind: 'image', url, alt: asset.displayName, fit: 'contain' } : undefined;\n },\n createEditorSceneInspectorTextureAssets(assets) {\n return assets\n .filter(asset => asset.kind === 'texture')\n .flatMap((asset) => {\n const url = resolveEditorSceneRuntimePreviewAssetUrl(options.assetsModule, asset, 'texture');\n if (!url) return [];\n const environmentTexture = isEnvironmentTextureAsset(asset, url);\n return [{\n id: asset.assetId,\n label: asset.displayName || asset.assetId,\n url,\n meta: environmentTexture ? `${asset.assetId} · IBL` : asset.assetId,\n usage: environmentTexture ? 'environment' : 'material',\n capabilities: {\n materialTexture: !environmentTexture,\n environmentTexture,\n },\n }];\n });\n },\n resolveEditorSceneTextureRefUrl(assets, texture) {\n if (!texture || typeof texture !== 'object') return null;\n const textureAssetId = typeof texture.textureAssetId === 'string' ? texture.textureAssetId.trim() : '';\n if (textureAssetId) {\n const asset = assets.find(candidate => candidate.kind === 'texture' && candidate.assetId === textureAssetId);\n return asset ? resolveEditorSceneRuntimePreviewAssetUrl(options.assetsModule, asset, 'texture') ?? null : null;\n }\n const textureUrl = typeof texture.url === 'string' ? texture.url.trim() : '';\n return textureUrl || null;\n },\n };\n}\n\nasync function createGroundDecalProjectionResult<TGroundDecal>(\n context: PlayableBabylonProjectionImportContext,\n decal: TGroundDecal,\n hooks: FpsGameEditorProductProjectionGroundDecalHooks<TGroundDecal>,\n): Promise<PlayableBabylonProjectionImportResult> {\n const [{ MeshBuilder }, { StandardMaterial }, { Color3 }] = await Promise.all([\n import('@babylonjs/core/Meshes/meshBuilder'),\n import('@babylonjs/core/Materials/standardMaterial'),\n import('@babylonjs/core/Maths/math.color'),\n ]);\n const size = hooks.readSize(decal);\n const rendering = hooks.readRendering?.(decal) ?? null;\n const mesh = MeshBuilder.CreateGround(`${context.node.id}.groundDecalUiProjection`, {\n width: size.width,\n height: size.depth,\n }, context.scene);\n mesh.isPickable = true;\n mesh.receiveShadows = false;\n mesh.alphaIndex = rendering?.alphaIndex ?? 100;\n const mat = new StandardMaterial(`${context.node.id}.groundDecalUiProjectionMaterial`, context.scene);\n const { texture, ready } = hooks.createDynamicTexture(`${context.node.id}.groundDecalUiProjectionTexture`, context.scene, decal);\n await ready;\n mat.diffuseTexture = texture;\n mat.useAlphaFromDiffuseTexture = true;\n mat.diffuseColor = new Color3(1, 1, 1);\n mat.emissiveColor = new Color3(1, 1, 1);\n mat.specularColor = new Color3(0, 0, 0);\n mat.backFaceCulling = false;\n mat.disableLighting = true;\n if (typeof rendering?.diffuseTextureLevel === 'number' && Number.isFinite(rendering.diffuseTextureLevel)) {\n if (mat.diffuseTexture) mat.diffuseTexture.level = rendering.diffuseTextureLevel;\n }\n if (\n typeof rendering?.emissiveTextureLevel === 'number'\n && Number.isFinite(rendering.emissiveTextureLevel)\n && rendering.emissiveTextureLevel > 0\n ) {\n mat.emissiveTexture = texture;\n if (mat.emissiveTexture) mat.emissiveTexture.level = rendering.emissiveTextureLevel;\n }\n mesh.material = mat;\n return { meshes: [mesh], transformNodes: [], animationGroups: [] };\n}\n\nfunction isEnvironmentTextureAsset(asset: EditorSceneAssetLibraryItem, resolvedUrl: string): boolean {\n const metadata = asset.metadata && typeof asset.metadata === 'object' && !Array.isArray(asset.metadata)\n ? asset.metadata as Record<string, unknown>\n : {};\n if (metadata.textureUsage === 'environment' || metadata.usage === 'environment') return true;\n const capabilities = metadata.capabilities && typeof metadata.capabilities === 'object' && !Array.isArray(metadata.capabilities)\n ? metadata.capabilities as Record<string, unknown>\n : null;\n if (capabilities?.environmentTexture === true) return true;\n if (capabilities?.environmentTexture === false) return false;\n const candidates = [\n resolvedUrl,\n asset.displayName,\n asset.assetId,\n typeof metadata.relativePath === 'string' ? metadata.relativePath : '',\n typeof metadata.originalFileName === 'string' ? metadata.originalFileName : '',\n ];\n return candidates.some(value => /\\.(env|hdr|dds|ktx|ktx2)(?:[?#].*)?$/i.test(value));\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playable-product-rendering.js","sourceRoot":"","sources":["../src/playable-product-rendering.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"playable-product-rendering.js","sourceRoot":"","sources":["../src/playable-product-rendering.ts"],"names":[],"mappings":"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","sourcesContent":["import { assertEditorSceneRenderingProfileContract, createEditorSceneRenderingProfileDraftState, createEditorSceneStaticShadowArtifactDraftStore, isEditorSceneRenderingProfileDraftDirty, markEditorSceneRenderingProfileDraftSaved, normalizeEditorSceneRenderingProfile, resetEditorSceneRenderingProfileDraft, setEditorSceneRenderingProfileDraftConfig, setEditorSceneRenderingProfileDraftError } from '@fps-games/editor-playable-sdk';\nimport { createPlayableBabylonRenderingAlphaIndexMigrationPatch, createPlayableBabylonRenderingCapability } from './playable-babylon-rendering.js';\n\nexport interface FpsGameEditorProductRenderingRuntimeOptions<TDocument, TPatch> { initialConfig: unknown; initialStaticShadowArtifact?: unknown; getTextureAssets?: () => readonly any[]; getGameObjects(document: TDocument): any[]; createAlphaIndexMigrationPatch(input: { targetIds: string[]; renderingGroupId: 0 | 1 | 2 | 3; fromAlphaIndex: number; toAlphaIndex: number }): TPatch; resolveLanguage?(document: TDocument): 'zh' | 'en'; directionalLightNodeId?: string; isDirectionalLightEnabled?(document: TDocument): boolean; }\n\nexport function createFpsGameEditorProductRenderingRuntime<TDocument, TPatch>(options: FpsGameEditorProductRenderingRuntimeOptions<TDocument, TPatch>) {\n assertEditorSceneRenderingProfileContract(options.initialConfig);\n let state = createEditorSceneRenderingProfileDraftState(options.initialConfig);\n const staticDraft = createEditorSceneStaticShadowArtifactDraftStore(options.initialStaticShadowArtifact);\n const profileDraft = { isDirty: () => isEditorSceneRenderingProfileDraftDirty(state), get: () => state.draftConfig, markSaved(value: unknown = state.draftConfig) { state = markEditorSceneRenderingProfileDraftSaved(state, value); }, setError(error: unknown) { state = setEditorSceneRenderingProfileDraftError(state, error); }, clearError() { state.lastError = null; } };\n const capability = createPlayableBabylonRenderingCapability<TDocument, TPatch>({\n getConfig: profileDraft.get,\n setConfig(input: any) { assertEditorSceneRenderingProfileContract(input.config); const previous = normalizeEditorSceneRenderingProfile(state.draftConfig); state = setEditorSceneRenderingProfileDraftConfig(state, input.config); const documentPatch = createPlayableBabylonRenderingAlphaIndexMigrationPatch(input, previous, { getAlphaIndexMigrationGameObjects: options.getGameObjects, createAlphaIndexMigrationPatch: options.createAlphaIndexMigrationPatch }); return documentPatch ? { documentPatch } : undefined; },\n resetConfig() { state = resetEditorSceneRenderingProfileDraft(state); }, isDirty: () => profileDraft.isDirty() || staticDraft.isDirty(), getPanelState: () => state, getTextureAssets: () => options.getTextureAssets?.() ?? [], getLanguage: ({ document }: any) => options.resolveLanguage?.(document) ?? 'zh', getStaticShadowArtifact: staticDraft.get, setStaticShadowArtifact: ({ artifact }: any) => { staticDraft.set(artifact); }, shadowPreview: { directionalLightNodeId: options.directionalLightNodeId ?? 'sun_light', enabled: ({ document }: any) => options.isDirectionalLightEnabled?.(document) ?? true },\n });\n return { capability, profileDraft, staticShadowDraft: { isDirty: staticDraft.isDirty, get: staticDraft.get, markSaved: staticDraft.markSaved, setError: profileDraft.setError, clearError: profileDraft.clearError }, getProfile: () => normalizeEditorSceneRenderingProfile(state.draftConfig), getState: () => state, setConfig(config: unknown) { assertEditorSceneRenderingProfileContract(config); state = setEditorSceneRenderingProfileDraftConfig(state, config); }, reset() { state = resetEditorSceneRenderingProfileDraft(state); staticDraft.reset(); }, isDirty: () => profileDraft.isDirty() || staticDraft.isDirty() };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playable-product-scene-capabilities.d.ts","sourceRoot":"","sources":["../src/playable-product-scene-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yCAAyC,EACzC,yCAAyC,EACzC,qCAAqC,EACrC,8CAA8C,EAC9C,6CAA6C,EAC7C,mCAAmC,EACnC,sCAAsC,EACtC,wCAAwC,EAExC,wCAAwC,EACxC,sCAAsC,EACtC,uCAAuC,EACvC,sCAAsC,EACtC,8CAA8C,EAC9C,yCAAyC,EACzC,6BAA6B,EAC9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACV,sCAAsC,EACtC,0CAA0C,EAC3C,MAAM,oCAAoC,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"playable-product-scene-capabilities.d.ts","sourceRoot":"","sources":["../src/playable-product-scene-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yCAAyC,EACzC,yCAAyC,EACzC,qCAAqC,EACrC,8CAA8C,EAC9C,6CAA6C,EAC7C,mCAAmC,EACnC,sCAAsC,EACtC,wCAAwC,EAExC,wCAAwC,EACxC,sCAAsC,EACtC,uCAAuC,EACvC,sCAAsC,EACtC,8CAA8C,EAC9C,yCAAyC,EACzC,6BAA6B,EAC9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACV,sCAAsC,EACtC,0CAA0C,EAC3C,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAQL,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAE1B,KAAK,kCAAkC,EACxC,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,+CAA+C,CAAC,SAAS,EAAE,MAAM;IAChF,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,WAAW,EAAE,GAAG,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;IACf,eAAe,EAAE,GAAG,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC;IACZ,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClE,sBAAsB,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC;IACxC,uBAAuB,CAAC,EAAE,SAAS,GAAG,EAAE,CAAC;IACzC,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;KAAE,CAAC;IAC7N,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CACpC;AAED,wBAAgB,8CAA8C,CAAC,SAAS,EAAE,MAAM,SAAS,2BAA2B,EAClH,KAAK,EAAE,+CAA+C,CAAC,SAAS,EAAE,MAAM,CAAC,mDAuG1E;AAED,MAAM,WAAW,wCAAwC,CACvD,SAAS,EACT,MAAM,EACN,MAAM,GAAG,OAAO,CAChB,SAAQ,IAAI,CACV,qCAAqC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAC9D,gBAAgB,GAChB,mBAAmB,GACnB,oBAAoB,GACpB,mBAAmB,GACnB,sBAAsB,GACtB,+BAA+B,CAClC;CAAG;AAEN,MAAM,WAAW,oCAAoC,CACnD,SAAS,EACT,MAAM,EACN,MAAM,GAAG,OAAO;IAEhB,eAAe,EAAE,qCAAqC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClF,YAAY,EAAE,mCAAmC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9E;AAED,MAAM,WAAW,yCAAyC,CACxD,SAAS,EACT,MAAM,EACN,MAAM,GAAG,OAAO;IAEhB,QAAQ,EAAE,wCAAwC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9E,SAAS,CAAC,EAAE,8CAA8C,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9E,SAAS,CAAC,EAAE,sCAAsC,CAAC,SAAS,CAAC,CAAC;IAC9D,SAAS,CAAC,EAAE,sCAAsC,CAAC,SAAS,CAAC,CAAC;IAC9D,YAAY,CAAC,EAAE,yCAAyC,CAAC,SAAS,CAAC,CAAC;IACpE,YAAY,CAAC,EAAE,mCAAmC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IAC9F,WAAW,CAAC,EAAE,wCAAwC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1E,YAAY,CAAC,EAAE,yCAAyC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpF,WAAW,CAAC,EAAE,wCAAwC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1E,iBAAiB,CAAC,EAAE,8CAA8C,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACtF,UAAU,CAAC,EAAE,uCAAuC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACxE,gBAAgB,CAAC,EAAE,6CAA6C,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACpF,YAAY,CAAC,EAAE,yCAAyC,CAAC,SAAS,CAAC,CAAC;IACpE,SAAS,CAAC,EAAE,sCAAsC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;CACvE;AAED,wBAAgB,0CAA0C,CACxD,SAAS,EACT,MAAM,EACN,MAAM,GAAG,OAAO,EAEhB,KAAK,EAAE,yCAAyC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,GAC1E,oCAAoC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAuBjE;AAED,MAAM,WAAW,qCAAqC,CACpD,SAAS,SAAS,mBAAmB,CAAC,WAAW,CAAC,EAClD,WAAW,SAAS,qBAAqB,EACzC,MAAM,EACN,MAAM,SAAS,2BAA2B,EAC1C,QAAQ;IAER,KAAK,EAAE,kCAAkC,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5F,QAAQ,EAAE,IAAI,CACZ,wCAAwC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EACnE,oBAAoB,GAAG,mBAAmB,GAAG,sBAAsB,CACpE,CAAC;IACF,SAAS,CAAC,EAAE,8CAA8C,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9E,mBAAmB,CAAC,EAAE,MAAM,QAAQ,CAAC;IACrC,YAAY,CAAC,EAAE,mCAAmC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;IAC9F,YAAY,CAAC,EAAE,IAAI,CACjB,yCAAyC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EACpE,wBAAwB,GAAG,wBAAwB,GAAG,eAAe,CACtE,CAAC;IACF,WAAW,CAAC,EAAE,wCAAwC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1E,gBAAgB,CAAC,EAAE,6CAA6C,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACpF,YAAY,CAAC,EAAE,yCAAyC,CAAC,SAAS,CAAC,CAAC;IACpE,SAAS,CAAC,EAAE,sCAAsC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACtE,OAAO,CAAC,EAAE,sCAAsC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7E;AAED,KAAK,oCAAoC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,WAAW,CAChF,0CAA0C,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,WAAW,CAAC,CACnF,CAAC;AAEF,MAAM,WAAW,sCAAsC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAE,SAAQ,IAAI,CAC7F,0CAA0C,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EACrE,iBAAiB,GAAG,cAAc,GAAG,oBAAoB,GAAG,cAAc,GAAG,WAAW,CACzF;IACC,kBAAkB,EAAE,IAAI,CACtB,0CAA0C,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,oBAAoB,CAAC,EAC3F,SAAS,CACV,CAAC;IACF,YAAY,EAAE,IAAI,CAChB,0CAA0C,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,cAAc,CAAC,EACrF,cAAc,GAAG,kBAAkB,GAAG,WAAW,CAClD,CAAC;IACF,SAAS,CAAC,EAAE,IAAI,CACd,oCAAoC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAC/D,iBAAiB,GAAG,2BAA2B,GAAG,gBAAgB,CACnE,GAAG;QACF,yBAAyB,CAAC,EAAE,CAC1B,aAAa,EAAE,UAAU,CAAC,WAAW,CAAC,oCAAoC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvI,mCAAmC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/F,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC1B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,oCAAoC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;YACvI,OAAO,EAAE,6BAA6B,CAAC,SAAS,CAAC,CAAC;SACnD,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,gCAAgC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CACzE,SAAQ,oCAAoC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC;IACvE,iBAAiB,CACf,OAAO,EAAE,sCAAsC,CAAC,SAAS,CAAC,GACzD,0CAA0C,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1E;AAED,wBAAgB,sCAAsC,CACpD,SAAS,SAAS,mBAAmB,CAAC,WAAW,CAAC,EAClD,WAAW,SAAS,qBAAqB,EACzC,MAAM,EACN,MAAM,SAAS,2BAA2B,EAC1C,QAAQ,EAER,KAAK,EAAE,qCAAqC,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,GAC7F,gCAAgC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAmI7D"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import { EDITOR_SCENE_STATIC_SHADOW_BAKE_ACTION_PATH, createEditorSceneSerializedMultiTransformPatch, createEditorSceneTransformBatchPatch, createEditorSceneTransformPatch, resolveEditorSceneLightingPreviewProfile, toEditorSceneLocalTransformFromWorld, } from '@fps-games/editor-playable-sdk';
|
|
1
|
+
import { EDITOR_SCENE_STATIC_SHADOW_BAKE_ACTION_PATH, createEditorSceneSerializedMultiTransformPatch, createEditorSceneTransformBatchPatch, createEditorSceneTransformPatch, resolveEditorSceneLightingPreviewProfile, resolveEditorSceneMaterialSlotReimportDiff, toEditorSceneLocalTransformFromWorld, } from '@fps-games/editor-playable-sdk';
|
|
2
2
|
export function createFpsGameEditorPlayableProjectHostAssembly(input) {
|
|
3
3
|
let assets = [];
|
|
4
4
|
const scene = input.scene;
|
|
5
5
|
const projection = input.projection;
|
|
6
|
+
const setAssets = (nextAssets) => {
|
|
7
|
+
assets = nextAssets;
|
|
8
|
+
input.rendering.setTextures(projection.createEditorSceneInspectorTextureAssets(assets));
|
|
9
|
+
return assets;
|
|
10
|
+
};
|
|
6
11
|
return createFpsGameEditorProductHostAssembly({
|
|
7
12
|
scene,
|
|
8
13
|
document: {
|
|
@@ -14,7 +19,49 @@ export function createFpsGameEditorPlayableProjectHostAssembly(input) {
|
|
|
14
19
|
createPatchFromAsset: (asset, request) => ({ label: `Add ${request?.name?.trim() || asset.displayName}`, patch: { kind: 'game-object.create-from-asset', assetItem: asset, ...(request?.name?.trim() ? { name: request.name.trim() } : {}), ...(request?.placement ? { placement: request.placement } : {}) } }),
|
|
15
20
|
},
|
|
16
21
|
lifecycle: {
|
|
17
|
-
prepareDocument: (document, nextAssets) =>
|
|
22
|
+
prepareDocument: (document, nextAssets) => input.prepareDocument(document, setAssets(nextAssets)),
|
|
23
|
+
hydrateDocumentAssets: (document, nextAssets) => {
|
|
24
|
+
const hydratedAssets = setAssets(nextAssets);
|
|
25
|
+
return input.projectServices.hydrateDocumentAssets?.(document, hydratedAssets) ?? document;
|
|
26
|
+
},
|
|
27
|
+
resolveUpdatedAssetSnapshot: (nextAssets, update) => {
|
|
28
|
+
const asset = nextAssets.find(candidate => candidate.assetId === update.assetId || candidate.id === update.assetId);
|
|
29
|
+
if (!asset)
|
|
30
|
+
return null;
|
|
31
|
+
const contentHash = typeof asset.metadata?.contentHash === 'string'
|
|
32
|
+
? asset.metadata.contentHash
|
|
33
|
+
: undefined;
|
|
34
|
+
return {
|
|
35
|
+
assetId: asset.assetId,
|
|
36
|
+
...(contentHash ? { contentHash } : {}),
|
|
37
|
+
};
|
|
38
|
+
},
|
|
39
|
+
reconcileUpdatedAsset: (document, update) => {
|
|
40
|
+
const diffs = document.scene.gameObjects
|
|
41
|
+
.map(gameObject => resolveEditorSceneMaterialSlotReimportDiff(document, gameObject))
|
|
42
|
+
.filter(diff => diff.assetId === update.assetId);
|
|
43
|
+
return {
|
|
44
|
+
document: scene.ensureEnvironmentDefaults(document),
|
|
45
|
+
reconciledBindingCount: diffs.reduce((count, diff) => count + diff.bindingRemaps.length + diff.bindingRemapIssues.length, 0),
|
|
46
|
+
warnings: diffs.flatMap(diff => [
|
|
47
|
+
...diff.bindingRemapIssues.map(issue => ({
|
|
48
|
+
code: issue.reason,
|
|
49
|
+
gameObjectId: diff.gameObjectId,
|
|
50
|
+
slotId: issue.fromSlotId,
|
|
51
|
+
materialAssetId: issue.materialAssetId,
|
|
52
|
+
candidateSlotIds: issue.candidateSlotIds,
|
|
53
|
+
})),
|
|
54
|
+
...diff.issues
|
|
55
|
+
.filter(issue => issue.reason === 'source-material-changed')
|
|
56
|
+
.map(issue => ({
|
|
57
|
+
code: issue.reason,
|
|
58
|
+
gameObjectId: diff.gameObjectId,
|
|
59
|
+
...(issue.slotId ? { slotId: issue.slotId } : {}),
|
|
60
|
+
...(issue.materialAssetId ? { materialAssetId: issue.materialAssetId } : {}),
|
|
61
|
+
})),
|
|
62
|
+
]),
|
|
63
|
+
};
|
|
64
|
+
},
|
|
18
65
|
summarize: input.projectServices.summarize,
|
|
19
66
|
},
|
|
20
67
|
getInspectorContext: () => ({ textureAssets: projection.createEditorSceneInspectorTextureAssets(assets) }),
|
|
@@ -37,7 +84,7 @@ export function createFpsGameEditorPlayableProjectHostAssembly(input) {
|
|
|
37
84
|
runtime: {
|
|
38
85
|
localTestActions: input.runtimeWindow.parent === input.runtimeWindow,
|
|
39
86
|
authoring: { drivers: [input.sceneSource.createDriver()] },
|
|
40
|
-
persistenceAdapter: { loadAuthoringSource: async () => { const loaded = await input.sceneSource.load(); return { source: loaded.source, document: loaded.document, summary: loaded.summary }; }, loadAssets: input.sceneSource.loadAssets },
|
|
87
|
+
persistenceAdapter: { loadAuthoringSource: async () => { const loaded = await input.sceneSource.load(); return { source: loaded.source, document: loaded.document, assets: loaded.assets, summary: loaded.summary }; }, loadAssets: input.sceneSource.loadAssets },
|
|
41
88
|
worldAdapter: {
|
|
42
89
|
loadPreviewEngine: async () => projection.createEditorPreviewBabylonModule(await input.loadBabylon()),
|
|
43
90
|
createPreviewEngine: (babylon, canvas) => new babylon.Engine(canvas, true, { preserveDrawingBuffer: true, stencil: true, antialias: true }),
|