@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":"ground-decal.js","sourceRoot":"","sources":["../../src/product/ground-decal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ground-decal.js","sourceRoot":"","sources":["../../src/product/ground-decal.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n DocumentCommand,\n InspectorProperty,\n InspectorSection,\n InspectorValidationResult,\n} from '../core-contracts/index';\nimport {\n createEditorSceneReadonlyInspectorProperty,\n} from '../inspector/index';\nimport {\n findEditorSceneTransform,\n type EditorSceneComponent,\n type EditorSceneDocument,\n type EditorSceneGameObject,\n type EditorSceneVec3,\n} from '../document/index';\n\nexport const PLAYABLE_GROUND_DECAL_TEXTURE_TINT = { r: 1, g: 1, b: 1, a: 1 } as const;\n\nexport type PlayableGroundDecalUiKind = string;\n\nexport interface PlayableGroundDecalVec3 {\n x: number;\n y: number;\n z: number;\n}\n\nexport interface PlayableGroundDecalUiColor {\n r: number;\n g: number;\n b: number;\n a?: number;\n}\n\nexport interface PlayableGroundDecalUiRect {\n x: number;\n z: number;\n width: number;\n depth: number;\n}\n\nexport interface PlayableGroundDecalUiLayerBase {\n id: string;\n role: string;\n kind: string;\n rect: PlayableGroundDecalUiRect;\n enabled?: boolean;\n opacity?: number;\n zOrder?: number;\n}\n\nexport interface PlayableGroundDecalUiTextureLayer extends PlayableGroundDecalUiLayerBase {\n kind: 'texture';\n textureId: string;\n tint?: PlayableGroundDecalUiColor;\n}\n\nexport interface PlayableGroundDecalUiColorLayer extends PlayableGroundDecalUiLayerBase {\n kind: 'color';\n color: PlayableGroundDecalUiColor;\n}\n\nexport interface PlayableGroundDecalUiTextLayer extends PlayableGroundDecalUiLayerBase {\n kind: 'text';\n text: {\n value: string;\n color: PlayableGroundDecalUiColor;\n fontFamily?: string;\n fontSize?: number;\n fontWeight?: string | number;\n strokeColor?: PlayableGroundDecalUiColor;\n strokeWidth?: number;\n align?: string;\n baseline?: string;\n };\n}\n\nexport interface PlayableGroundDecalUiProgressLayer extends PlayableGroundDecalUiLayerBase {\n kind: 'progress';\n color: PlayableGroundDecalUiColor;\n direction?: string;\n editorPreviewPercent?: number;\n}\n\nexport type PlayableGroundDecalUiLayer =\n | PlayableGroundDecalUiTextureLayer\n | PlayableGroundDecalUiColorLayer\n | PlayableGroundDecalUiTextLayer\n | PlayableGroundDecalUiProgressLayer;\n\nexport interface PlayableGroundDecalUiConfig {\n uiKind: PlayableGroundDecalUiKind;\n size: {\n width: number;\n depth: number;\n };\n layers: PlayableGroundDecalUiLayer[];\n mask?: unknown;\n rendering?: {\n textureWidth?: number;\n textureHeight?: number;\n };\n aspectSourceLayerId?: string;\n}\n\nexport type PlayableGroundDecalLayoutLayerPatch = {\n id: string;\n rect: PlayableGroundDecalUiRect;\n};\n\nexport type PlayableGroundDecalLayerPatchField =\n | 'rect'\n | 'textureId'\n | 'text.value'\n | 'color'\n | 'color.a'\n | 'tint'\n | 'tint.a'\n | 'text.color'\n | 'text.color.a'\n | 'editorPreviewPercent';\n\nexport interface PlayableGroundDecalInspectorTextureAsset {\n id: string;\n label: string;\n url: string;\n meta?: string;\n}\n\nexport interface PlayableGroundDecalInspectorContext {\n textureAssets?: readonly PlayableGroundDecalInspectorTextureAsset[];\n}\n\nexport type PlayableGroundDecalDocumentInspectorPropertyFactory<TDocument, TNodeKind> = (\n document: TDocument | null,\n nodeKind: TNodeKind,\n property: Omit<InspectorProperty<TDocument>, 'readOnly' | 'persistence' | 'validate'>,\n) => InspectorProperty<TDocument>;\n\nexport interface PlayableGroundDecalLayerPairActionOptions {\n addActionId: string;\n removeActionId: string;\n addPath?: string;\n removePath?: string;\n addLabel?: string;\n removeLabel?: string;\n addTooltip?: string;\n removeTooltip?: string;\n}\n\nexport type PlayableGroundDecalEditorSceneGameObject<TConfig extends PlayableGroundDecalUiConfig = PlayableGroundDecalUiConfig> =\n EditorSceneGameObject & {\n groundDecal?: Partial<TConfig> | null;\n };\n\nexport type PlayableGroundDecalEditorSceneDocument<\n TGameObject extends PlayableGroundDecalEditorSceneGameObject = PlayableGroundDecalEditorSceneGameObject,\n> = EditorSceneDocument<TGameObject>;\n\nexport interface PlayableGroundDecalDocumentServices<\n TConfig extends PlayableGroundDecalUiConfig = PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig> = PlayableGroundDecalEditorSceneGameObject<TConfig>,\n> {\n defaultUiKind?: PlayableGroundDecalUiKind;\n isKnownUiKind?: (value: string) => boolean;\n isProjectEditableLayer?: (layer: PlayableGroundDecalUiLayer) => boolean;\n isLayoutEditableLayer?: (layer: PlayableGroundDecalUiLayer) => boolean;\n createDefaultGroundDecal(uiKind: PlayableGroundDecalUiKind): TConfig;\n isGroundDecalConfig(value: unknown): value is TConfig;\n canShowGroundDecalInspector(gameObject: TGameObject): boolean;\n isGroundDecalUiGameObject(gameObject: TGameObject): gameObject is TGameObject & { groundDecal: TConfig };\n}\n\nexport interface PlayableGroundDecalInspectorServices<\n TDocument,\n TNodeKind,\n TTarget,\n TContext extends PlayableGroundDecalInspectorContext = PlayableGroundDecalInspectorContext,\n> {\n defaultUiKind?: PlayableGroundDecalUiKind;\n isKnownUiKind?: (value: string) => boolean;\n isProjectEditableLayer?: (layer: PlayableGroundDecalUiLayer) => boolean;\n isLayoutEditableLayer?: (layer: PlayableGroundDecalUiLayer) => boolean;\n isEditableTextureLayer?: (layer: PlayableGroundDecalUiLayer) => layer is PlayableGroundDecalUiTextureLayer;\n isEditableColorLayer?: (layer: PlayableGroundDecalUiLayer) => layer is PlayableGroundDecalUiColorLayer | PlayableGroundDecalUiProgressLayer;\n isEditableTextLayer?: (layer: PlayableGroundDecalUiLayer) => layer is PlayableGroundDecalUiTextLayer;\n useUniformLayoutScaleMode?: (layer: PlayableGroundDecalUiLayer) => boolean;\n createLayerLabel?: (layer: PlayableGroundDecalUiLayer) => string;\n createUiKindLabel?: (uiKind: PlayableGroundDecalUiKind) => string;\n canShowLayerPairActions?: (decal: PlayableGroundDecalUiConfig) => boolean;\n createLayerPairDisabledReason?: (input: {\n decal: PlayableGroundDecalUiConfig;\n action: 'add' | 'remove';\n pairCount: number;\n }) => string | undefined;\n createDefaultGroundDecal(uiKind: PlayableGroundDecalUiKind): PlayableGroundDecalUiConfig;\n createDocumentInspectorProperty: PlayableGroundDecalDocumentInspectorPropertyFactory<TDocument, TNodeKind>;\n normalizeValue(path: string, value: unknown): unknown;\n findTarget(document: TDocument, targetId: string): TTarget | null;\n getTargetId(target: TTarget): string;\n getTargetNodeKind(target: TTarget): TNodeKind;\n getTargetGroundDecal(target: TTarget): Partial<PlayableGroundDecalUiConfig> | null | undefined;\n canShowTarget(target: TTarget): boolean;\n isUiTarget?(target: TTarget): boolean;\n canPatchMultiField(document: TDocument, targetId: string, path: string, value: unknown): boolean;\n findTextureAsset?(\n context: TContext,\n textureId: string | null | undefined,\n ): PlayableGroundDecalInspectorTextureAsset | null;\n resolveTextureAssetUrl?(textureId: string | null | undefined): string | null | undefined;\n getMaterialText?(language: 'zh' | 'en'): unknown;\n createTexturePickerControlOptions?(\n context: TContext,\n text: unknown,\n currentTextureId: string | null | undefined,\n currentTexture: PlayableGroundDecalInspectorTextureAsset | null,\n ): InspectorProperty<TDocument>['controlOptions'];\n getLayerPairs?(decal: PlayableGroundDecalUiConfig): readonly unknown[];\n canAddLayerPair?(decal: PlayableGroundDecalUiConfig): boolean;\n canRemoveLayerPair?(decal: PlayableGroundDecalUiConfig): boolean;\n layerPairActions?: PlayableGroundDecalLayerPairActionOptions;\n}\n\nexport interface PlayableGroundDecalDocumentServiceBridgeInput<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n> extends Pick<\n PlayableGroundDecalDocumentServices<TConfig, TGameObject>,\n | 'defaultUiKind'\n | 'isKnownUiKind'\n | 'isProjectEditableLayer'\n | 'isLayoutEditableLayer'\n | 'createDefaultGroundDecal'\n | 'isGroundDecalConfig'\n > {\n canShowGroundDecalInspector(gameObject: TGameObject): boolean;\n isGroundDecalUiGameObject(gameObject: TGameObject): gameObject is TGameObject & { groundDecal: TConfig };\n}\n\nexport interface PlayableGroundDecalInspectorServiceBridgeInput<\n TDocument,\n TNodeKind,\n TTarget,\n TContext extends PlayableGroundDecalInspectorContext,\n> {\n policy: Pick<\n PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n 'createDefaultGroundDecal'\n > & Partial<PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>>;\n createDocumentInspectorProperty: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>['createDocumentInspectorProperty'];\n normalizeValue: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>['normalizeValue'];\n findTarget: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>['findTarget'];\n getTargetId: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>['getTargetId'];\n getTargetNodeKind: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>['getTargetNodeKind'];\n getTargetGroundDecal: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>['getTargetGroundDecal'];\n canShowTarget: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>['canShowTarget'];\n isUiTarget?: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>['isUiTarget'];\n canPatchMultiField: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>['canPatchMultiField'];\n findTextureAsset?: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>['findTextureAsset'];\n resolveTextureAssetUrl?: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>['resolveTextureAssetUrl'];\n getMaterialText?: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>['getMaterialText'];\n createTexturePickerControlOptions?: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>['createTexturePickerControlOptions'];\n}\n\nexport interface PlayableGroundDecalDocumentBridge<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n TDocument extends PlayableGroundDecalEditorSceneDocument<TGameObject>,\n> {\n services: PlayableGroundDecalDocumentServices<TConfig, TGameObject>;\n normalizeLayoutPatchValue(value: unknown): PlayableGroundDecalLayoutLayerPatch[] | null;\n isLayoutPatchCompatibleWithDecal(\n decal: TConfig,\n patches: readonly PlayableGroundDecalLayoutLayerPatch[],\n ): boolean;\n canPatchMultiField(document: TDocument, targetId: string, path: string, value: unknown): boolean;\n patchLayout(document: TDocument, targetId: string, value: unknown): TDocument;\n patchKind(document: TDocument, targetId: string, value: unknown): TDocument;\n patchInspectorField(document: TDocument, targetId: string, path: string, value: unknown): TDocument | null;\n normalizeGameObject(gameObject: TGameObject): TGameObject;\n replaceUi(document: TDocument, targetId: string, groundDecal: TConfig): TDocument;\n normalizeScaleAfterFieldPatch(\n document: TDocument,\n targetId: string,\n path: string,\n value: unknown,\n ): TDocument;\n normalizeScalesForCommand<TPatch>(\n document: TDocument,\n command: DocumentCommand<TDocument, TPatch>,\n ): TDocument;\n normalizeScales(document: TDocument, targetId?: string, uniformOverride?: number | null): TDocument;\n mergeDefaults(groundDecal: Partial<TConfig> | null | undefined): TConfig;\n}\n\nexport function createPlayableGroundDecalDocumentServices<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n>(\n input: PlayableGroundDecalDocumentServiceBridgeInput<TConfig, TGameObject>,\n): PlayableGroundDecalDocumentServices<TConfig, TGameObject> {\n return { ...input };\n}\n\nexport function createPlayableGroundDecalDocumentBridge<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n TDocument extends PlayableGroundDecalEditorSceneDocument<TGameObject> = PlayableGroundDecalEditorSceneDocument<TGameObject>,\n>(\n input: PlayableGroundDecalDocumentServiceBridgeInput<TConfig, TGameObject>,\n): PlayableGroundDecalDocumentBridge<TConfig, TGameObject, TDocument> {\n const services = createPlayableGroundDecalDocumentServices(input);\n return {\n services,\n normalizeLayoutPatchValue: value => normalizePlayableGroundDecalLayoutPatchValue(value, services),\n isLayoutPatchCompatibleWithDecal: (decal, patches) => (\n isPlayableGroundDecalLayoutPatchCompatibleWithDecal(decal, patches, services)\n ),\n canPatchMultiField: (document, targetId, path, value) => (\n canPatchPlayableEditorSceneGroundDecalMultiField(document, targetId, path, value, services)\n ),\n patchLayout: (document, targetId, value) => (\n patchPlayableEditorSceneGroundDecalLayout(document, targetId, value, services)\n ),\n patchKind: (document, targetId, value) => (\n patchPlayableEditorSceneGroundDecalKind(document, targetId, value, services)\n ),\n patchInspectorField: (document, targetId, path, value) => (\n patchPlayableEditorSceneGroundDecalInspectorField(document, targetId, path, value, services)\n ),\n normalizeGameObject: gameObject => normalizePlayableEditorSceneGroundDecalGameObject(gameObject, services),\n replaceUi: (document, targetId, groundDecal) => (\n replacePlayableEditorSceneGroundDecalUi(document, targetId, groundDecal, services)\n ),\n normalizeScaleAfterFieldPatch: (document, targetId, path, value) => (\n normalizePlayableGroundDecalUiScaleAfterFieldPatch(document, targetId, path, value, services)\n ),\n normalizeScalesForCommand: (document, command) => (\n normalizePlayableGroundDecalUiScalesForCommand(document, command, services)\n ),\n normalizeScales: (document, targetId, uniformOverride) => (\n normalizePlayableGroundDecalUiScales(document, services, targetId, uniformOverride)\n ),\n mergeDefaults: groundDecal => mergePlayableGroundDecalDefaults(\n groundDecal,\n services.createDefaultGroundDecal,\n services,\n ),\n };\n}\n\nexport function createPlayableGroundDecalInspectorServices<\n TDocument,\n TNodeKind,\n TTarget,\n TContext extends PlayableGroundDecalInspectorContext,\n>(\n input: PlayableGroundDecalInspectorServiceBridgeInput<TDocument, TNodeKind, TTarget, TContext>,\n): PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext> {\n return {\n ...input.policy,\n createDocumentInspectorProperty: input.createDocumentInspectorProperty,\n normalizeValue: input.normalizeValue,\n findTarget: input.findTarget,\n getTargetId: input.getTargetId,\n getTargetNodeKind: input.getTargetNodeKind,\n getTargetGroundDecal: input.getTargetGroundDecal,\n canShowTarget: input.canShowTarget,\n isUiTarget: input.isUiTarget,\n canPatchMultiField: input.canPatchMultiField,\n findTextureAsset: input.findTextureAsset,\n resolveTextureAssetUrl: input.resolveTextureAssetUrl,\n getMaterialText: input.getMaterialText,\n createTexturePickerControlOptions: input.createTexturePickerControlOptions,\n };\n}\n\nconst PLAYABLE_GROUND_DECAL_UI_EDITOR_PROGRESS_PERCENT = 75;\n\nexport function resolvePlayableGroundDecalUiInspectorScale(path: string, value: unknown): number | null {\n if (path === 'transform.scale') {\n const scale = value as Partial<PlayableGroundDecalVec3> | null;\n if (!scale || typeof scale !== 'object') return null;\n return resolvePlayableGroundDecalUniformScaleFromVec3({\n x: typeof scale.x === 'number' ? scale.x : 1,\n y: typeof scale.y === 'number' ? scale.y : 1,\n z: typeof scale.z === 'number' ? scale.z : 1,\n });\n }\n if (!/^transform\\.scale\\.(x|y|z)$/.test(path)) return null;\n if (typeof value !== 'number' || !Number.isFinite(value)) return null;\n return Math.max(0.001, Math.abs(value));\n}\n\nexport function normalizePlayableGroundDecalLayoutPatchValue(\n value: unknown,\n options: Pick<PlayableGroundDecalDocumentServices, 'isLayoutEditableLayer'> = {},\n): PlayableGroundDecalLayoutLayerPatch[] | null {\n const source = readPlayableGroundDecalRecord(value);\n const layers = Array.isArray(value)\n ? value\n : source && Array.isArray(source.layers)\n ? source.layers\n : null;\n if (!layers) return null;\n const normalized = layers\n .map((layer, index) => normalizePlayableGroundDecalLayoutLayerPatch(layer, index, options))\n .filter((layer): layer is PlayableGroundDecalLayoutLayerPatch => !!layer);\n return normalized.length > 0 ? normalized : null;\n}\n\nexport function normalizePlayableGroundDecalLayoutLayerPatch(\n value: unknown,\n index: number,\n options: Pick<PlayableGroundDecalDocumentServices, 'isLayoutEditableLayer'> = {},\n): PlayableGroundDecalLayoutLayerPatch | null {\n const source = readPlayableGroundDecalRecord(value);\n if (!source) return null;\n if (!isPlayableGroundDecalLayoutEditableLayer(source as unknown as PlayableGroundDecalUiLayer, options)) return null;\n const id = readPlayableGroundDecalString(source.id) ?? `layer_${index}`;\n const rect = normalizePlayableGroundDecalLayoutRect(source.rect);\n return rect ? { id, rect } : null;\n}\n\nexport function normalizePlayableGroundDecalLayoutRect(value: unknown): PlayableGroundDecalUiRect | null {\n const source = readPlayableGroundDecalRecord(value);\n if (!source) return null;\n const x = readPlayableGroundDecalFiniteNumber(source.x);\n const z = readPlayableGroundDecalFiniteNumber(source.z);\n const width = readPlayableGroundDecalPositiveFiniteNumber(source.width);\n const depth = readPlayableGroundDecalPositiveFiniteNumber(source.depth);\n return x == null || z == null || width == null || depth == null\n ? null\n : { x, z, width, depth };\n}\n\nexport function readPlayableGroundDecalFiniteNumber(value: unknown): number | null {\n return typeof value === 'number' && Number.isFinite(value) ? value : null;\n}\n\nexport function readPlayableGroundDecalPositiveFiniteNumber(value: unknown): number | null {\n return typeof value === 'number' && Number.isFinite(value) && value > 0 ? value : null;\n}\n\nexport function validatePlayableGroundDecalInspectorField(\n path: string,\n value: unknown,\n): InspectorValidationResult | null {\n if (isPlayableGroundDecalLayerRectPath(path)) {\n return normalizePlayableGroundDecalLayoutRect(value)\n ? { ok: true, value }\n : { ok: false, message: `Invalid value for scene node field: ${path}.` };\n }\n if (isPlayableGroundDecalLayerTexturePath(path)) {\n return typeof value === 'string' && value.trim().length > 0\n ? { ok: true, value: value.trim() }\n : { ok: false, message: `Invalid value for scene node field: ${path}.` };\n }\n if (isPlayableGroundDecalLayerTextValuePath(path)) {\n return typeof value === 'string'\n ? { ok: true, value }\n : { ok: false, message: `Invalid value for scene node field: ${path}.` };\n }\n if (\n isPlayableGroundDecalLayerColorPath(path)\n || isPlayableGroundDecalLayerTextureTintPath(path)\n || isPlayableGroundDecalLayerTextColorPath(path)\n ) {\n const color = normalizePlayableGroundDecalColorValue(value);\n return color\n ? { ok: true, value: color }\n : { ok: false, message: `Invalid value for scene node field: ${path}.` };\n }\n if (\n isPlayableGroundDecalLayerColorAlphaPath(path)\n || isPlayableGroundDecalLayerTextureTintAlphaPath(path)\n || isPlayableGroundDecalLayerTextColorAlphaPath(path)\n ) {\n const alpha = normalizePlayableGroundDecalAlphaValue(value);\n return alpha !== null\n ? { ok: true, value: alpha }\n : { ok: false, message: `Invalid value for scene node field: ${path}.` };\n }\n if (isPlayableGroundDecalLayerProgressPreviewPercentPath(path)) {\n const percent = normalizePlayableGroundDecalProgressPreviewPercentValue(value);\n return percent !== null\n ? { ok: true, value: percent }\n : { ok: false, message: `Invalid value for scene node field: ${path}.` };\n }\n if (isPlayableGroundDecalRenderingTextureDimensionPath(path)) {\n const dimension = normalizePlayableGroundDecalTextureDimension(value);\n return dimension !== null\n ? { ok: true, value: dimension }\n : { ok: false, message: `Invalid value for scene node field: ${path}.` };\n }\n return null;\n}\n\nexport function parsePlayableGroundDecalLayerPatchPath(\n path: string,\n): { index: number; field: PlayableGroundDecalLayerPatchField } | null {\n const match = path.match(/^groundDecal\\.layers\\.(\\d+)\\.(rect|textureId|text\\.value|color|color\\.a|tint|tint\\.a|text\\.color|text\\.color\\.a|editorPreviewPercent)$/);\n if (!match) return null;\n const index = Number(match[1]);\n if (!Number.isInteger(index) || index < 0) return null;\n return { index, field: match[2] as PlayableGroundDecalLayerPatchField };\n}\n\nexport function isPlayableGroundDecalLayerRectPath(path: string): boolean {\n return /^groundDecal\\.layers\\.\\d+\\.rect$/.test(path);\n}\n\nexport function isPlayableGroundDecalLayerTexturePath(path: string): boolean {\n return /^groundDecal\\.layers\\.\\d+\\.textureId$/.test(path);\n}\n\nexport function isPlayableGroundDecalLayerColorPath(path: string): boolean {\n return /^groundDecal\\.layers\\.\\d+\\.color$/.test(path);\n}\n\nexport function isPlayableGroundDecalLayerColorAlphaPath(path: string): boolean {\n return /^groundDecal\\.layers\\.\\d+\\.color\\.a$/.test(path);\n}\n\nexport function isPlayableGroundDecalLayerTextValuePath(path: string): boolean {\n return /^groundDecal\\.layers\\.\\d+\\.text\\.value$/.test(path);\n}\n\nexport function isPlayableGroundDecalLayerTextColorPath(path: string): boolean {\n return /^groundDecal\\.layers\\.\\d+\\.text\\.color$/.test(path);\n}\n\nexport function isPlayableGroundDecalLayerTextColorAlphaPath(path: string): boolean {\n return /^groundDecal\\.layers\\.\\d+\\.text\\.color\\.a$/.test(path);\n}\n\nexport function isPlayableGroundDecalLayerTextureTintPath(path: string): boolean {\n return /^groundDecal\\.layers\\.\\d+\\.tint$/.test(path);\n}\n\nexport function isPlayableGroundDecalLayerTextureTintAlphaPath(path: string): boolean {\n return /^groundDecal\\.layers\\.\\d+\\.tint\\.a$/.test(path);\n}\n\nexport function isPlayableGroundDecalLayerProgressPreviewPercentPath(path: string): boolean {\n return /^groundDecal\\.layers\\.\\d+\\.editorPreviewPercent$/.test(path);\n}\n\nexport function isPlayableGroundDecalRenderingTextureDimensionPath(path: string): boolean {\n return path === 'groundDecal.rendering.textureWidth' || path === 'groundDecal.rendering.textureHeight';\n}\n\nexport function isPlayableGroundDecalInspectorPatchPath(path: string): boolean {\n return !!parsePlayableGroundDecalLayerPatchPath(path) || isPlayableGroundDecalRenderingTextureDimensionPath(path);\n}\n\nexport function isPlayableGroundDecalSerializedMultiFieldPath(path: string): boolean {\n return path === 'groundDecal.size.width'\n || path === 'groundDecal.size.depth'\n || path === 'groundDecal.layers'\n || isPlayableGroundDecalInspectorPatchPath(path);\n}\n\nexport function canPatchPlayableGroundDecalLayerField(\n layer: PlayableGroundDecalUiLayer,\n field: PlayableGroundDecalLayerPatchField,\n services: Pick<\n PlayableGroundDecalInspectorServices<unknown, unknown, unknown>,\n 'isLayoutEditableLayer' | 'isEditableTextureLayer' | 'isEditableColorLayer' | 'isEditableTextLayer'\n > = {},\n): boolean {\n if (field === 'rect') return isPlayableGroundDecalLayoutEditableLayer(layer, services);\n if (field === 'textureId' || field === 'tint' || field === 'tint.a') return isPlayableGroundDecalEditableTextureLayer(layer, services);\n if (field === 'text.value' || field === 'text.color' || field === 'text.color.a') return isPlayableGroundDecalEditableTextLayer(layer, services);\n if (field === 'color' || field === 'color.a') return isPlayableGroundDecalEditableColorLayer(layer, services);\n if (field === 'editorPreviewPercent') return layer.kind === 'progress' && isPlayableGroundDecalEditableColorLayer(layer, services);\n return false;\n}\n\nexport function isPlayableGroundDecalProjectEditableLayer(\n layer: PlayableGroundDecalUiLayer,\n services: Pick<PlayableGroundDecalDocumentServices, 'isProjectEditableLayer'> = {},\n): boolean {\n return services.isProjectEditableLayer?.(layer) ?? layer.enabled !== false;\n}\n\nexport function isPlayableGroundDecalLayoutEditableLayer(\n layer: PlayableGroundDecalUiLayer,\n services: Pick<PlayableGroundDecalDocumentServices, 'isLayoutEditableLayer'> = {},\n): boolean {\n return services.isLayoutEditableLayer?.(layer) ?? layer.enabled !== false;\n}\n\nexport function isPlayableGroundDecalEditableTextureLayer(\n layer: PlayableGroundDecalUiLayer,\n services: Pick<PlayableGroundDecalInspectorServices<unknown, unknown, unknown>, 'isEditableTextureLayer'> = {},\n): layer is PlayableGroundDecalUiTextureLayer {\n return services.isEditableTextureLayer?.(layer) ?? layer.kind === 'texture';\n}\n\nexport function isPlayableGroundDecalEditableColorLayer(\n layer: PlayableGroundDecalUiLayer,\n services: Pick<PlayableGroundDecalInspectorServices<unknown, unknown, unknown>, 'isEditableColorLayer'> = {},\n): layer is PlayableGroundDecalUiColorLayer | PlayableGroundDecalUiProgressLayer {\n return services.isEditableColorLayer?.(layer) ?? (layer.kind === 'color' || layer.kind === 'progress');\n}\n\nexport function isPlayableGroundDecalEditableTextLayer(\n layer: PlayableGroundDecalUiLayer,\n services: Pick<PlayableGroundDecalInspectorServices<unknown, unknown, unknown>, 'isEditableTextLayer'> = {},\n): layer is PlayableGroundDecalUiTextLayer {\n return services.isEditableTextLayer?.(layer) ?? layer.kind === 'text';\n}\n\nexport function isPlayableGroundDecalLayoutPatchCompatibleWithDecal(\n decal: PlayableGroundDecalUiConfig,\n patches: readonly PlayableGroundDecalLayoutLayerPatch[],\n services: Pick<PlayableGroundDecalDocumentServices, 'isLayoutEditableLayer'> = {},\n): boolean {\n const editableLayers = decal.layers.filter(layer => isPlayableGroundDecalLayoutEditableLayer(layer, services));\n if (patches.length !== editableLayers.length) return false;\n return editableLayers.every((layer, index) => patches[index]?.id === layer.id);\n}\n\nexport function normalizePlayableGroundDecalColorValue(value: unknown): PlayableGroundDecalUiColor | null {\n const source = readPlayableGroundDecalRecord(value);\n if (!source) return null;\n const r = readPlayableGroundDecalFiniteNumber(source.r);\n const g = readPlayableGroundDecalFiniteNumber(source.g);\n const b = readPlayableGroundDecalFiniteNumber(source.b);\n if (r == null || g == null || b == null) return null;\n const a = readPlayableGroundDecalFiniteNumber(source.a);\n return {\n r: roundPlayableGroundDecalFieldValue(Math.max(0, Math.min(1, r))),\n g: roundPlayableGroundDecalFieldValue(Math.max(0, Math.min(1, g))),\n b: roundPlayableGroundDecalFieldValue(Math.max(0, Math.min(1, b))),\n ...(a == null ? {} : { a: roundPlayableGroundDecalFieldValue(Math.max(0, Math.min(1, a))) }),\n };\n}\n\nexport function normalizePlayableGroundDecalAlphaValue(value: unknown): number | null {\n const numeric = readPlayableGroundDecalFiniteNumber(value);\n return numeric == null ? null : roundPlayableGroundDecalFieldValue(Math.max(0, Math.min(1, numeric)));\n}\n\nexport function normalizePlayableGroundDecalProgressPreviewPercentValue(value: unknown): number | null {\n const numeric = readPlayableGroundDecalFiniteNumber(value);\n return numeric == null ? null : Math.round(Math.max(0, Math.min(100, numeric)));\n}\n\nexport function normalizePlayableGroundDecalTextureDimension(value: unknown): number | null {\n const numeric = readPlayableGroundDecalFiniteNumber(value);\n if (numeric == null || numeric <= 0) return null;\n return Math.max(64, Math.min(2048, Math.round(numeric)));\n}\n\nexport function roundPlayableGroundDecalFieldValue(value: number): number {\n return Math.round(value * 1000) / 1000;\n}\n\nexport function normalizePlayableGroundDecalInspectorFieldValue(path: string, value: unknown): unknown {\n if (path === 'groundDecal.layers') {\n return normalizePlayableGroundDecalLayoutPatchValue(value) ?? value;\n }\n if (isPlayableGroundDecalLayerRectPath(path)) {\n return normalizePlayableGroundDecalLayoutRect(value) ?? value;\n }\n if (isPlayableGroundDecalLayerTexturePath(path) && typeof value === 'string') {\n return value.trim();\n }\n if (isPlayableGroundDecalLayerTextValuePath(path) && typeof value === 'string') {\n return value;\n }\n if (\n isPlayableGroundDecalLayerColorPath(path)\n || isPlayableGroundDecalLayerTextureTintPath(path)\n || isPlayableGroundDecalLayerTextColorPath(path)\n ) {\n return normalizePlayableGroundDecalColorValue(value) ?? value;\n }\n if (\n isPlayableGroundDecalLayerColorAlphaPath(path)\n || isPlayableGroundDecalLayerTextureTintAlphaPath(path)\n || isPlayableGroundDecalLayerTextColorAlphaPath(path)\n ) {\n return normalizePlayableGroundDecalAlphaValue(value) ?? value;\n }\n if (isPlayableGroundDecalLayerProgressPreviewPercentPath(path)) {\n return normalizePlayableGroundDecalProgressPreviewPercentValue(value) ?? value;\n }\n if (isPlayableGroundDecalRenderingTextureDimensionPath(path)) {\n return normalizePlayableGroundDecalTextureDimension(value) ?? value;\n }\n return value;\n}\n\nexport function patchPlayableGroundDecalLayer(\n layer: PlayableGroundDecalUiLayer,\n field: PlayableGroundDecalLayerPatchField,\n value: unknown,\n): PlayableGroundDecalUiLayer | null {\n if (field === 'rect') {\n const rect = normalizePlayableGroundDecalLayoutRect(value);\n if (!rect) return null;\n if (playableGroundDecalRectsEqual(layer.rect, rect)) return layer;\n return { ...layer, rect } as PlayableGroundDecalUiLayer;\n }\n if (field === 'textureId') {\n if (layer.kind !== 'texture' || typeof value !== 'string' || !value.trim()) return null;\n const textureId = value.trim();\n if (layer.textureId === textureId) return layer;\n return { ...layer, textureId };\n }\n if (field === 'text.value') {\n if (layer.kind !== 'text' || typeof value !== 'string') return null;\n if (layer.text.value === value) return layer;\n return { ...layer, text: { ...layer.text, value } };\n }\n if (field === 'color') {\n if (layer.kind !== 'color' && layer.kind !== 'progress') return null;\n const color = normalizePlayableGroundDecalColorValue(value);\n if (!color) return null;\n const nextColor = {\n ...color,\n ...(color.a == null && layer.color.a != null ? { a: layer.color.a } : {}),\n };\n if (playableGroundDecalColorsEqual(layer.color, nextColor)) return layer;\n return { ...layer, color: nextColor } as PlayableGroundDecalUiLayer;\n }\n if (field === 'color.a') {\n if (layer.kind !== 'color' && layer.kind !== 'progress') return null;\n const alpha = normalizePlayableGroundDecalAlphaValue(value);\n if (alpha === null) return null;\n const nextColor = { ...layer.color, a: alpha };\n if (playableGroundDecalColorsEqual(layer.color, nextColor)) return layer;\n return { ...layer, color: nextColor } as PlayableGroundDecalUiLayer;\n }\n if (field === 'editorPreviewPercent') {\n if (layer.kind !== 'progress') return null;\n const percent = normalizePlayableGroundDecalProgressPreviewPercentValue(value);\n if (percent === null) return null;\n if (layer.editorPreviewPercent === percent) return layer;\n return { ...layer, editorPreviewPercent: percent } as PlayableGroundDecalUiLayer;\n }\n if (field === 'tint') {\n if (layer.kind !== 'texture') return null;\n const tint = normalizePlayableGroundDecalColorValue(value);\n if (!tint) return null;\n const nextTint = {\n ...tint,\n ...(tint.a == null && layer.tint?.a != null ? { a: layer.tint.a } : {}),\n };\n if (playableGroundDecalColorsEqual(layer.tint ?? PLAYABLE_GROUND_DECAL_TEXTURE_TINT, nextTint)) return layer;\n return { ...layer, tint: nextTint };\n }\n if (field === 'tint.a') {\n if (layer.kind !== 'texture') return null;\n const alpha = normalizePlayableGroundDecalAlphaValue(value);\n if (alpha === null) return null;\n const nextTint = { ...PLAYABLE_GROUND_DECAL_TEXTURE_TINT, ...(layer.tint ?? {}), a: alpha };\n if (playableGroundDecalColorsEqual(layer.tint ?? PLAYABLE_GROUND_DECAL_TEXTURE_TINT, nextTint)) return layer;\n return { ...layer, tint: nextTint };\n }\n if (field === 'text.color') {\n if (layer.kind !== 'text') return null;\n const color = normalizePlayableGroundDecalColorValue(value);\n if (!color) return null;\n const nextColor = {\n ...color,\n ...(color.a == null && layer.text.color.a != null ? { a: layer.text.color.a } : {}),\n };\n if (playableGroundDecalColorsEqual(layer.text.color, nextColor)) return layer;\n return { ...layer, text: { ...layer.text, color: nextColor } };\n }\n if (field === 'text.color.a') {\n if (layer.kind !== 'text') return null;\n const alpha = normalizePlayableGroundDecalAlphaValue(value);\n if (alpha === null) return null;\n const nextColor = { ...layer.text.color, a: alpha };\n if (playableGroundDecalColorsEqual(layer.text.color, nextColor)) return layer;\n return { ...layer, text: { ...layer.text, color: nextColor } };\n }\n return null;\n}\n\nexport function mergePlayableGroundDecalDefaults<TConfig extends PlayableGroundDecalUiConfig>(\n groundDecal: Partial<TConfig> | null | undefined,\n createDefault: (uiKind: PlayableGroundDecalUiKind) => TConfig,\n options: Pick<PlayableGroundDecalDocumentServices, 'defaultUiKind' | 'isKnownUiKind'> = {},\n): TConfig {\n const source = groundDecal && typeof groundDecal === 'object' && !Array.isArray(groundDecal)\n ? groundDecal\n : null;\n const sourceUiKind = typeof source?.uiKind === 'string' ? source.uiKind.trim() : '';\n const uiKind = sourceUiKind && (options.isKnownUiKind?.(sourceUiKind) ?? true)\n ? sourceUiKind\n : options.defaultUiKind ?? 'default';\n const defaults = createDefault(uiKind);\n if (!source) return defaults;\n return {\n ...defaults,\n ...structuredClone(source),\n uiKind,\n size: {\n ...defaults.size,\n ...(source.size && typeof source.size === 'object' ? source.size : {}),\n },\n layers: Array.isArray(source.layers) && source.layers.length > 0\n ? structuredClone(source.layers)\n : defaults.layers,\n mask: source.mask && typeof source.mask === 'object'\n ? { ...(defaults.mask ?? {}), ...source.mask }\n : defaults.mask,\n rendering: source.rendering && typeof source.rendering === 'object'\n ? { ...(defaults.rendering ?? {}), ...source.rendering }\n : defaults.rendering,\n } as TConfig;\n}\n\nexport function playableGroundDecalColorsEqual(\n left: PlayableGroundDecalUiColor,\n right: PlayableGroundDecalUiColor,\n): boolean {\n return left.r === right.r\n && left.g === right.g\n && left.b === right.b\n && (left.a ?? 1) === (right.a ?? 1);\n}\n\nexport function playableGroundDecalRectsEqual(\n left: PlayableGroundDecalUiRect,\n right: PlayableGroundDecalUiRect,\n): boolean {\n return left.x === right.x\n && left.z === right.z\n && left.width === right.width\n && left.depth === right.depth;\n}\n\nexport function resolvePlayableGroundDecalUniformScaleFromVec3(scale: PlayableGroundDecalVec3): number {\n const values = [scale.x, scale.y, scale.z].filter(value => Number.isFinite(value));\n if (values.length === 0) return 1;\n const uniform = values.reduce((best, value) => Math.abs(value - 1) > Math.abs(best - 1) ? value : best, values[0]!);\n return Math.max(0.001, Math.abs(uniform));\n}\n\nexport function canPatchPlayableEditorSceneGroundDecalMultiField<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n TDocument extends PlayableGroundDecalEditorSceneDocument<TGameObject>,\n>(\n document: TDocument,\n targetId: string,\n path: string,\n value: unknown,\n services: PlayableGroundDecalDocumentServices<TConfig, TGameObject>,\n): boolean {\n if (!isPlayableGroundDecalSerializedMultiFieldPath(path)) return false;\n const gameObject = findPlayableGroundDecalGameObject<TGameObject, TDocument>(document, targetId);\n if (!gameObject || !services.canShowGroundDecalInspector(gameObject)) return false;\n const decal = mergePlayableGroundDecalDefaults(gameObject.groundDecal, services.createDefaultGroundDecal, services);\n if (path === 'groundDecal.size.width' || path === 'groundDecal.size.depth' || isPlayableGroundDecalRenderingTextureDimensionPath(path)) {\n return true;\n }\n if (path === 'groundDecal.layers') {\n const patches = normalizePlayableGroundDecalLayoutPatchValue(value, services);\n if (!patches) return false;\n return isPlayableGroundDecalLayoutPatchCompatibleWithDecal(decal, patches, services);\n }\n const parsed = parsePlayableGroundDecalLayerPatchPath(path);\n if (!parsed) return false;\n const layer = decal.layers[parsed.index];\n return !!layer && isPlayableGroundDecalProjectEditableLayer(layer, services) && canPatchPlayableGroundDecalLayerField(layer, parsed.field, services);\n}\n\nexport function patchPlayableEditorSceneGroundDecalLayout<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n TDocument extends PlayableGroundDecalEditorSceneDocument<TGameObject>,\n>(\n document: TDocument,\n targetId: string,\n value: unknown,\n services: PlayableGroundDecalDocumentServices<TConfig, TGameObject>,\n): TDocument {\n const patches = normalizePlayableGroundDecalLayoutPatchValue(value, services);\n if (!patches) return document;\n return mapPlayableGroundDecalGameObjects<TGameObject, TDocument>(document, (entry) => (\n entry.id === targetId ? patchPlayableEditorSceneGroundDecalLayoutGameObject(entry, patches, services) : entry\n ));\n}\n\nexport function patchPlayableEditorSceneGroundDecalKind<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n TDocument extends PlayableGroundDecalEditorSceneDocument<TGameObject>,\n>(\n document: TDocument,\n targetId: string,\n value: unknown,\n services: PlayableGroundDecalDocumentServices<TConfig, TGameObject>,\n): TDocument {\n if (typeof value !== 'string' || !value.trim()) return document;\n const uiKind = value.trim();\n if (services.isKnownUiKind && !services.isKnownUiKind(uiKind)) return document;\n return mapPlayableGroundDecalGameObjects<TGameObject, TDocument>(document, (entry) => (\n entry.id === targetId ? patchPlayableEditorSceneGroundDecalKindGameObject(entry, uiKind, services) : entry\n ));\n}\n\nexport function patchPlayableEditorSceneGroundDecalInspectorField<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n TDocument extends PlayableGroundDecalEditorSceneDocument<TGameObject>,\n>(\n document: TDocument,\n targetId: string,\n path: string,\n value: unknown,\n services: PlayableGroundDecalDocumentServices<TConfig, TGameObject>,\n): TDocument | null {\n if (isPlayableGroundDecalRenderingTextureDimensionPath(path)) {\n return patchPlayableEditorSceneGroundDecalRenderingDimension(document, targetId, path, value, services);\n }\n const parsed = parsePlayableGroundDecalLayerPatchPath(path);\n if (!parsed) return null;\n let changed = false;\n const normalizedValue = normalizePlayableGroundDecalInspectorFieldValue(path, value);\n const gameObjects = document.scene.gameObjects.map((entry) => {\n if (entry.id !== targetId || !services.canShowGroundDecalInspector(entry)) return entry;\n const decal = mergePlayableGroundDecalDefaults(entry.groundDecal, services.createDefaultGroundDecal, services);\n const layer = decal.layers[parsed.index];\n if (!layer || !isPlayableGroundDecalProjectEditableLayer(layer, services)) return entry;\n if (parsed.field === 'rect' && !isPlayableGroundDecalLayoutEditableLayer(layer, services)) return entry;\n const patchedLayer = patchPlayableGroundDecalLayer(layer, parsed.field, normalizedValue);\n if (!patchedLayer || patchedLayer === layer) return entry;\n const layers = [...decal.layers];\n layers[parsed.index] = patchedLayer;\n changed = true;\n return normalizePlayableEditorSceneGroundDecalGameObject({\n ...entry,\n groundDecal: {\n ...decal,\n layers,\n },\n }, services);\n });\n return changed ? { ...document, scene: { ...document.scene, gameObjects } } as TDocument : document;\n}\n\nexport function patchPlayableEditorSceneGroundDecalRenderingDimension<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n TDocument extends PlayableGroundDecalEditorSceneDocument<TGameObject>,\n>(\n document: TDocument,\n targetId: string,\n path: string,\n value: unknown,\n services: PlayableGroundDecalDocumentServices<TConfig, TGameObject>,\n): TDocument {\n const dimension = normalizePlayableGroundDecalTextureDimension(value);\n if (dimension === null) return document;\n const key = path === 'groundDecal.rendering.textureWidth' ? 'textureWidth' : 'textureHeight';\n let changed = false;\n const gameObjects = document.scene.gameObjects.map((entry) => {\n if (entry.id !== targetId || !services.canShowGroundDecalInspector(entry)) return entry;\n const decal = mergePlayableGroundDecalDefaults(entry.groundDecal, services.createDefaultGroundDecal, services);\n if (decal.rendering?.[key] === dimension) return entry;\n changed = true;\n return normalizePlayableEditorSceneGroundDecalGameObject({\n ...entry,\n groundDecal: {\n ...decal,\n rendering: {\n ...decal.rendering,\n [key]: dimension,\n },\n },\n }, services);\n });\n return changed ? { ...document, scene: { ...document.scene, gameObjects } } as TDocument : document;\n}\n\nexport function replacePlayableEditorSceneGroundDecalUi<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n TDocument extends PlayableGroundDecalEditorSceneDocument<TGameObject>,\n>(\n document: TDocument,\n targetId: string,\n groundDecal: TConfig,\n services: PlayableGroundDecalDocumentServices<TConfig, TGameObject>,\n): TDocument {\n if (!services.isGroundDecalConfig(groundDecal)) return document;\n let changed = false;\n const gameObjects = document.scene.gameObjects.map((entry) => {\n if (entry.id !== targetId) return entry;\n if (!services.isGroundDecalUiGameObject(entry) || entry.groundDecal.uiKind !== groundDecal.uiKind) return entry;\n changed = true;\n return normalizePlayableEditorSceneGroundDecalGameObject({\n ...entry,\n kind: 'transform',\n transformType: 'groundDecal',\n groundDecal: mergePlayableGroundDecalDefaults(groundDecal, services.createDefaultGroundDecal, services),\n }, services);\n });\n return changed ? { ...document, scene: { ...document.scene, gameObjects } } as TDocument : document;\n}\n\nexport function normalizePlayableGroundDecalUiScaleAfterFieldPatch<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n TDocument extends PlayableGroundDecalEditorSceneDocument<TGameObject>,\n>(\n document: TDocument,\n targetId: string,\n path: string,\n value: unknown,\n services: PlayableGroundDecalDocumentServices<TConfig, TGameObject>,\n): TDocument {\n if (!path.startsWith('transform.scale')) return document;\n return normalizePlayableGroundDecalUiScales(document, services, targetId, resolvePlayableGroundDecalUiInspectorScale(path, value));\n}\n\nexport function normalizePlayableGroundDecalUiScalesForCommand<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n TDocument extends PlayableGroundDecalEditorSceneDocument<TGameObject>,\n TPatch,\n>(\n document: TDocument,\n command: DocumentCommand<TDocument, TPatch>,\n services: PlayableGroundDecalDocumentServices<TConfig, TGameObject>,\n): TDocument {\n if (command.type === 'document.replace') return normalizePlayableGroundDecalUiScales(document, services);\n const patch = command.patch as Record<string, unknown>;\n if (patch.kind === 'game-object.field') {\n return normalizePlayableGroundDecalUiScaleAfterFieldPatch(\n document,\n String(patch.targetId ?? ''),\n String(patch.path ?? ''),\n patch.value,\n services,\n );\n }\n if (patch.kind === 'game-object.field-batch') {\n if (Array.isArray(patch.fields)) {\n return patch.fields.reduce<TDocument>((nextDocument, field) => {\n const record = readPlayableGroundDecalRecord(field);\n return normalizePlayableGroundDecalUiScaleAfterFieldPatch(\n nextDocument,\n String(record?.targetId ?? ''),\n String(record?.path ?? ''),\n record?.value,\n services,\n );\n }, document);\n }\n if (Array.isArray(patch.targetIds)) {\n return patch.targetIds.reduce<TDocument>((nextDocument, targetId) => (\n normalizePlayableGroundDecalUiScaleAfterFieldPatch(\n nextDocument,\n String(targetId),\n String(patch.path ?? ''),\n patch.value,\n services,\n )\n ), document);\n }\n return document;\n }\n return normalizePlayableGroundDecalUiScales(document, services);\n}\n\nexport function normalizePlayableGroundDecalUiScales<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n TDocument extends PlayableGroundDecalEditorSceneDocument<TGameObject>,\n>(\n document: TDocument,\n services: PlayableGroundDecalDocumentServices<TConfig, TGameObject>,\n targetId?: string,\n uniformOverride?: number | null,\n): TDocument {\n let changed = false;\n const gameObjects = document.scene.gameObjects.map((gameObject) => {\n if ((targetId && gameObject.id !== targetId) || !services.isGroundDecalUiGameObject(gameObject)) return gameObject;\n const transform = findEditorSceneTransform(gameObject);\n if (!transform || !isPlayableGroundDecalTrsTransformComponent(transform) || !transform.scale) return gameObject;\n const uniform = uniformOverride ?? resolvePlayableGroundDecalUniformScaleFromVec3(transform.scale);\n if (\n Math.abs(transform.scale.x - uniform) < 0.000001\n && Math.abs(transform.scale.y - uniform) < 0.000001\n && Math.abs(transform.scale.z - uniform) < 0.000001\n ) {\n return gameObject;\n }\n changed = true;\n return {\n ...gameObject,\n components: gameObject.components.map((component) => component === transform\n ? { ...component, scale: { x: uniform, y: uniform, z: uniform } }\n : component),\n };\n });\n return changed ? { ...document, scene: { ...document.scene, gameObjects } } as TDocument : document;\n}\n\nexport function normalizePlayableEditorSceneGroundDecalGameObject<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n>(\n gameObject: TGameObject,\n services: PlayableGroundDecalDocumentServices<TConfig, TGameObject>,\n): TGameObject {\n const next = ensurePlayableGroundDecalTransformComponent({\n ...gameObject,\n kind: 'transform',\n transformType: 'groundDecal',\n groundDecal: mergePlayableGroundDecalDefaults(gameObject.groundDecal, services.createDefaultGroundDecal, services),\n } as TGameObject);\n delete next.camera;\n delete next.light;\n delete next.primitive;\n return next;\n}\n\nexport function isPlayableEditorSceneGroundDecalProjectionPath(path: string): boolean {\n return path === 'groundDecal' || path.startsWith('groundDecal.');\n}\n\nfunction patchPlayableEditorSceneGroundDecalLayoutGameObject<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n>(\n gameObject: TGameObject,\n patches: readonly PlayableGroundDecalLayoutLayerPatch[],\n services: PlayableGroundDecalDocumentServices<TConfig, TGameObject>,\n): TGameObject {\n const patchById = new Map(patches.map(patch => [patch.id, patch]));\n const decal = mergePlayableGroundDecalDefaults(gameObject.groundDecal, services.createDefaultGroundDecal, services);\n return normalizePlayableEditorSceneGroundDecalGameObject({\n ...gameObject,\n kind: 'transform',\n transformType: 'groundDecal',\n groundDecal: {\n ...decal,\n layers: decal.layers.map((layer, index) => {\n if (!isPlayableGroundDecalLayoutEditableLayer(layer, services)) return layer;\n const patch = patchById.get(layer.id) ?? patches[index];\n return patch ? { ...layer, rect: patch.rect } : layer;\n }),\n },\n } as TGameObject, services);\n}\n\nfunction patchPlayableEditorSceneGroundDecalKindGameObject<\n TConfig extends PlayableGroundDecalUiConfig,\n TGameObject extends PlayableGroundDecalEditorSceneGameObject<TConfig>,\n>(\n gameObject: TGameObject,\n uiKind: PlayableGroundDecalUiKind,\n services: PlayableGroundDecalDocumentServices<TConfig, TGameObject>,\n): TGameObject {\n const previous = mergePlayableGroundDecalDefaults(gameObject.groundDecal, services.createDefaultGroundDecal, services);\n const defaults = services.createDefaultGroundDecal(uiKind);\n return normalizePlayableEditorSceneGroundDecalGameObject({\n ...gameObject,\n kind: 'transform',\n transformType: 'groundDecal',\n groundDecal: {\n ...defaults,\n size: previous.size,\n mask: previous.mask ?? defaults.mask,\n rendering: previous.rendering ?? defaults.rendering,\n },\n } as TGameObject, services);\n}\n\nfunction ensurePlayableGroundDecalTransformComponent<TGameObject extends EditorSceneGameObject>(\n gameObject: TGameObject,\n): TGameObject {\n if (gameObject.components.some(component => component.type === 'Transform')) return gameObject;\n return {\n ...gameObject,\n components: [createPlayableGroundDecalIdentityTransformComponent(), ...gameObject.components],\n };\n}\n\nfunction createPlayableGroundDecalIdentityTransformComponent(): EditorSceneComponent {\n return {\n type: 'Transform',\n position: { x: 0, y: 0, z: 0 },\n rotation: { x: 0, y: 0, z: 0 },\n scale: { x: 1, y: 1, z: 1 },\n };\n}\n\nfunction isPlayableGroundDecalTrsTransformComponent(\n component: EditorSceneComponent,\n): component is EditorSceneComponent & { position: EditorSceneVec3; rotation: EditorSceneVec3; scale?: EditorSceneVec3 } {\n return component.type === 'Transform' && component.mode !== 'matrix';\n}\n\nfunction findPlayableGroundDecalGameObject<\n TGameObject extends PlayableGroundDecalEditorSceneGameObject,\n TDocument extends PlayableGroundDecalEditorSceneDocument<TGameObject>,\n>(\n document: TDocument,\n gameObjectId: string | null | undefined,\n): TGameObject | null {\n if (!gameObjectId) return null;\n return document.scene.gameObjects.find(gameObject => gameObject.id === gameObjectId) ?? null;\n}\n\nfunction mapPlayableGroundDecalGameObjects<\n TGameObject extends PlayableGroundDecalEditorSceneGameObject,\n TDocument extends PlayableGroundDecalEditorSceneDocument<TGameObject>,\n>(\n document: TDocument,\n mapGameObject: (gameObject: TGameObject) => TGameObject,\n): TDocument {\n return {\n ...document,\n scene: {\n ...document.scene,\n gameObjects: document.scene.gameObjects.map(mapGameObject),\n },\n };\n}\n\nexport function createPlayableGroundDecalInspectorProperties<\n TDocument,\n TNodeKind,\n TTarget,\n TContext extends PlayableGroundDecalInspectorContext = PlayableGroundDecalInspectorContext,\n>(\n nodeKind: TNodeKind,\n groundDecal: Partial<PlayableGroundDecalUiConfig> | null | undefined,\n options: TContext & { enableGroundDecalUiActions?: boolean } = {} as TContext,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): InspectorProperty<TDocument>[] {\n const decal = mergePlayableGroundDecalDefaults(groundDecal, services.createDefaultGroundDecal, services);\n const properties: InspectorProperty<TDocument>[] = [\n createPlayableReadonlyInspectorProperty('groundDecal.uiKind', 'Type', services.createUiKindLabel?.(decal.uiKind) ?? decal.uiKind, 0),\n services.createDocumentInspectorProperty(null, nodeKind, {\n path: 'groundDecal.size.width',\n label: 'Width',\n valueType: 'number',\n control: 'number',\n value: decal.size.width,\n commitMode: 'live',\n order: 1,\n min: 0.001,\n step: 0.1,\n }),\n services.createDocumentInspectorProperty(null, nodeKind, {\n path: 'groundDecal.size.depth',\n label: 'Depth',\n valueType: 'number',\n control: 'number',\n value: decal.size.depth,\n commitMode: 'live',\n order: 2,\n min: 0.001,\n step: 0.1,\n }),\n services.createDocumentInspectorProperty(null, nodeKind, {\n path: 'groundDecal.rendering.textureWidth',\n label: 'Texture Width',\n valueType: 'number',\n control: 'number',\n value: decal.rendering?.textureWidth ?? 512,\n commitMode: 'change',\n order: 3,\n min: 64,\n max: 2048,\n step: 64,\n }),\n services.createDocumentInspectorProperty(null, nodeKind, {\n path: 'groundDecal.rendering.textureHeight',\n label: 'Texture Height',\n valueType: 'number',\n control: 'number',\n value: decal.rendering?.textureHeight ?? 512,\n commitMode: 'change',\n order: 4,\n min: 64,\n max: 2048,\n step: 64,\n }),\n services.createDocumentInspectorProperty(null, nodeKind, {\n path: 'groundDecal.layers',\n label: 'Layout',\n valueType: 'object',\n control: 'custom',\n customControl: 'ground-decal-layout',\n value: createPlayableGroundDecalLayoutInspectorValue(decal, options, services),\n commitMode: 'live',\n order: 5,\n coerce: (value: unknown) => services.normalizeValue('groundDecal.layers', value),\n controlOptions: {\n aspectRatio: resolvePlayableGroundDecalLayoutAspectRatio(decal),\n },\n }),\n ];\n\n let order = 10;\n if (options.enableGroundDecalUiActions && (services.canShowLayerPairActions?.(decal) ?? false) && services.layerPairActions) {\n const pairCount = services.getLayerPairs?.(decal).length ?? 0;\n const canAddPair = services.canAddLayerPair?.(decal) ?? false;\n const canRemovePair = services.canRemoveLayerPair?.(decal) ?? false;\n properties.push(createPlayableInspectorActionProperty({\n path: services.layerPairActions.addPath ?? 'groundDecal.layerPairs.add',\n label: services.layerPairActions.addLabel ?? 'Add item',\n actionId: services.layerPairActions.addActionId,\n order,\n icon: 'asset',\n tooltip: services.layerPairActions.addTooltip ?? 'Add an item.',\n params: {},\n disabled: !canAddPair,\n disabledReason: canAddPair ? undefined : services.createLayerPairDisabledReason?.({ decal, action: 'add', pairCount }),\n effect: canAddPair ? 'active' : 'unsupported',\n }));\n order += 1;\n properties.push(createPlayableInspectorActionProperty({\n path: services.layerPairActions.removePath ?? 'groundDecal.layerPairs.remove',\n label: services.layerPairActions.removeLabel ?? 'Remove item',\n actionId: services.layerPairActions.removeActionId,\n order,\n icon: 'asset',\n tooltip: services.layerPairActions.removeTooltip ?? 'Remove an item.',\n params: {},\n disabled: !canRemovePair,\n disabledReason: canRemovePair ? undefined : services.createLayerPairDisabledReason?.({ decal, action: 'remove', pairCount }),\n effect: canRemovePair ? 'active' : 'unsupported',\n }));\n order += 1;\n }\n\n for (let index = 0; index < decal.layers.length; index += 1) {\n const layer = decal.layers[index];\n if (!layer || !isPlayableGroundDecalProjectEditableLayer(layer, services)) continue;\n const label = createPlayableGroundDecalLayerLabel(layer, services);\n if (isPlayableGroundDecalEditableTextureLayer(layer, services)) {\n properties.push(createPlayableGroundDecalTextureInspectorProperty(nodeKind, options, layer, index, label, order, services));\n order += 1;\n properties.push(createPlayableGroundDecalTextureTintInspectorProperty(nodeKind, layer, index, label, order, services));\n order += 1;\n properties.push(createPlayableGroundDecalTextureTintAlphaInspectorProperty(nodeKind, layer, index, label, order, services));\n order += 1;\n }\n if (layer.kind === 'progress' && isPlayableGroundDecalEditableColorLayer(layer, services)) {\n properties.push(createPlayableGroundDecalProgressPreviewInspectorProperty(nodeKind, layer, index, label, order, services));\n order += 1;\n }\n if (isPlayableGroundDecalEditableColorLayer(layer, services)) {\n properties.push(createPlayableGroundDecalColorInspectorProperty(nodeKind, layer, index, label, order, services));\n order += 1;\n properties.push(createPlayableGroundDecalColorAlphaInspectorProperty(nodeKind, layer, index, label, order, services));\n order += 1;\n }\n if (isPlayableGroundDecalEditableTextLayer(layer, services)) {\n properties.push(services.createDocumentInspectorProperty(null, nodeKind, {\n path: `groundDecal.layers.${index}.text.value`,\n label: `${label} Text`,\n valueType: 'string',\n control: 'string',\n value: layer.text.value,\n commitMode: 'blur',\n order,\n tags: ['GroundDecalUI', 'Text'],\n }));\n order += 1;\n properties.push(createPlayableGroundDecalTextColorInspectorProperty(nodeKind, layer, index, label, order, services));\n order += 1;\n properties.push(createPlayableGroundDecalTextColorAlphaInspectorProperty(nodeKind, layer, index, label, order, services));\n order += 1;\n }\n }\n\n appendPlayableReadonlyInspectorProperty(properties, {\n path: 'groundDecal.raw',\n label: 'Raw Ground Decal',\n value: groundDecal ?? decal,\n order,\n source: 'Document',\n tags: ['Raw'],\n });\n return properties;\n}\n\nexport function createPlayableGroundDecalInspectorSection<\n TDocument,\n TNodeKind,\n TTarget,\n TContext extends PlayableGroundDecalInspectorContext = PlayableGroundDecalInspectorContext,\n>(\n target: TTarget,\n nodeKind: TNodeKind,\n context: TContext,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): InspectorSection<TDocument> {\n const groundDecal = services.getTargetGroundDecal(target);\n return {\n id: 'groundDecal',\n title: 'Ground Decal',\n order: 40,\n placement: 'body',\n summary: groundDecal ? 'Configured' : 'Defaults',\n persistence: 'document',\n collapsedByDefault: true,\n properties: createPlayableGroundDecalInspectorProperties(\n nodeKind,\n groundDecal,\n {\n ...context,\n enableGroundDecalUiActions: services.isUiTarget?.(target) ?? false,\n },\n services,\n ),\n };\n}\n\nexport function createPlayableGroundDecalMultiInspectorSection<\n TDocument,\n TNodeKind,\n TTarget,\n TContext extends PlayableGroundDecalInspectorContext = PlayableGroundDecalInspectorContext,\n>(\n document: TDocument,\n targetIds: readonly string[],\n activeId: string | null,\n context: TContext,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): InspectorSection<TDocument> | null {\n const targets = resolvePlayableGroundDecalMultiInspectorTargets(document, targetIds, services);\n if (targets.length <= 1) return null;\n const activeTarget = targets.find(target => services.getTargetId(target.target) === activeId) ?? targets[0];\n if (!activeTarget) return null;\n const compatibleLayerSignature = haveCompatiblePlayableGroundDecalLayerSignatures(targets.map(target => target.decal), services);\n const nodeKind = services.getTargetNodeKind(activeTarget.target);\n const properties = createPlayableGroundDecalInspectorProperties(nodeKind, activeTarget.decal, {\n ...context,\n enableGroundDecalUiActions: false,\n }, services)\n .filter(property => isPlayableGroundDecalMultiInspectorProperty(property, compatibleLayerSignature))\n .filter(property => targets.every(target => (\n property.readOnly\n || services.canPatchMultiField(document, services.getTargetId(target.target), property.path, property.value)\n )))\n .map(property => ({\n ...property,\n mixed: isPlayableGroundDecalMultiInspectorPropertyMixed(targets, property.path, context, services),\n }));\n if (properties.length === 0) return null;\n const mixedKind = targets.some(target => target.decal.uiKind !== activeTarget.decal.uiKind);\n return {\n id: 'groundDecal',\n title: 'Ground Decal',\n order: 40,\n placement: 'body',\n summary: mixedKind ? 'Mixed' : `${targets.length} ${services.createUiKindLabel?.(activeTarget.decal.uiKind) ?? activeTarget.decal.uiKind} UIs`,\n persistence: 'document',\n collapsedByDefault: false,\n properties,\n };\n}\n\nexport function resolvePlayableGroundDecalMultiInspectorTargetIds<\n TDocument,\n TNodeKind,\n TTarget,\n TContext extends PlayableGroundDecalInspectorContext = PlayableGroundDecalInspectorContext,\n>(\n document: TDocument,\n targetIds: readonly string[],\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): string[] {\n return resolvePlayableGroundDecalMultiInspectorTargets(document, targetIds, services)\n .map(target => services.getTargetId(target.target));\n}\n\ntype PlayableGroundDecalMultiInspectorTarget<TTarget> = {\n target: TTarget;\n decal: PlayableGroundDecalUiConfig;\n};\n\nfunction resolvePlayableGroundDecalMultiInspectorTargets<\n TDocument,\n TNodeKind,\n TTarget,\n TContext extends PlayableGroundDecalInspectorContext = PlayableGroundDecalInspectorContext,\n>(\n document: TDocument,\n targetIds: readonly string[],\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): PlayableGroundDecalMultiInspectorTarget<TTarget>[] {\n const seen = new Set<string>();\n const targets: PlayableGroundDecalMultiInspectorTarget<TTarget>[] = [];\n for (const targetId of targetIds) {\n if (!targetId || seen.has(targetId)) continue;\n seen.add(targetId);\n const target = services.findTarget(document, targetId);\n if (!target || !services.canShowTarget(target)) continue;\n targets.push({\n target,\n decal: mergePlayableGroundDecalDefaults(services.getTargetGroundDecal(target), services.createDefaultGroundDecal, services),\n });\n }\n return targets;\n}\n\nfunction haveCompatiblePlayableGroundDecalLayerSignatures(\n decals: readonly PlayableGroundDecalUiConfig[],\n services: Pick<PlayableGroundDecalInspectorServices<unknown, unknown, unknown>, 'isProjectEditableLayer'> = {},\n): boolean {\n if (decals.length === 0) return false;\n const [firstSignature, ...rest] = decals.map(decal => createPlayableGroundDecalEditableLayerSignature(decal, services));\n return rest.every(signature => signature === firstSignature);\n}\n\nfunction createPlayableGroundDecalEditableLayerSignature(\n decal: PlayableGroundDecalUiConfig,\n services: Pick<PlayableGroundDecalInspectorServices<unknown, unknown, unknown>, 'isProjectEditableLayer'> = {},\n): string {\n return decal.layers\n .map((layer, index) => ({ layer, index }))\n .filter(entry => isPlayableGroundDecalProjectEditableLayer(entry.layer, services))\n .map(({ layer, index }) => `${index}:${layer.id}:${layer.role}:${layer.kind}`)\n .join('|');\n}\n\nfunction isPlayableGroundDecalMultiInspectorProperty(\n property: InspectorProperty,\n compatibleLayerSignature: boolean,\n): boolean {\n if (property.path === 'groundDecal.raw') return false;\n if (property.path === 'groundDecal.uiKind') return true;\n if (property.path === 'groundDecal.size.width' || property.path === 'groundDecal.size.depth') return true;\n if (isPlayableGroundDecalRenderingTextureDimensionPath(property.path)) return true;\n if (property.path === 'groundDecal.layers' || parsePlayableGroundDecalLayerPatchPath(property.path)) {\n return compatibleLayerSignature;\n }\n return false;\n}\n\nfunction isPlayableGroundDecalMultiInspectorPropertyMixed<\n TDocument,\n TNodeKind,\n TTarget,\n TContext extends PlayableGroundDecalInspectorContext = PlayableGroundDecalInspectorContext,\n>(\n targets: readonly PlayableGroundDecalMultiInspectorTarget<TTarget>[],\n path: string,\n context: TContext,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): boolean {\n if (targets.length <= 1) return false;\n const [first, ...rest] = targets.map(target => (\n JSON.stringify(readPlayableGroundDecalMultiInspectorComparableValue(target.decal, path, context, services))\n ));\n return rest.some(value => value !== first);\n}\n\nfunction readPlayableGroundDecalMultiInspectorComparableValue<\n TDocument,\n TNodeKind,\n TTarget,\n TContext extends PlayableGroundDecalInspectorContext = PlayableGroundDecalInspectorContext,\n>(\n decal: PlayableGroundDecalUiConfig,\n path: string,\n context: TContext,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): unknown {\n if (path === 'groundDecal.uiKind') return decal.uiKind;\n if (path === 'groundDecal.size.width') return decal.size.width;\n if (path === 'groundDecal.size.depth') return decal.size.depth;\n if (path === 'groundDecal.rendering.textureWidth') return decal.rendering?.textureWidth ?? 512;\n if (path === 'groundDecal.rendering.textureHeight') return decal.rendering?.textureHeight ?? 512;\n if (path === 'groundDecal.layers') {\n return createPlayableGroundDecalLayoutInspectorValue(decal, context, services).layers;\n }\n const parsed = parsePlayableGroundDecalLayerPatchPath(path);\n if (!parsed) return undefined;\n const layer = decal.layers[parsed.index];\n if (!layer) return undefined;\n return readPlayableGroundDecalLayerPatchFieldValue(layer, parsed.field);\n}\n\nfunction readPlayableGroundDecalLayerPatchFieldValue(\n layer: PlayableGroundDecalUiLayer,\n field: PlayableGroundDecalLayerPatchField,\n): unknown {\n if (field === 'rect') return layer.rect;\n if (field === 'textureId') return layer.kind === 'texture' ? layer.textureId : undefined;\n if (field === 'text.value') return layer.kind === 'text' ? layer.text.value : undefined;\n if (field === 'color') return layer.kind === 'color' || layer.kind === 'progress' ? layer.color : undefined;\n if (field === 'color.a') return layer.kind === 'color' || layer.kind === 'progress' ? layer.color.a ?? 1 : undefined;\n if (field === 'tint') return layer.kind === 'texture' ? layer.tint ?? PLAYABLE_GROUND_DECAL_TEXTURE_TINT : undefined;\n if (field === 'tint.a') return layer.kind === 'texture' ? layer.tint?.a ?? 1 : undefined;\n if (field === 'text.color') return layer.kind === 'text' ? layer.text.color : undefined;\n if (field === 'text.color.a') return layer.kind === 'text' ? layer.text.color.a ?? 1 : undefined;\n if (field === 'editorPreviewPercent') return layer.kind === 'progress' ? resolvePlayableGroundDecalEditorPreviewProgressPercent(layer) : undefined;\n return undefined;\n}\n\nfunction createPlayableGroundDecalLayoutInspectorValue<\n TDocument,\n TNodeKind,\n TTarget,\n TContext extends PlayableGroundDecalInspectorContext = PlayableGroundDecalInspectorContext,\n>(\n decal: PlayableGroundDecalUiConfig,\n context: TContext,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): Record<string, unknown> {\n const layoutEditableLayers = decal.layers\n .map((layer, index) => ({ layer, index }))\n .filter(entry => isPlayableGroundDecalLayoutEditableLayer(entry.layer, services));\n return {\n textureSize: {\n width: decal.rendering?.textureWidth ?? 512,\n height: decal.rendering?.textureHeight ?? 512,\n },\n mask: decal.mask,\n layers: layoutEditableLayers.map(({ layer, index }) => createPlayableGroundDecalLayoutInspectorLayer(context, layer, index, services)),\n previewLayers: decal.layers.map((layer, index) => createPlayableGroundDecalLayoutInspectorLayer(context, layer, index, services)),\n };\n}\n\nfunction createPlayableGroundDecalLayoutInspectorLayer<\n TDocument,\n TNodeKind,\n TTarget,\n TContext extends PlayableGroundDecalInspectorContext = PlayableGroundDecalInspectorContext,\n>(\n context: TContext,\n layer: PlayableGroundDecalUiLayer,\n index: number,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): Record<string, unknown> {\n return {\n index,\n id: layer.id,\n role: layer.role,\n kind: layer.kind,\n label: createPlayableGroundDecalLayerLabel(layer, services),\n rect: layer.rect,\n enabled: layer.enabled !== false,\n editable: isPlayableGroundDecalLayoutEditableLayer(layer, services),\n zOrder: layer.zOrder,\n ...(typeof layer.opacity === 'number' ? { opacity: layer.opacity } : {}),\n ...(services.useUniformLayoutScaleMode?.(layer) ? { scaleMode: 'uniform' } : {}),\n preview: createPlayableGroundDecalLayerPreview(context, layer, services),\n };\n}\n\nexport function createPlayableGroundDecalLayerLabel(\n layer: PlayableGroundDecalUiLayer,\n services: Pick<PlayableGroundDecalInspectorServices<unknown, unknown, unknown>, 'createLayerLabel'> = {},\n): string {\n const label = services.createLayerLabel?.(layer);\n if (label) return label;\n return layer.role.charAt(0).toUpperCase() + layer.role.slice(1);\n}\n\nfunction createPlayableGroundDecalLayerPreview<\n TDocument,\n TNodeKind,\n TTarget,\n TContext extends PlayableGroundDecalInspectorContext = PlayableGroundDecalInspectorContext,\n>(\n context: TContext,\n layer: PlayableGroundDecalUiLayer,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): Record<string, unknown> | undefined {\n if (layer.kind === 'texture') {\n const textureAsset = services.findTextureAsset?.(context, layer.textureId) ?? null;\n const url = textureAsset?.url ?? services.resolveTextureAssetUrl?.(layer.textureId);\n return url\n ? {\n kind: 'image',\n url,\n alt: textureAsset?.label ?? layer.textureId,\n ...(layer.tint ? { tint: layer.tint } : {}),\n }\n : undefined;\n }\n if (layer.kind === 'color') {\n return { kind: 'color', color: layer.color };\n }\n if (layer.kind === 'progress') {\n return {\n kind: 'progress',\n value: resolvePlayableGroundDecalEditorPreviewProgressValue(layer),\n direction: layer.direction,\n color: layer.color,\n };\n }\n if (layer.kind === 'text') {\n return {\n kind: 'text',\n text: layer.text.value,\n fontFamily: layer.text.fontFamily,\n fontSize: layer.text.fontSize,\n fontWeight: layer.text.fontWeight,\n color: layer.text.color,\n strokeColor: layer.text.strokeColor,\n strokeWidth: layer.text.strokeWidth,\n align: layer.text.align,\n baseline: layer.text.baseline,\n };\n }\n return undefined;\n}\n\nfunction resolvePlayableGroundDecalEditorPreviewProgressPercent(\n layer: PlayableGroundDecalUiProgressLayer,\n): number {\n const percent = typeof layer.editorPreviewPercent === 'number' && Number.isFinite(layer.editorPreviewPercent)\n ? layer.editorPreviewPercent\n : PLAYABLE_GROUND_DECAL_UI_EDITOR_PROGRESS_PERCENT;\n return Math.round(Math.max(0, Math.min(100, percent)));\n}\n\nfunction resolvePlayableGroundDecalEditorPreviewProgressValue(layer: PlayableGroundDecalUiProgressLayer): number {\n return resolvePlayableGroundDecalEditorPreviewProgressPercent(layer) / 100;\n}\n\nfunction createPlayableGroundDecalTextureInspectorProperty<\n TDocument,\n TNodeKind,\n TTarget,\n TContext extends PlayableGroundDecalInspectorContext = PlayableGroundDecalInspectorContext,\n>(\n nodeKind: TNodeKind,\n context: TContext,\n layer: PlayableGroundDecalUiTextureLayer,\n layerIndex: number,\n label: string,\n order: number,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): InspectorProperty<TDocument> {\n const text = services.getMaterialText?.('zh');\n const currentTexture = services.findTextureAsset?.(context, layer.textureId) ?? null;\n const path = `groundDecal.layers.${layerIndex}.textureId`;\n return services.createDocumentInspectorProperty(null, nodeKind, {\n path,\n label: `${label} PNG`,\n valueType: 'string',\n control: 'custom',\n customControl: 'asset-picker-card',\n value: layer.textureId,\n commitMode: 'change',\n order,\n tags: ['GroundDecalUI', 'TextureAsset'],\n controlOptions: services.createTexturePickerControlOptions?.(context, text, layer.textureId, currentTexture) ?? {\n currentTextureId: layer.textureId,\n currentTexture,\n },\n coerce: (value: unknown) => services.normalizeValue(path, value),\n });\n}\n\nfunction createPlayableGroundDecalColorInspectorProperty<TDocument, TNodeKind, TTarget, TContext extends PlayableGroundDecalInspectorContext>(\n nodeKind: TNodeKind,\n layer: PlayableGroundDecalUiColorLayer | PlayableGroundDecalUiProgressLayer,\n layerIndex: number,\n label: string,\n order: number,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): InspectorProperty<TDocument> {\n return services.createDocumentInspectorProperty(null, nodeKind, {\n path: `groundDecal.layers.${layerIndex}.color`,\n label: `${label} Color`,\n valueType: 'color',\n control: 'color',\n value: layer.color,\n commitMode: 'immediate',\n order,\n tags: ['GroundDecalUI', 'Color'],\n });\n}\n\nfunction createPlayableGroundDecalColorAlphaInspectorProperty<TDocument, TNodeKind, TTarget, TContext extends PlayableGroundDecalInspectorContext>(\n nodeKind: TNodeKind,\n layer: PlayableGroundDecalUiColorLayer | PlayableGroundDecalUiProgressLayer,\n layerIndex: number,\n label: string,\n order: number,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): InspectorProperty<TDocument> {\n return services.createDocumentInspectorProperty(null, nodeKind, {\n path: `groundDecal.layers.${layerIndex}.color.a`,\n label: `${label} Alpha`,\n valueType: 'number',\n control: 'number',\n value: layer.color.a ?? 1,\n commitMode: 'live',\n order,\n min: 0,\n max: 1,\n step: 0.01,\n tags: ['GroundDecalUI', 'Color'],\n });\n}\n\nfunction createPlayableGroundDecalProgressPreviewInspectorProperty<TDocument, TNodeKind, TTarget, TContext extends PlayableGroundDecalInspectorContext>(\n nodeKind: TNodeKind,\n layer: PlayableGroundDecalUiProgressLayer,\n layerIndex: number,\n label: string,\n order: number,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): InspectorProperty<TDocument> {\n const path = `groundDecal.layers.${layerIndex}.editorPreviewPercent`;\n return services.createDocumentInspectorProperty(null, nodeKind, {\n path,\n label: `${label} Preview %`,\n valueType: 'number',\n control: 'number',\n value: resolvePlayableGroundDecalEditorPreviewProgressPercent(layer),\n commitMode: 'blur',\n order,\n min: 0,\n max: 100,\n step: 1,\n tags: ['GroundDecalUI', 'Progress'],\n coerce: (value: unknown) => services.normalizeValue(path, value),\n });\n}\n\nfunction createPlayableGroundDecalTextureTintInspectorProperty<TDocument, TNodeKind, TTarget, TContext extends PlayableGroundDecalInspectorContext>(\n nodeKind: TNodeKind,\n layer: PlayableGroundDecalUiTextureLayer,\n layerIndex: number,\n label: string,\n order: number,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): InspectorProperty<TDocument> {\n const tint = layer.tint ?? PLAYABLE_GROUND_DECAL_TEXTURE_TINT;\n return services.createDocumentInspectorProperty(null, nodeKind, {\n path: `groundDecal.layers.${layerIndex}.tint`,\n label: `${label} Tint Color`,\n valueType: 'color',\n control: 'color',\n value: tint,\n commitMode: 'immediate',\n order,\n tags: ['GroundDecalUI', 'Color'],\n });\n}\n\nfunction createPlayableGroundDecalTextureTintAlphaInspectorProperty<TDocument, TNodeKind, TTarget, TContext extends PlayableGroundDecalInspectorContext>(\n nodeKind: TNodeKind,\n layer: PlayableGroundDecalUiTextureLayer,\n layerIndex: number,\n label: string,\n order: number,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): InspectorProperty<TDocument> {\n const tint = layer.tint ?? PLAYABLE_GROUND_DECAL_TEXTURE_TINT;\n return services.createDocumentInspectorProperty(null, nodeKind, {\n path: `groundDecal.layers.${layerIndex}.tint.a`,\n label: `${label} Tint Alpha`,\n valueType: 'number',\n control: 'number',\n value: tint.a ?? 1,\n commitMode: 'live',\n order,\n min: 0,\n max: 1,\n step: 0.01,\n tags: ['GroundDecalUI', 'Color'],\n });\n}\n\nfunction createPlayableGroundDecalTextColorInspectorProperty<TDocument, TNodeKind, TTarget, TContext extends PlayableGroundDecalInspectorContext>(\n nodeKind: TNodeKind,\n layer: PlayableGroundDecalUiTextLayer,\n layerIndex: number,\n label: string,\n order: number,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): InspectorProperty<TDocument> {\n return services.createDocumentInspectorProperty(null, nodeKind, {\n path: `groundDecal.layers.${layerIndex}.text.color`,\n label: `${label} Text Color`,\n valueType: 'color',\n control: 'color',\n value: layer.text.color,\n commitMode: 'immediate',\n order,\n tags: ['GroundDecalUI', 'Color'],\n });\n}\n\nfunction createPlayableGroundDecalTextColorAlphaInspectorProperty<TDocument, TNodeKind, TTarget, TContext extends PlayableGroundDecalInspectorContext>(\n nodeKind: TNodeKind,\n layer: PlayableGroundDecalUiTextLayer,\n layerIndex: number,\n label: string,\n order: number,\n services: PlayableGroundDecalInspectorServices<TDocument, TNodeKind, TTarget, TContext>,\n): InspectorProperty<TDocument> {\n return services.createDocumentInspectorProperty(null, nodeKind, {\n path: `groundDecal.layers.${layerIndex}.text.color.a`,\n label: `${label} Text Alpha`,\n valueType: 'number',\n control: 'number',\n value: layer.text.color.a ?? 1,\n commitMode: 'live',\n order,\n min: 0,\n max: 1,\n step: 0.01,\n tags: ['GroundDecalUI', 'Color'],\n });\n}\n\nfunction resolvePlayableGroundDecalLayoutAspectRatio(decal: PlayableGroundDecalUiConfig): number {\n const sourceLayer = decal.layers.find(layer => layer.id === decal.aspectSourceLayerId);\n const sourceRect = sourceLayer?.rect;\n if (sourceRect && sourceRect.width > 0 && sourceRect.depth > 0) return sourceRect.width / sourceRect.depth;\n return decal.size.width > 0 && decal.size.depth > 0 ? decal.size.width / decal.size.depth : 1;\n}\n\nfunction appendPlayableReadonlyInspectorProperty<TDocument>(\n properties: InspectorProperty<TDocument>[],\n input: Parameters<typeof createEditorSceneReadonlyInspectorProperty<TDocument>>[0],\n): void {\n const property = createEditorSceneReadonlyInspectorProperty<TDocument>(input);\n if (property) properties.push(property);\n}\n\nfunction createPlayableReadonlyInspectorProperty<TDocument>(\n path: string,\n label: string,\n value: unknown,\n order: number,\n tooltip?: string,\n): InspectorProperty<TDocument> {\n return createEditorSceneReadonlyInspectorProperty<TDocument>({\n path,\n label,\n value,\n order,\n persistence: 'readonly',\n source: 'Document',\n tooltip,\n })!;\n}\n\nfunction createPlayableInspectorActionProperty<TDocument>(input: {\n path: string;\n label: string;\n actionId: string;\n order: number;\n icon: string;\n tooltip: string;\n params: Record<string, string | undefined>;\n disabled: boolean;\n disabledReason?: string;\n effect?: InspectorProperty<TDocument>['effect'];\n}): InspectorProperty<TDocument> {\n const params = Object.fromEntries(\n Object.entries(input.params).filter((entry): entry is [string, string] => typeof entry[1] === 'string' && entry[1].length > 0),\n );\n return {\n path: input.path,\n label: input.label,\n valueType: 'string',\n control: 'custom',\n customControl: 'inspector-action-button',\n controlOptions: {\n actionId: input.actionId,\n label: input.label,\n icon: input.icon,\n params,\n ...(input.disabled ? { disabled: true } : {}),\n ...(input.disabledReason ? { disabledReason: input.disabledReason } : {}),\n },\n value: input.actionId,\n readOnly: false,\n persistence: 'readonly',\n commitMode: 'immediate',\n order: input.order,\n tooltip: input.disabledReason ?? input.tooltip,\n effect: input.effect,\n disabledReason: input.disabled ? input.disabledReason : undefined,\n };\n}\n\nfunction readPlayableGroundDecalRecord(value: unknown): Record<string, unknown> | null {\n return value && typeof value === 'object' && !Array.isArray(value) ? value as Record<string, unknown> : null;\n}\n\nfunction readPlayableGroundDecalString(value: unknown): string | null {\n return typeof value === 'string' && value.trim() ? value.trim() : null;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FpsGameEditorGroundDecalFeatureConfig } from './ground-decal-scene-feature';\n\nexport * from './ground-decal';\nexport * from './ground-decal-scene-feature';\nexport * from './project-host-services';\nexport * from './standard-asset-actions';\nexport * from './scene-session';\nexport * from './standard-scene-assembly';\nexport * from './asset-manager';\nexport * from './scene-source';\n\nexport type FpsGameEditorMaybePromise<T> = T | Promise<T>;\n\nexport interface FpsGameEditorProjectSourceConfig {\n editorScene: string;\n runtimeScene: string;\n rendering?: string;\n}\n\nexport interface FpsGameEditorProjectAssetsConfig {\n importedDir: string;\n generatedDir: string;\n publicBase: string;\n}\n\nexport interface FpsGameEditorFeatureRuntimeContribution {\n dispose?(): FpsGameEditorMaybePromise<void>;\n [key: string]: unknown;\n}\n\nexport interface FpsGameEditorFeatureRuntimeContext<\n TRuntimeHooks extends FpsGameEditorRuntimeHooks = FpsGameEditorRuntimeHooks,\n> {\n project: FpsGameEditorProjectDefinition;\n runtimeHooks: TRuntimeHooks;\n getFeature<TConfig = unknown>(id: string): FpsGameEditorFeature<TConfig> | null;\n}\n\nexport interface FpsGameEditorFeature<\n TConfig = unknown,\n TRuntimeHooks extends FpsGameEditorRuntimeHooks = FpsGameEditorRuntimeHooks,\n TSceneContribution = unknown,\n> {\n id: string;\n label?: string;\n config: TConfig;\n scene?: TSceneContribution;\n setup?(\n context: FpsGameEditorFeatureRuntimeContext<TRuntimeHooks>,\n ): FpsGameEditorFeatureRuntimeContribution | void;\n}\n\nexport interface FpsGameEditorProjectConfig<\n TFeature extends FpsGameEditorFeature = FpsGameEditorFeature,\n> {\n projectId: string;\n projectName: string;\n source: FpsGameEditorProjectSourceConfig;\n assets: FpsGameEditorProjectAssetsConfig;\n features?: readonly TFeature[];\n metadata?: Readonly<Record<string, unknown>>;\n}\n\nexport interface FpsGameEditorProjectDefinition<\n TFeature extends FpsGameEditorFeature = FpsGameEditorFeature,\n> extends Omit<FpsGameEditorProjectConfig<TFeature>, 'features'> {\n features: readonly TFeature[];\n}\n\nexport interface FpsGameEditorRuntimeHooks<TGame = unknown, TCanvas = unknown> {\n getGame?: () => TGame | null;\n getCanvas?: () => TCanvas | null;\n disposeGameWorld?: () => FpsGameEditorMaybePromise<void>;\n restartGame?: (context?: FpsGameEditorRestartContext) => FpsGameEditorMaybePromise<void>;\n [key: string]: unknown;\n}\n\nexport interface FpsGameEditorRestartContext {\n reason?: string;\n}\n\nexport interface FpsGameEditorRuntimeContext<\n TProject extends FpsGameEditorProjectDefinition = FpsGameEditorProjectDefinition,\n TRuntimeHooks extends FpsGameEditorRuntimeHooks = FpsGameEditorRuntimeHooks,\n> {\n project: TProject;\n runtimeHooks: TRuntimeHooks;\n features: TProject['features'];\n}\n\nexport interface FpsGameEditorAdapter<\n TProject extends FpsGameEditorProjectDefinition = FpsGameEditorProjectDefinition,\n TRuntimeHooks extends FpsGameEditorRuntimeHooks = FpsGameEditorRuntimeHooks,\n> {\n project: TProject;\n runtimeHooks: TRuntimeHooks;\n features: TProject['features'];\n getProjectConfig(): TProject;\n getRuntimeContext(): FpsGameEditorRuntimeContext<TProject, TRuntimeHooks>;\n getFeature<TConfig = unknown>(id: string): FpsGameEditorFeature<TConfig> | null;\n getGame(): FpsGameEditorHookReturn<TRuntimeHooks['getGame']> | null;\n getCanvas(): FpsGameEditorHookReturn<TRuntimeHooks['getCanvas']> | null;\n disposeGameWorld(): Promise<void>;\n restartGame(context?: FpsGameEditorRestartContext): Promise<void>;\n dispose(): Promise<void>;\n}\n\nexport type FpsGameEditorHookReturn<THook> = THook extends (...args: any[]) => infer TResult\n ? TResult\n : null;\n\nexport const FPS_GAME_EDITOR_GROUND_DECAL_FEATURE_ID = 'groundDecal';\n\nexport interface FpsGameEditorFeatureSceneDescriptor<TContribution = unknown> {\n kind: string;\n contribution?: TContribution;\n}\n\nexport function defineFpsGameEditorProject<\n TFeature extends FpsGameEditorFeature = FpsGameEditorFeature,\n>(\n config: FpsGameEditorProjectConfig<TFeature>,\n): FpsGameEditorProjectDefinition<TFeature> {\n assertNonEmptyString(config.projectId, 'projectId');\n assertNonEmptyString(config.projectName, 'projectName');\n assertNonEmptyString(config.source?.editorScene, 'source.editorScene');\n assertNonEmptyString(config.source?.runtimeScene, 'source.runtimeScene');\n if (config.source.rendering != null) {\n assertNonEmptyString(config.source.rendering, 'source.rendering');\n }\n assertNonEmptyString(config.assets?.importedDir, 'assets.importedDir');\n assertNonEmptyString(config.assets?.generatedDir, 'assets.generatedDir');\n assertNonEmptyString(config.assets?.publicBase, 'assets.publicBase');\n if (config.features != null && !Array.isArray(config.features)) {\n throw new Error('defineFpsGameEditorProject expected features to be an array.');\n }\n\n return {\n ...config,\n source: { ...config.source },\n assets: { ...config.assets },\n ...(config.metadata ? { metadata: { ...config.metadata } } : {}),\n features: [...(config.features ?? [])],\n };\n}\n\nexport function defineFpsGameEditorFeature<\n TFeature extends FpsGameEditorFeature,\n>(\n feature: TFeature,\n): TFeature {\n assertNonEmptyString(feature.id, 'feature.id');\n return {\n ...feature,\n };\n}\n\nexport function groundDecalFeature<TConfig extends FpsGameEditorGroundDecalFeatureConfig>(\n config: TConfig,\n): FpsGameEditorFeature<TConfig, FpsGameEditorRuntimeHooks, FpsGameEditorFeatureSceneDescriptor> {\n return defineFpsGameEditorFeature({\n id: FPS_GAME_EDITOR_GROUND_DECAL_FEATURE_ID,\n label: 'Ground Decal',\n config,\n scene: { kind: FPS_GAME_EDITOR_GROUND_DECAL_FEATURE_ID },\n });\n}\n\nexport function createFpsGameEditorAdapter<\n TProject extends FpsGameEditorProjectDefinition,\n TRuntimeHooks extends FpsGameEditorRuntimeHooks,\n>(\n project: TProject,\n runtimeHooks: TRuntimeHooks,\n): FpsGameEditorAdapter<TProject, TRuntimeHooks> {\n const features = [...project.features] as unknown as TProject['features'];\n const contributions: FpsGameEditorFeatureRuntimeContribution[] = [];\n const getFeature = <TConfig = unknown>(id: string): FpsGameEditorFeature<TConfig> | null => (\n ([...features] as readonly FpsGameEditorFeature[]).find(feature => feature.id === id) as FpsGameEditorFeature<TConfig> | undefined\n ) ?? null;\n const runtimeContext: FpsGameEditorRuntimeContext<TProject, TRuntimeHooks> = {\n project,\n runtimeHooks,\n features,\n };\n const featureRuntimeContext: FpsGameEditorFeatureRuntimeContext<TRuntimeHooks> = {\n project,\n runtimeHooks,\n getFeature,\n };\n\n for (const feature of features as readonly FpsGameEditorFeature[]) {\n const contribution = feature.setup?.(featureRuntimeContext);\n if (contribution) contributions.push(contribution);\n }\n\n return {\n project,\n runtimeHooks,\n features,\n getProjectConfig: () => project,\n getRuntimeContext: () => runtimeContext,\n getFeature,\n getGame: () => (runtimeHooks.getGame?.() ?? null) as FpsGameEditorHookReturn<TRuntimeHooks['getGame']> | null,\n getCanvas: () => (runtimeHooks.getCanvas?.() ?? null) as FpsGameEditorHookReturn<TRuntimeHooks['getCanvas']> | null,\n disposeGameWorld: async () => {\n await runtimeHooks.disposeGameWorld?.();\n },\n restartGame: async (context?: FpsGameEditorRestartContext) => {\n await runtimeHooks.restartGame?.(context);\n },\n dispose: async () => {\n for (const contribution of [...contributions].reverse()) {\n await contribution.dispose?.();\n }\n },\n };\n}\n\nfunction assertNonEmptyString(value: unknown, path: string): asserts value is string {\n if (typeof value !== 'string' || value.trim().length === 0) {\n throw new Error(`defineFpsGameEditorProject expected ${path} to be a non-empty string.`);\n }\n}\n"]}
|
|
@@ -31,6 +31,7 @@ export interface FpsGameEditorProductProjectHostServicesOptions<TDocument, TGame
|
|
|
31
31
|
registerCommandName?: string;
|
|
32
32
|
}
|
|
33
33
|
export declare function createFpsGameEditorProductProjectHostServices<TDocument, TGameObject extends PlayableEditorAgentGameObjectLike, TAsset extends PlayableEditorAgentAssetLike>(options: FpsGameEditorProductProjectHostServicesOptions<TDocument, TGameObject, TAsset>): {
|
|
34
|
+
hydrateDocumentAssets: (document: TDocument, assets: TAsset[]) => TDocument;
|
|
34
35
|
agentContext: {
|
|
35
36
|
describeSceneObject: ({ document, objectId }: any) => {
|
|
36
37
|
domainKind: string;
|
package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-host-services.d.ts","sourceRoot":"","sources":["../../src/product/project-host-services.ts"],"names":[],"mappings":"AACA,OAAO,EAAqH,KAAK,4BAA4B,EAAE,KAAK,iCAAiC,EAAqD,MAAM,qCAAqC,CAAC;AACtS,OAAO,EAAgG,KAAK,8BAA8B,EAAE,KAAK,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAI9M,OAAO,KAAK,EAAE,oCAAoC,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAE7H,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAEpF,KAAK,cAAc,CAAC,SAAS,IAAI,8BAA8B,GAAG;IAAE,kBAAkB,IAAI,SAAS,GAAG,IAAI,CAAA;CAAE,CAAC;AAE7G,MAAM,WAAW,8CAA8C,CAAC,SAAS,EAAE,WAAW,SAAS,iCAAiC,EAAE,MAAM,SAAS,4BAA4B;IAC3K,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE;QAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAAC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;KAAE,CAAC;IACxG,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACjE,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;IAChE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACxE,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC;IAC1C,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;IACnE,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAC/C,iBAAiB,CAAC,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;IACvD,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,6BAA6B,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAClJ,gBAAgB,CAAC,CAAC,KAAK,EAAE,8BAA8B,GAAG,IAAI,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5G,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,6CAA6C,CAAC,SAAS,EAAE,WAAW,SAAS,iCAAiC,EAAE,MAAM,SAAS,4BAA4B,EAAE,OAAO,EAAE,8CAA8C,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC
|
|
1
|
+
{"version":3,"file":"project-host-services.d.ts","sourceRoot":"","sources":["../../src/product/project-host-services.ts"],"names":[],"mappings":"AACA,OAAO,EAAqH,KAAK,4BAA4B,EAAE,KAAK,iCAAiC,EAAqD,MAAM,qCAAqC,CAAC;AACtS,OAAO,EAAgG,KAAK,8BAA8B,EAAE,KAAK,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAI9M,OAAO,KAAK,EAAE,oCAAoC,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAE7H,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAEpF,KAAK,cAAc,CAAC,SAAS,IAAI,8BAA8B,GAAG;IAAE,kBAAkB,IAAI,SAAS,GAAG,IAAI,CAAA;CAAE,CAAC;AAE7G,MAAM,WAAW,8CAA8C,CAAC,SAAS,EAAE,WAAW,SAAS,iCAAiC,EAAE,MAAM,SAAS,4BAA4B;IAC3K,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE;QAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAAC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;KAAE,CAAC;IACxG,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACjE,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;IAChE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACxE,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC;IAC1C,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;IACnE,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAC/C,iBAAiB,CAAC,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;IACvD,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,6BAA6B,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAClJ,gBAAgB,CAAC,CAAC,KAAK,EAAE,8BAA8B,GAAG,IAAI,GAAG;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5G,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,6CAA6C,CAAC,SAAS,EAAE,WAAW,SAAS,iCAAiC,EAAE,MAAM,SAAS,4BAA4B,EAAE,OAAO,EAAE,8CAA8C,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;;;sDA4BhN,GAAG;;;;;;;;;;;;;;;;;;;;;;;;0DACC,GAAG;;;;;;;;;;;;;;;;;;;;;;;yDACJ,GAAG;;;;;;;;;;;;;;;;;;;;;;;0BAEhC,GAAG;yCACY,oCAAoC,CAAC,GAAG,CAAC;4BAChD,cAAc,CAAC,SAAS,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,0BAA0B;EAWnI;AAGD,wBAAgB,oCAAoC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACtF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAOA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createEditorScenePrefabAgentSummary } from '../document/helpers.js';
|
|
2
2
|
import { describePlayableEditorAgentObject, describePlayableEditorAgentObjectSet, describePlayableEditorAgentRegionBinding } from '../local-harness/agent-descriptions.js';
|
|
3
3
|
import { readPlayablePlatformAssetKind, readPlayablePlatformAssetPath, readPlayablePlatformRawAssetId } from '../asset-bridge/index.js';
|
|
4
|
-
import { registerPlayablePlatformAssetIfNeeded } from '../asset-registration/workflow.js';
|
|
4
|
+
import { registerPlayablePlatformAsset, registerPlayablePlatformAssetIfNeeded } from '../asset-registration/workflow.js';
|
|
5
5
|
import { runPlayableAuthoringCommand, writePlayableAuthoringFile } from '../authoring-client/client.js';
|
|
6
6
|
import { createPlayableProjectAssetCommandHandler, postPlayableForgePlayEvent } from '../local-harness/index.js';
|
|
7
7
|
import { PLAYABLE_FORGE_PLAY_EVENT, readPlayableForgePlayRequestId } from '../local-harness/forge-play.js';
|
|
@@ -28,10 +28,12 @@ export function createFpsGameEditorProductProjectHostServices(options) {
|
|
|
28
28
|
const handleCommand = createPlayableProjectAssetCommandHandler({
|
|
29
29
|
normalizePayload: value => value,
|
|
30
30
|
registerAssetIfNeeded: payload => registerPlayablePlatformAssetIfNeeded(payload, { commandName: options.registerCommandName ?? 'npm run asset:register', cwd: '.', findExistingAsset: options.findExistingAsset, writeFile: writePlayableAuthoringFile, runCommand: runPlayableAuthoringCommand }),
|
|
31
|
+
registerAsset: payload => registerPlayablePlatformAsset(payload, { commandName: options.registerCommandName ?? 'npm run asset:register', cwd: '.', findExistingAsset: options.findExistingAsset, writeFile: writePlayableAuthoringFile, runCommand: runPlayableAuthoringCommand }),
|
|
31
32
|
resolveAssetId: findAssetId,
|
|
32
33
|
placement: { projectDropPoint: options.projectDropPoint },
|
|
33
34
|
});
|
|
34
35
|
return {
|
|
36
|
+
hydrateDocumentAssets: options.enrichDocument,
|
|
35
37
|
agentContext: {
|
|
36
38
|
describeSceneObject: ({ document, objectId }) => describePlayableEditorAgentObject(document, objectId, descriptions),
|
|
37
39
|
describeSceneObjectSet: ({ document, objectIds }) => describePlayableEditorAgentObjectSet(document, objectIds, descriptions),
|
package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-host-services.js","sourceRoot":"","sources":["../../src/product/project-host-services.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project-host-services.js","sourceRoot":"","sources":["../../src/product/project-host-services.ts"],"names":[],"mappings":"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","sourcesContent":["import { createEditorScenePrefabAgentSummary } from '../document/helpers';\nimport { describePlayableEditorAgentObject, describePlayableEditorAgentObjectSet, describePlayableEditorAgentRegionBinding, type PlayableEditorAgentAssetLike, type PlayableEditorAgentGameObjectLike, type PlayableEditorAgentObjectDescriptionServices } from '../local-harness/agent-descriptions';\nimport { readPlayablePlatformAssetKind, readPlayablePlatformAssetPath, readPlayablePlatformRawAssetId, type PlayablePlatformAssetDropPoint, type PlayablePlatformAssetExternal } from '../asset-bridge/index';\nimport { registerPlayablePlatformAsset, registerPlayablePlatformAssetIfNeeded } from '../asset-registration/workflow';\nimport { runPlayableAuthoringCommand, writePlayableAuthoringFile } from '../authoring-client/client';\nimport { createPlayableProjectAssetCommandHandler, postPlayableForgePlayEvent } from '../local-harness/index';\nimport type { PlayableLocalEditorHostBridgeContext, PlayableLocalEditorHostHarness } from '../local-harness/host-controller';\nimport { PLAYABLE_FORGE_PLAY_EVENT, readPlayableForgePlayRequestId } from '../local-harness/forge-play';\nimport type { PlayableForgePlaySaveState } from '../local-harness/forge-play-types';\n\ntype ProductHarness<TDocument> = PlayableLocalEditorHostHarness & { getWorkingDocument(): TDocument | null };\n\nexport interface FpsGameEditorProductProjectHostServicesOptions<TDocument, TGameObject extends PlayableEditorAgentGameObjectLike, TAsset extends PlayableEditorAgentAssetLike> {\n domainPrefix: string;\n sceneSource: { save(document: TDocument, options: any): Promise<any>; loadAssets(): Promise<TAsset[]> };\n enrichDocument(document: TDocument, assets: TAsset[]): TDocument;\n findObject(document: TDocument, id: string): TGameObject | null;\n findObjects(document: TDocument, ids: readonly string[]): TGameObject[];\n readNodeKind(object: TGameObject): string;\n findAsset(document: TDocument, object: TGameObject): TAsset | null;\n hasModelRenderer(object: TGameObject): boolean;\n resolveDomainRole?(object: TGameObject): string | null;\n findExistingAsset(payload: Record<string, unknown>): Promise<{ guid?: string; assetId: string; external?: PlayablePlatformAssetExternal } | null>;\n projectDropPoint?(point: PlayablePlatformAssetDropPoint | null): { x: number; y: number; z: number } | null;\n registerCommandName?: string;\n}\n\nexport function createFpsGameEditorProductProjectHostServices<TDocument, TGameObject extends PlayableEditorAgentGameObjectLike, TAsset extends PlayableEditorAgentAssetLike>(options: FpsGameEditorProductProjectHostServicesOptions<TDocument, TGameObject, TAsset>) {\n const descriptions: PlayableEditorAgentObjectDescriptionServices<TDocument, TGameObject> = {\n domainPrefix: options.domainPrefix,\n findGameObject: options.findObject,\n findGameObjects: options.findObjects,\n readNodeKind: options.readNodeKind,\n findAsset: options.findAsset,\n createPrefabSummary: (document: TDocument, id: string) => createEditorScenePrefabAgentSummary(document as any, id),\n hasModelRenderer: options.hasModelRenderer,\n resolveDomainRole: options.resolveDomainRole,\n };\n const findAssetId = async (payload: Record<string, unknown>) => {\n const explicit = readString(payload.projectAssetId);\n if (explicit) return explicit;\n const existing = await options.findExistingAsset(payload);\n if (existing) return existing.assetId;\n throw new Error('project assetId was not found for platform asset');\n };\n const handleCommand = createPlayableProjectAssetCommandHandler<any>({\n normalizePayload: value => value,\n registerAssetIfNeeded: payload => registerPlayablePlatformAssetIfNeeded(payload, { commandName: options.registerCommandName ?? 'npm run asset:register', cwd: '.', findExistingAsset: options.findExistingAsset, writeFile: writePlayableAuthoringFile, runCommand: runPlayableAuthoringCommand }),\n registerAsset: payload => registerPlayablePlatformAsset(payload, { commandName: options.registerCommandName ?? 'npm run asset:register', cwd: '.', findExistingAsset: options.findExistingAsset, writeFile: writePlayableAuthoringFile, runCommand: runPlayableAuthoringCommand }),\n resolveAssetId: findAssetId,\n placement: { projectDropPoint: options.projectDropPoint },\n });\n return {\n hydrateDocumentAssets: options.enrichDocument,\n agentContext: {\n describeSceneObject: ({ document, objectId }: any) => describePlayableEditorAgentObject(document, objectId, descriptions),\n describeSceneObjectSet: ({ document, objectIds }: any) => describePlayableEditorAgentObjectSet(document, objectIds, descriptions),\n describeRegionBinding: ({ document, objectIds }: any) => describePlayableEditorAgentRegionBinding(document, objectIds, descriptions),\n },\n summarize: (document: any) => `editorScene assets=${document.assets?.length ?? 0}, gameObjects=${document.scene?.gameObjects?.length ?? 0}`,\n handleProjectAssetCommand: (context: PlayableLocalEditorHostBridgeContext<any>) => handleCommand(context),\n async exportDocument(harness: ProductHarness<TDocument>, payload: Record<string, unknown>, saveState: PlayableForgePlaySaveState) {\n const document = harness.getWorkingDocument() as TDocument | null;\n if (!document) throw new Error('editor_document_unavailable');\n const prepared = await options.sceneSource.save(options.enrichDocument(document, await options.sceneSource.loadAssets()), { mode: 'prepare-platform-save' });\n const sceneJsonText = typeof prepared.sceneJsonText === 'string' && prepared.sceneJsonText.trim()\n ? prepared.sceneJsonText\n : `${JSON.stringify(prepared.compiledArtifact?.data ?? prepared.document, null, 2)}\\n`;\n saveState.preparedRevision += 1; saveState.committedRevision = 0;\n postPlayableForgePlayEvent(window, PLAYABLE_FORGE_PLAY_EVENT.DOCUMENT_EXPORTED, { requestId: readPlayableForgePlayRequestId(payload), sceneJsonText, ...(typeof prepared.expectedVersion === 'number' ? { expectedVersion: prepared.expectedVersion } : {}) });\n },\n };\n}\n\nfunction readString(value: unknown): string | undefined { return typeof value === 'string' && value.trim() ? value.trim() : undefined; }\nexport function readFpsGameEditorPlatformAssetLookup(payload: Record<string, unknown>): {\n projectAssetId?: string;\n platformAssetId?: string;\n kind: 'texture' | 'model';\n assetPath?: string;\n} {\n return {\n projectAssetId: readString(payload.projectAssetId),\n platformAssetId: readPlayablePlatformRawAssetId(payload) ?? undefined,\n kind: readPlayablePlatformAssetKind(payload) === 'texture' ? 'texture' : 'model',\n assetPath: readPlayablePlatformAssetPath(payload) ?? undefined,\n };\n}\n"]}
|