@fps-games/editor-deployment 0.2.3-beta.10
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/bin/fps-editor-agent.mjs +5 -0
- package/bin/fps-editor-prepare.mjs +5 -0
- package/bin/fps-editor-project.mjs +18 -0
- package/bin/fps-editor-server.mjs +2 -0
- package/licenses/THIRD_PARTY_NOTICES.txt +7 -0
- package/manifest.json +2688 -0
- package/npm-shrinkwrap.json +21 -0
- package/package.json +44 -0
- package/public/assets/abstractAudioBus-BRAC2GY2.js +1 -0
- package/public/assets/animation-C6iNAO1g.js +1 -0
- package/public/assets/animation-C6iNAO1g.js.br +0 -0
- package/public/assets/animation-C6iNAO1g.js.gz +0 -0
- package/public/assets/animationGroup-C74XVFRE.js +1 -0
- package/public/assets/animationGroup-C74XVFRE.js.br +0 -0
- package/public/assets/animationGroup-C74XVFRE.js.gz +0 -0
- package/public/assets/arcRotateCamera-CIQYNBBJ.js +1 -0
- package/public/assets/arcRotateCamera-CIQYNBBJ.js.br +0 -0
- package/public/assets/arcRotateCamera-CIQYNBBJ.js.gz +0 -0
- package/public/assets/babylon-core-PuGyjHMj.js +13882 -0
- package/public/assets/babylon-core-PuGyjHMj.js.br +0 -0
- package/public/assets/babylon-core-PuGyjHMj.js.gz +0 -0
- package/public/assets/babylon-core-S0gBQJVe.js +1 -0
- package/public/assets/babylon-core-S0gBQJVe.js.br +0 -0
- package/public/assets/babylon-core-S0gBQJVe.js.gz +0 -0
- package/public/assets/basisTextureLoader-BdapVvhf.js +1 -0
- package/public/assets/basisTextureLoader-BdapVvhf.js.br +0 -0
- package/public/assets/basisTextureLoader-BdapVvhf.js.gz +0 -0
- package/public/assets/bumpVertex-DMhnr4dz.js +173 -0
- package/public/assets/bumpVertex-DMhnr4dz.js.br +0 -0
- package/public/assets/bumpVertex-DMhnr4dz.js.gz +0 -0
- package/public/assets/bumpVertex-DpGOKCkn.js +177 -0
- package/public/assets/bumpVertex-DpGOKCkn.js.br +0 -0
- package/public/assets/bumpVertex-DpGOKCkn.js.gz +0 -0
- package/public/assets/chromaticAberration.fragment-BgX-2zxS.js +7 -0
- package/public/assets/chromaticAberration.fragment-BgX-2zxS.js.br +0 -0
- package/public/assets/chromaticAberration.fragment-BgX-2zxS.js.gz +0 -0
- package/public/assets/chromaticAberration.fragment-D7t6Txg4.js +6 -0
- package/public/assets/chromaticAberration.fragment-D7t6Txg4.js.br +0 -0
- package/public/assets/chromaticAberration.fragment-D7t6Txg4.js.gz +0 -0
- package/public/assets/circleOfConfusion.fragment-D1RtHaPm.js +17 -0
- package/public/assets/circleOfConfusion.fragment-D1RtHaPm.js.br +0 -0
- package/public/assets/circleOfConfusion.fragment-D1RtHaPm.js.gz +0 -0
- package/public/assets/circleOfConfusion.fragment-D8geMRma.js +17 -0
- package/public/assets/circleOfConfusion.fragment-D8geMRma.js.br +0 -0
- package/public/assets/circleOfConfusion.fragment-D8geMRma.js.gz +0 -0
- package/public/assets/clipPlaneFragment-Bgl3Usc4.js +46 -0
- package/public/assets/clipPlaneFragment-Bgl3Usc4.js.br +0 -0
- package/public/assets/clipPlaneFragment-Bgl3Usc4.js.gz +0 -0
- package/public/assets/clipPlaneVertex-BxK9aoI2.js +177 -0
- package/public/assets/clipPlaneVertex-BxK9aoI2.js.br +0 -0
- package/public/assets/clipPlaneVertex-BxK9aoI2.js.gz +0 -0
- package/public/assets/color.fragment-BUdIBar6.js +20 -0
- package/public/assets/color.fragment-BUdIBar6.js.br +0 -0
- package/public/assets/color.fragment-BUdIBar6.js.gz +0 -0
- package/public/assets/color.fragment-CDn4ZgkT.js +21 -0
- package/public/assets/color.fragment-CDn4ZgkT.js.br +0 -0
- package/public/assets/color.fragment-CDn4ZgkT.js.gz +0 -0
- package/public/assets/color.vertex-CaMOSKlC.js +39 -0
- package/public/assets/color.vertex-CaMOSKlC.js.br +5 -0
- package/public/assets/color.vertex-CaMOSKlC.js.gz +0 -0
- package/public/assets/color.vertex-dgbB6mhK.js +32 -0
- package/public/assets/color.vertex-dgbB6mhK.js.br +0 -0
- package/public/assets/color.vertex-dgbB6mhK.js.gz +0 -0
- package/public/assets/dds-3J0FZYX1.js +1 -0
- package/public/assets/dds-3J0FZYX1.js.br +0 -0
- package/public/assets/dds-3J0FZYX1.js.gz +0 -0
- package/public/assets/ddsTextureLoader-s5HptTVZ.js +1 -0
- package/public/assets/ddsTextureLoader-s5HptTVZ.js.br +0 -0
- package/public/assets/ddsTextureLoader-s5HptTVZ.js.gz +0 -0
- package/public/assets/default.fragment-C4xg7O-P.js +526 -0
- package/public/assets/default.fragment-C4xg7O-P.js.br +0 -0
- package/public/assets/default.fragment-C4xg7O-P.js.gz +0 -0
- package/public/assets/default.fragment-C4zjkcFb.js +468 -0
- package/public/assets/default.fragment-C4zjkcFb.js.br +0 -0
- package/public/assets/default.fragment-C4zjkcFb.js.gz +0 -0
- package/public/assets/default.vertex-A8wQopNr.js +193 -0
- package/public/assets/default.vertex-A8wQopNr.js.br +0 -0
- package/public/assets/default.vertex-A8wQopNr.js.gz +0 -0
- package/public/assets/default.vertex-YrvIUn4x.js +181 -0
- package/public/assets/default.vertex-YrvIUn4x.js.br +0 -0
- package/public/assets/default.vertex-YrvIUn4x.js.gz +0 -0
- package/public/assets/defaultUboDeclaration-C8GCosBM.js +5 -0
- package/public/assets/defaultUboDeclaration-C8GCosBM.js.br +0 -0
- package/public/assets/defaultUboDeclaration-C8GCosBM.js.gz +0 -0
- package/public/assets/defaultUboDeclaration-D26o_DDO.js +7 -0
- package/public/assets/defaultUboDeclaration-D26o_DDO.js.br +0 -0
- package/public/assets/defaultUboDeclaration-D26o_DDO.js.gz +0 -0
- package/public/assets/depth.fragment-Bn8G24s-.js +40 -0
- package/public/assets/depth.fragment-Bn8G24s-.js.br +4 -0
- package/public/assets/depth.fragment-Bn8G24s-.js.gz +0 -0
- package/public/assets/depth.vertex-B2lrdlJh.js +57 -0
- package/public/assets/depth.vertex-B2lrdlJh.js.br +0 -0
- package/public/assets/depth.vertex-B2lrdlJh.js.gz +0 -0
- package/public/assets/depthBoxBlur.fragment-BtTv8wid.js +5 -0
- package/public/assets/depthBoxBlur.fragment-BtTv8wid.js.br +0 -0
- package/public/assets/depthBoxBlur.fragment-BtTv8wid.js.gz +0 -0
- package/public/assets/depthBoxBlur.fragment-DViDG6Vb.js +6 -0
- package/public/assets/depthBoxBlur.fragment-DViDG6Vb.js.br +0 -0
- package/public/assets/depthBoxBlur.fragment-DViDG6Vb.js.gz +0 -0
- package/public/assets/depthOfFieldMerge.fragment-DCspcdWZ.js +26 -0
- package/public/assets/depthOfFieldMerge.fragment-DCspcdWZ.js.br +0 -0
- package/public/assets/depthOfFieldMerge.fragment-DCspcdWZ.js.gz +0 -0
- package/public/assets/depthOfFieldMerge.fragment-Ds-g4Ln8.js +21 -0
- package/public/assets/depthOfFieldMerge.fragment-Ds-g4Ln8.js.br +0 -0
- package/public/assets/depthOfFieldMerge.fragment-Ds-g4Ln8.js.gz +0 -0
- package/public/assets/dynamicTexture-Cuby-VOT.js +1329 -0
- package/public/assets/dynamicTexture-Cuby-VOT.js.br +0 -0
- package/public/assets/dynamicTexture-Cuby-VOT.js.gz +0 -0
- package/public/assets/easing-DbzzrXOl.js +1 -0
- package/public/assets/easing-DbzzrXOl.js.br +0 -0
- package/public/assets/easing-DbzzrXOl.js.gz +0 -0
- package/public/assets/editor-core-plugin-host-c2002442.js +1 -0
- package/public/assets/editor-core-plugin-host-c2002442.js.br +0 -0
- package/public/assets/editor-core-plugin-host-c2002442.js.gz +0 -0
- package/public/assets/exrTextureLoader-D39k4eK_.js +1 -0
- package/public/assets/exrTextureLoader-D39k4eK_.js.br +0 -0
- package/public/assets/exrTextureLoader-D39k4eK_.js.gz +0 -0
- package/public/assets/flowGraphArrayIndexBlock-C8nTWR8h.js +1 -0
- package/public/assets/flowGraphArrayIndexBlock-C8nTWR8h.js.br +0 -0
- package/public/assets/flowGraphArrayIndexBlock-C8nTWR8h.js.gz +0 -0
- package/public/assets/flowGraphBezierCurveEasingBlock-Izh7s0Zh.js +1 -0
- package/public/assets/flowGraphBezierCurveEasingBlock-Izh7s0Zh.js.br +0 -0
- package/public/assets/flowGraphBezierCurveEasingBlock-Izh7s0Zh.js.gz +0 -0
- package/public/assets/flowGraphBinaryOperationBlock-BRfalQP5.js +1 -0
- package/public/assets/flowGraphBinaryOperationBlock-BRfalQP5.js.br +0 -0
- package/public/assets/flowGraphBinaryOperationBlock-BRfalQP5.js.gz +0 -0
- package/public/assets/flowGraphBranchBlock-CV_leJX3.js +1 -0
- package/public/assets/flowGraphBranchBlock-CV_leJX3.js.br +0 -0
- package/public/assets/flowGraphBranchBlock-CV_leJX3.js.gz +0 -0
- package/public/assets/flowGraphCachedOperationBlock-BysRM-Ha.js +1 -0
- package/public/assets/flowGraphCachedOperationBlock-BysRM-Ha.js.br +2 -0
- package/public/assets/flowGraphCachedOperationBlock-BysRM-Ha.js.gz +0 -0
- package/public/assets/flowGraphCancelDelayBlock-BK6tDTGy.js +1 -0
- package/public/assets/flowGraphCancelDelayBlock-BK6tDTGy.js.br +0 -0
- package/public/assets/flowGraphCancelDelayBlock-BK6tDTGy.js.gz +0 -0
- package/public/assets/flowGraphCodeExecutionBlock-CQABvaP8.js +1 -0
- package/public/assets/flowGraphCodeExecutionBlock-CQABvaP8.js.br +0 -0
- package/public/assets/flowGraphCodeExecutionBlock-CQABvaP8.js.gz +0 -0
- package/public/assets/flowGraphConditionalDataBlock-D7OU_UOM.js +1 -0
- package/public/assets/flowGraphConditionalDataBlock-D7OU_UOM.js.br +0 -0
- package/public/assets/flowGraphConditionalDataBlock-D7OU_UOM.js.gz +0 -0
- package/public/assets/flowGraphConsoleLogBlock-BBxVDGOV.js +1 -0
- package/public/assets/flowGraphConsoleLogBlock-BBxVDGOV.js.br +0 -0
- package/public/assets/flowGraphConsoleLogBlock-BBxVDGOV.js.gz +0 -0
- package/public/assets/flowGraphConstantBlock-Cn3ZMGR0.js +1 -0
- package/public/assets/flowGraphConstantBlock-Cn3ZMGR0.js.br +0 -0
- package/public/assets/flowGraphConstantBlock-Cn3ZMGR0.js.gz +0 -0
- package/public/assets/flowGraphContextBlock-BS3b2XbE.js +1 -0
- package/public/assets/flowGraphContextBlock-BS3b2XbE.js.br +0 -0
- package/public/assets/flowGraphContextBlock-BS3b2XbE.js.gz +0 -0
- package/public/assets/flowGraphCounterBlock-xdcRCw4l.js +1 -0
- package/public/assets/flowGraphCounterBlock-xdcRCw4l.js.br +0 -0
- package/public/assets/flowGraphCounterBlock-xdcRCw4l.js.gz +0 -0
- package/public/assets/flowGraphDataSwitchBlock-dY8TSZtd.js +1 -0
- package/public/assets/flowGraphDataSwitchBlock-dY8TSZtd.js.br +0 -0
- package/public/assets/flowGraphDataSwitchBlock-dY8TSZtd.js.gz +0 -0
- package/public/assets/flowGraphDebounceBlock-Q_f2x-ID.js +1 -0
- package/public/assets/flowGraphDebounceBlock-Q_f2x-ID.js.br +0 -0
- package/public/assets/flowGraphDebounceBlock-Q_f2x-ID.js.gz +0 -0
- package/public/assets/flowGraphDoNBlock-COo31G00.js +1 -0
- package/public/assets/flowGraphDoNBlock-COo31G00.js.br +0 -0
- package/public/assets/flowGraphDoNBlock-COo31G00.js.gz +0 -0
- package/public/assets/flowGraphEasingBlock-jGW-fKIB.js +1 -0
- package/public/assets/flowGraphEasingBlock-jGW-fKIB.js.br +0 -0
- package/public/assets/flowGraphEasingBlock-jGW-fKIB.js.gz +0 -0
- package/public/assets/flowGraphFlipFlopBlock-B8znf-3o.js +1 -0
- package/public/assets/flowGraphFlipFlopBlock-B8znf-3o.js.br +0 -0
- package/public/assets/flowGraphFlipFlopBlock-B8znf-3o.js.gz +0 -0
- package/public/assets/flowGraphForLoopBlock-UxZSh8US.js +1 -0
- package/public/assets/flowGraphForLoopBlock-UxZSh8US.js.br +0 -0
- package/public/assets/flowGraphForLoopBlock-UxZSh8US.js.gz +0 -0
- package/public/assets/flowGraphFunctionReferenceBlock-c3ZQWBhk.js +1 -0
- package/public/assets/flowGraphFunctionReferenceBlock-c3ZQWBhk.js.br +0 -0
- package/public/assets/flowGraphFunctionReferenceBlock-c3ZQWBhk.js.gz +0 -0
- package/public/assets/flowGraphGetAssetBlock-B3zYUZmJ.js +1 -0
- package/public/assets/flowGraphGetAssetBlock-B3zYUZmJ.js.br +0 -0
- package/public/assets/flowGraphGetAssetBlock-B3zYUZmJ.js.gz +0 -0
- package/public/assets/flowGraphGetPropertyBlock-D--vcmMS.js +1 -0
- package/public/assets/flowGraphGetPropertyBlock-D--vcmMS.js.br +0 -0
- package/public/assets/flowGraphGetPropertyBlock-D--vcmMS.js.gz +0 -0
- package/public/assets/flowGraphGetVariableBlock-BkCEyiL6.js +1 -0
- package/public/assets/flowGraphGetVariableBlock-BkCEyiL6.js.br +0 -0
- package/public/assets/flowGraphGetVariableBlock-BkCEyiL6.js.gz +0 -0
- package/public/assets/flowGraphIndexOfBlock-C4ipR7YB.js +1 -0
- package/public/assets/flowGraphIndexOfBlock-C4ipR7YB.js.br +0 -0
- package/public/assets/flowGraphIndexOfBlock-C4ipR7YB.js.gz +0 -0
- package/public/assets/flowGraphInterpolationBlock-DuRc3LX7.js +1 -0
- package/public/assets/flowGraphInterpolationBlock-DuRc3LX7.js.br +0 -0
- package/public/assets/flowGraphInterpolationBlock-DuRc3LX7.js.gz +0 -0
- package/public/assets/flowGraphJsonPointerParserBlock-urEWktqi.js +1 -0
- package/public/assets/flowGraphJsonPointerParserBlock-urEWktqi.js.br +0 -0
- package/public/assets/flowGraphJsonPointerParserBlock-urEWktqi.js.gz +0 -0
- package/public/assets/flowGraphMathBlocks-CGTCQVqz.js +1 -0
- package/public/assets/flowGraphMathBlocks-CGTCQVqz.js.br +0 -0
- package/public/assets/flowGraphMathBlocks-CGTCQVqz.js.gz +0 -0
- package/public/assets/flowGraphMathCombineExtractBlocks-DDHGbRPt.js +1 -0
- package/public/assets/flowGraphMathCombineExtractBlocks-DDHGbRPt.js.br +0 -0
- package/public/assets/flowGraphMathCombineExtractBlocks-DDHGbRPt.js.gz +0 -0
- package/public/assets/flowGraphMatrixMathBlocks-Bwp1BysB.js +1 -0
- package/public/assets/flowGraphMatrixMathBlocks-Bwp1BysB.js.br +0 -0
- package/public/assets/flowGraphMatrixMathBlocks-Bwp1BysB.js.gz +0 -0
- package/public/assets/flowGraphMeshPickEventBlock-2wkqhQCG.js +1 -0
- package/public/assets/flowGraphMeshPickEventBlock-2wkqhQCG.js.br +0 -0
- package/public/assets/flowGraphMeshPickEventBlock-2wkqhQCG.js.gz +0 -0
- package/public/assets/flowGraphMultiGateBlock-BuKmvqC8.js +1 -0
- package/public/assets/flowGraphMultiGateBlock-BuKmvqC8.js.br +0 -0
- package/public/assets/flowGraphMultiGateBlock-BuKmvqC8.js.gz +0 -0
- package/public/assets/flowGraphPauseAnimationBlock-T_-VP-t5.js +1 -0
- package/public/assets/flowGraphPauseAnimationBlock-T_-VP-t5.js.br +0 -0
- package/public/assets/flowGraphPauseAnimationBlock-T_-VP-t5.js.gz +0 -0
- package/public/assets/flowGraphPlayAnimationBlock-DDVrE__n.js +1 -0
- package/public/assets/flowGraphPlayAnimationBlock-DDVrE__n.js.br +0 -0
- package/public/assets/flowGraphPlayAnimationBlock-DDVrE__n.js.gz +0 -0
- package/public/assets/flowGraphPointerOutEventBlock-Cx15Sf5R.js +1 -0
- package/public/assets/flowGraphPointerOutEventBlock-Cx15Sf5R.js.br +0 -0
- package/public/assets/flowGraphPointerOutEventBlock-Cx15Sf5R.js.gz +0 -0
- package/public/assets/flowGraphPointerOverEventBlock-DzzHa-dN.js +1 -0
- package/public/assets/flowGraphPointerOverEventBlock-DzzHa-dN.js.br +0 -0
- package/public/assets/flowGraphPointerOverEventBlock-DzzHa-dN.js.gz +0 -0
- package/public/assets/flowGraphReceiveCustomEventBlock-DKfLODu3.js +1 -0
- package/public/assets/flowGraphReceiveCustomEventBlock-DKfLODu3.js.br +0 -0
- package/public/assets/flowGraphReceiveCustomEventBlock-DKfLODu3.js.gz +0 -0
- package/public/assets/flowGraphSceneReadyEventBlock-ClJu3s64.js +1 -0
- package/public/assets/flowGraphSceneReadyEventBlock-ClJu3s64.js.br +0 -0
- package/public/assets/flowGraphSceneReadyEventBlock-ClJu3s64.js.gz +0 -0
- package/public/assets/flowGraphSceneTickEventBlock-3ZNr4eqw.js +1 -0
- package/public/assets/flowGraphSceneTickEventBlock-3ZNr4eqw.js.br +0 -0
- package/public/assets/flowGraphSceneTickEventBlock-3ZNr4eqw.js.gz +0 -0
- package/public/assets/flowGraphSendCustomEventBlock-CdKQeuma.js +1 -0
- package/public/assets/flowGraphSendCustomEventBlock-CdKQeuma.js.br +0 -0
- package/public/assets/flowGraphSendCustomEventBlock-CdKQeuma.js.gz +0 -0
- package/public/assets/flowGraphSequenceBlock-D0-_bFV3.js +1 -0
- package/public/assets/flowGraphSequenceBlock-D0-_bFV3.js.br +0 -0
- package/public/assets/flowGraphSequenceBlock-D0-_bFV3.js.gz +0 -0
- package/public/assets/flowGraphSetDelayBlock-B8946WOc.js +1 -0
- package/public/assets/flowGraphSetDelayBlock-B8946WOc.js.br +0 -0
- package/public/assets/flowGraphSetDelayBlock-B8946WOc.js.gz +0 -0
- package/public/assets/flowGraphSetPropertyBlock-Cx0IyW-a.js +1 -0
- package/public/assets/flowGraphSetPropertyBlock-Cx0IyW-a.js.br +0 -0
- package/public/assets/flowGraphSetPropertyBlock-Cx0IyW-a.js.gz +0 -0
- package/public/assets/flowGraphSetVariableBlock-0dns_CH6.js +1 -0
- package/public/assets/flowGraphSetVariableBlock-0dns_CH6.js.br +0 -0
- package/public/assets/flowGraphSetVariableBlock-0dns_CH6.js.gz +0 -0
- package/public/assets/flowGraphStopAnimationBlock-z4ou311H.js +1 -0
- package/public/assets/flowGraphStopAnimationBlock-z4ou311H.js.br +0 -0
- package/public/assets/flowGraphStopAnimationBlock-z4ou311H.js.gz +0 -0
- package/public/assets/flowGraphSwitchBlock-E7meS39u.js +1 -0
- package/public/assets/flowGraphSwitchBlock-E7meS39u.js.br +0 -0
- package/public/assets/flowGraphSwitchBlock-E7meS39u.js.gz +0 -0
- package/public/assets/flowGraphThrottleBlock-CldHJDs6.js +1 -0
- package/public/assets/flowGraphThrottleBlock-CldHJDs6.js.br +0 -0
- package/public/assets/flowGraphThrottleBlock-CldHJDs6.js.gz +0 -0
- package/public/assets/flowGraphTransformCoordinatesSystemBlock-pYdpcwK7.js +1 -0
- package/public/assets/flowGraphTransformCoordinatesSystemBlock-pYdpcwK7.js.br +0 -0
- package/public/assets/flowGraphTransformCoordinatesSystemBlock-pYdpcwK7.js.gz +0 -0
- package/public/assets/flowGraphTypeToTypeBlocks-CYfvLPJ-.js +1 -0
- package/public/assets/flowGraphTypeToTypeBlocks-CYfvLPJ-.js.br +0 -0
- package/public/assets/flowGraphTypeToTypeBlocks-CYfvLPJ-.js.gz +0 -0
- package/public/assets/flowGraphUnaryOperationBlock-s-kJ99D8.js +1 -0
- package/public/assets/flowGraphUnaryOperationBlock-s-kJ99D8.js.br +0 -0
- package/public/assets/flowGraphUnaryOperationBlock-s-kJ99D8.js.gz +0 -0
- package/public/assets/flowGraphVectorMathBlocks-D7iofIoY.js +1 -0
- package/public/assets/flowGraphVectorMathBlocks-D7iofIoY.js.br +0 -0
- package/public/assets/flowGraphVectorMathBlocks-D7iofIoY.js.gz +0 -0
- package/public/assets/flowGraphWaitAllBlock-CAW7HgUP.js +1 -0
- package/public/assets/flowGraphWaitAllBlock-CAW7HgUP.js.br +0 -0
- package/public/assets/flowGraphWaitAllBlock-CAW7HgUP.js.gz +0 -0
- package/public/assets/flowGraphWhileLoopBlock-DRP9_Zd1.js +1 -0
- package/public/assets/flowGraphWhileLoopBlock-DRP9_Zd1.js.br +0 -0
- package/public/assets/flowGraphWhileLoopBlock-DRP9_Zd1.js.gz +0 -0
- package/public/assets/fogFragmentDeclaration-CzUy86ul.js +22 -0
- package/public/assets/fogFragmentDeclaration-CzUy86ul.js.br +0 -0
- package/public/assets/fogFragmentDeclaration-CzUy86ul.js.gz +0 -0
- package/public/assets/fogFragmentDeclaration-kfcrkpgB.js +23 -0
- package/public/assets/fogFragmentDeclaration-kfcrkpgB.js.br +0 -0
- package/public/assets/fogFragmentDeclaration-kfcrkpgB.js.gz +0 -0
- package/public/assets/glowBlurPostProcess.fragment-CS_rTtUL.js +7 -0
- package/public/assets/glowBlurPostProcess.fragment-CS_rTtUL.js.br +0 -0
- package/public/assets/glowBlurPostProcess.fragment-CS_rTtUL.js.gz +0 -0
- package/public/assets/glowBlurPostProcess.fragment-G_xfSiIr.js +7 -0
- package/public/assets/glowBlurPostProcess.fragment-G_xfSiIr.js.br +0 -0
- package/public/assets/glowBlurPostProcess.fragment-G_xfSiIr.js.gz +0 -0
- package/public/assets/glowMapGeneration.fragment-DwJ3bpr6.js +63 -0
- package/public/assets/glowMapGeneration.fragment-DwJ3bpr6.js.br +0 -0
- package/public/assets/glowMapGeneration.fragment-DwJ3bpr6.js.gz +0 -0
- package/public/assets/glowMapGeneration.fragment-mDEHNZRi.js +63 -0
- package/public/assets/glowMapGeneration.fragment-mDEHNZRi.js.br +0 -0
- package/public/assets/glowMapGeneration.fragment-mDEHNZRi.js.gz +0 -0
- package/public/assets/glowMapGeneration.vertex-BACa9-r4.js +75 -0
- package/public/assets/glowMapGeneration.vertex-BACa9-r4.js.br +0 -0
- package/public/assets/glowMapGeneration.vertex-BACa9-r4.js.gz +0 -0
- package/public/assets/glowMapGeneration.vertex-mAWUJxSB.js +75 -0
- package/public/assets/glowMapGeneration.vertex-mAWUJxSB.js.br +3 -0
- package/public/assets/glowMapGeneration.vertex-mAWUJxSB.js.gz +0 -0
- package/public/assets/glowMapMerge.fragment-0Im35OVD.js +23 -0
- package/public/assets/glowMapMerge.fragment-0Im35OVD.js.br +0 -0
- package/public/assets/glowMapMerge.fragment-0Im35OVD.js.gz +0 -0
- package/public/assets/glowMapMerge.fragment-BXHfrWgL.js +25 -0
- package/public/assets/glowMapMerge.fragment-BXHfrWgL.js.br +0 -0
- package/public/assets/glowMapMerge.fragment-BXHfrWgL.js.gz +0 -0
- package/public/assets/glowMapMerge.vertex-8A2ntYoS.js +7 -0
- package/public/assets/glowMapMerge.vertex-8A2ntYoS.js.br +0 -0
- package/public/assets/glowMapMerge.vertex-8A2ntYoS.js.gz +0 -0
- package/public/assets/glowMapMerge.vertex-Cnm-5WLT.js +8 -0
- package/public/assets/glowMapMerge.vertex-Cnm-5WLT.js.br +0 -0
- package/public/assets/glowMapMerge.vertex-Cnm-5WLT.js.gz +0 -0
- package/public/assets/grain.fragment-BMGi-Hgp.js +6 -0
- package/public/assets/grain.fragment-BMGi-Hgp.js.br +0 -0
- package/public/assets/grain.fragment-BMGi-Hgp.js.gz +0 -0
- package/public/assets/grain.fragment-CH9zg05c.js +5 -0
- package/public/assets/grain.fragment-CH9zg05c.js.br +0 -0
- package/public/assets/grain.fragment-CH9zg05c.js.gz +0 -0
- package/public/assets/harmonicsFunctions-BQTTvws3.js +192 -0
- package/public/assets/harmonicsFunctions-BQTTvws3.js.br +0 -0
- package/public/assets/harmonicsFunctions-BQTTvws3.js.gz +0 -0
- package/public/assets/harmonicsFunctions-DtIiYWL1.js +189 -0
- package/public/assets/harmonicsFunctions-DtIiYWL1.js.br +0 -0
- package/public/assets/harmonicsFunctions-DtIiYWL1.js.gz +0 -0
- package/public/assets/hdrTextureLoader-Dqvpv0kr.js +2 -0
- package/public/assets/hdrTextureLoader-Dqvpv0kr.js.br +0 -0
- package/public/assets/hdrTextureLoader-Dqvpv0kr.js.gz +0 -0
- package/public/assets/iesTextureLoader-B8AoKSG2.js +2 -0
- package/public/assets/iesTextureLoader-B8AoKSG2.js.br +0 -0
- package/public/assets/iesTextureLoader-B8AoKSG2.js.gz +0 -0
- package/public/assets/index-CiIoJ8v1.js +4 -0
- package/public/assets/index-CiIoJ8v1.js.br +0 -0
- package/public/assets/index-CiIoJ8v1.js.gz +0 -0
- package/public/assets/index-Dhf9rSmv.js +1 -0
- package/public/assets/index-Dhf9rSmv.js.br +0 -0
- package/public/assets/index-Dhf9rSmv.js.gz +0 -0
- package/public/assets/instancesDeclaration-B2a0VuuR.js +23 -0
- package/public/assets/instancesDeclaration-B2a0VuuR.js.br +0 -0
- package/public/assets/instancesDeclaration-B2a0VuuR.js.gz +0 -0
- package/public/assets/ktxTextureLoader-DTr7AKqG.js +1 -0
- package/public/assets/ktxTextureLoader-DTr7AKqG.js.br +0 -0
- package/public/assets/ktxTextureLoader-DTr7AKqG.js.gz +0 -0
- package/public/assets/lazy-Cj-01uhW.js +2 -0
- package/public/assets/lazy-Cj-01uhW.js.br +0 -0
- package/public/assets/lazy-Cj-01uhW.js.gz +0 -0
- package/public/assets/lod.fragment-BuvQbBhE.js +3 -0
- package/public/assets/lod.fragment-BuvQbBhE.js.br +0 -0
- package/public/assets/lod.fragment-BuvQbBhE.js.gz +0 -0
- package/public/assets/lod.fragment-Cp0eqGjl.js +3 -0
- package/public/assets/lod.fragment-Cp0eqGjl.js.br +3 -0
- package/public/assets/lod.fragment-Cp0eqGjl.js.gz +0 -0
- package/public/assets/lodCube.fragment-CI1eTppS.js +22 -0
- package/public/assets/lodCube.fragment-CI1eTppS.js.br +2 -0
- package/public/assets/lodCube.fragment-CI1eTppS.js.gz +0 -0
- package/public/assets/lodCube.fragment-yDzV1teg.js +22 -0
- package/public/assets/lodCube.fragment-yDzV1teg.js.br +0 -0
- package/public/assets/lodCube.fragment-yDzV1teg.js.gz +0 -0
- package/public/assets/logDepthDeclaration-CeLLOhuK.js +4 -0
- package/public/assets/logDepthDeclaration-XDsVKoT0.js +4 -0
- package/public/assets/logDepthFragment-BPP-rBiT.js +4 -0
- package/public/assets/logDepthFragment-BPP-rBiT.js.br +0 -0
- package/public/assets/logDepthFragment-BPP-rBiT.js.gz +0 -0
- package/public/assets/logDepthFragment-CDaMyvfH.js +4 -0
- package/public/assets/logDepthVertex-CkFa6uAf.js +4 -0
- package/public/assets/logDepthVertex-CkFa6uAf.js.br +0 -0
- package/public/assets/logDepthVertex-CkFa6uAf.js.gz +0 -0
- package/public/assets/logDepthVertex-H6E8NLz1.js +4 -0
- package/public/assets/logDepthVertex-H6E8NLz1.js.br +1 -0
- package/public/assets/logDepthVertex-H6E8NLz1.js.gz +0 -0
- package/public/assets/mainUVVaryingDeclaration-DdwP8xi_.js +4 -0
- package/public/assets/mainUVVaryingDeclaration-OBB3LR8s.js +4 -0
- package/public/assets/mesh.vertexData.functions-BXkNVxNr.js +1 -0
- package/public/assets/mesh.vertexData.functions-BXkNVxNr.js.br +0 -0
- package/public/assets/mesh.vertexData.functions-BXkNVxNr.js.gz +0 -0
- package/public/assets/meshUboDeclaration-Cr5YhBB1.js +13 -0
- package/public/assets/meshUboDeclaration-Cr5YhBB1.js.br +0 -0
- package/public/assets/meshUboDeclaration-Cr5YhBB1.js.gz +0 -0
- package/public/assets/meshUboDeclaration-Uj1CsoJP.js +13 -0
- package/public/assets/meshUboDeclaration-Uj1CsoJP.js.br +0 -0
- package/public/assets/meshUboDeclaration-Uj1CsoJP.js.gz +0 -0
- package/public/assets/morphTargetsVertex-B9xWvV_u.js +100 -0
- package/public/assets/morphTargetsVertex-B9xWvV_u.js.br +0 -0
- package/public/assets/morphTargetsVertex-B9xWvV_u.js.gz +0 -0
- package/public/assets/oitFinalSimpleBlend.fragment-4NtZHGOG.js +3 -0
- package/public/assets/oitFinalSimpleBlend.fragment-4NtZHGOG.js.br +0 -0
- package/public/assets/oitFinalSimpleBlend.fragment-4NtZHGOG.js.gz +0 -0
- package/public/assets/oitFinalSimpleBlend.fragment-D8T6jyS0.js +2 -0
- package/public/assets/oitFinalSimpleBlend.fragment-D8T6jyS0.js.br +3 -0
- package/public/assets/oitFinalSimpleBlend.fragment-D8T6jyS0.js.gz +0 -0
- package/public/assets/oitFragment-CK8Y-Z-q.js +1202 -0
- package/public/assets/oitFragment-CK8Y-Z-q.js.br +0 -0
- package/public/assets/oitFragment-CK8Y-Z-q.js.gz +0 -0
- package/public/assets/oitFragment-ZUHesxAg.js +1077 -0
- package/public/assets/oitFragment-ZUHesxAg.js.br +0 -0
- package/public/assets/oitFragment-ZUHesxAg.js.gz +0 -0
- package/public/assets/openpbrMaterial-Dc7VVRl6.js +2 -0
- package/public/assets/openpbrMaterial-Dc7VVRl6.js.br +0 -0
- package/public/assets/openpbrMaterial-Dc7VVRl6.js.gz +0 -0
- package/public/assets/outline.fragment-BK0vgcx7.js +21 -0
- package/public/assets/outline.fragment-BK0vgcx7.js.br +0 -0
- package/public/assets/outline.fragment-BK0vgcx7.js.gz +0 -0
- package/public/assets/outline.fragment-DQK2JikO.js +18 -0
- package/public/assets/outline.fragment-DQK2JikO.js.br +0 -0
- package/public/assets/outline.fragment-DQK2JikO.js.gz +0 -0
- package/public/assets/outline.vertex-CHR7GZYH.js +47 -0
- package/public/assets/outline.vertex-CHR7GZYH.js.br +0 -0
- package/public/assets/outline.vertex-CHR7GZYH.js.gz +0 -0
- package/public/assets/outline.vertex-CKcILDiL.js +47 -0
- package/public/assets/outline.vertex-CKcILDiL.js.br +0 -0
- package/public/assets/outline.vertex-CKcILDiL.js.gz +0 -0
- package/public/assets/passCube.fragment-Ch6aeybh.js +23 -0
- package/public/assets/passCube.fragment-Ch6aeybh.js.br +0 -0
- package/public/assets/passCube.fragment-Ch6aeybh.js.gz +0 -0
- package/public/assets/passCube.fragment-wvJ8mb6_.js +23 -0
- package/public/assets/passCube.fragment-wvJ8mb6_.js.br +0 -0
- package/public/assets/passCube.fragment-wvJ8mb6_.js.gz +0 -0
- package/public/assets/pbr.fragment-Bo4XM7Ct.js +3277 -0
- package/public/assets/pbr.fragment-Bo4XM7Ct.js.br +0 -0
- package/public/assets/pbr.fragment-Bo4XM7Ct.js.gz +0 -0
- package/public/assets/pbr.fragment-T2xKI2J0.js +3327 -0
- package/public/assets/pbr.fragment-T2xKI2J0.js.br +0 -0
- package/public/assets/pbr.fragment-T2xKI2J0.js.gz +0 -0
- package/public/assets/pbr.vertex-BezAbBHx.js +357 -0
- package/public/assets/pbr.vertex-BezAbBHx.js.br +0 -0
- package/public/assets/pbr.vertex-BezAbBHx.js.gz +0 -0
- package/public/assets/pbr.vertex-w2ZWBdHy.js +227 -0
- package/public/assets/pbr.vertex-w2ZWBdHy.js.br +0 -0
- package/public/assets/pbr.vertex-w2ZWBdHy.js.gz +0 -0
- package/public/assets/playable-sdk-zAYuBOLj.js +8 -0
- package/public/assets/playable-sdk-zAYuBOLj.js.br +0 -0
- package/public/assets/playable-sdk-zAYuBOLj.js.gz +0 -0
- package/public/assets/playable-standard-project-Brbyn9c4.js +5140 -0
- package/public/assets/playable-standard-project-Brbyn9c4.js.br +0 -0
- package/public/assets/playable-standard-project-Brbyn9c4.js.gz +0 -0
- package/public/assets/rgbdDecode.fragment-BQ16CsAv.js +5 -0
- package/public/assets/rgbdDecode.fragment-BQ16CsAv.js.br +4 -0
- package/public/assets/rgbdDecode.fragment-BQ16CsAv.js.gz +0 -0
- package/public/assets/rgbdDecode.fragment-D_2CJy2O.js +5 -0
- package/public/assets/rgbdDecode.fragment-D_2CJy2O.js.br +0 -0
- package/public/assets/rgbdDecode.fragment-D_2CJy2O.js.gz +0 -0
- package/public/assets/rgbdEncode.fragment-CmDv6yEZ.js +5 -0
- package/public/assets/rgbdEncode.fragment-CmDv6yEZ.js.br +3 -0
- package/public/assets/rgbdEncode.fragment-CmDv6yEZ.js.gz +0 -0
- package/public/assets/rgbdEncode.fragment-QRg2h8KC.js +5 -0
- package/public/assets/rgbdEncode.fragment-QRg2h8KC.js.br +1 -0
- package/public/assets/rgbdEncode.fragment-QRg2h8KC.js.gz +0 -0
- package/public/assets/sceneLoader-CDreObGG.js +1 -0
- package/public/assets/sceneLoader-CDreObGG.js.br +0 -0
- package/public/assets/sceneLoader-CDreObGG.js.gz +0 -0
- package/public/assets/screenSpaceCurvature.fragment-BWdr_4iW.js +15 -0
- package/public/assets/screenSpaceCurvature.fragment-BWdr_4iW.js.br +0 -0
- package/public/assets/screenSpaceCurvature.fragment-BWdr_4iW.js.gz +0 -0
- package/public/assets/selection.fragment-CVXAuXcC.js +35 -0
- package/public/assets/selection.fragment-CVXAuXcC.js.br +0 -0
- package/public/assets/selection.fragment-CVXAuXcC.js.gz +0 -0
- package/public/assets/selection.fragment-DobH4NRw.js +35 -0
- package/public/assets/selection.fragment-DobH4NRw.js.br +0 -0
- package/public/assets/selection.fragment-DobH4NRw.js.gz +0 -0
- package/public/assets/selection.vertex-BUBv8X1j.js +74 -0
- package/public/assets/selection.vertex-BUBv8X1j.js.br +0 -0
- package/public/assets/selection.vertex-BUBv8X1j.js.gz +0 -0
- package/public/assets/selection.vertex-DlADXBtf.js +73 -0
- package/public/assets/selection.vertex-DlADXBtf.js.br +0 -0
- package/public/assets/selection.vertex-DlADXBtf.js.gz +0 -0
- package/public/assets/selectionOutline.fragment-CWpNrg8m.js +47 -0
- package/public/assets/selectionOutline.fragment-CWpNrg8m.js.br +0 -0
- package/public/assets/selectionOutline.fragment-CWpNrg8m.js.gz +0 -0
- package/public/assets/selectionOutline.fragment-DoKuUf2L.js +48 -0
- package/public/assets/selectionOutline.fragment-DoKuUf2L.js.br +0 -0
- package/public/assets/selectionOutline.fragment-DoKuUf2L.js.gz +0 -0
- package/public/assets/shadowMap.fragment-BEwhnKOg.js +78 -0
- package/public/assets/shadowMap.fragment-BEwhnKOg.js.br +0 -0
- package/public/assets/shadowMap.fragment-BEwhnKOg.js.gz +0 -0
- package/public/assets/shadowMap.fragment-CVar4C4N.js +79 -0
- package/public/assets/shadowMap.fragment-CVar4C4N.js.br +0 -0
- package/public/assets/shadowMap.fragment-CVar4C4N.js.gz +0 -0
- package/public/assets/shadowMap.vertex-ImOoSjTb.js +109 -0
- package/public/assets/shadowMap.vertex-ImOoSjTb.js.br +0 -0
- package/public/assets/shadowMap.vertex-ImOoSjTb.js.gz +0 -0
- package/public/assets/shadowMap.vertex-Q2d15P5z.js +119 -0
- package/public/assets/shadowMap.vertex-Q2d15P5z.js.br +0 -0
- package/public/assets/shadowMap.vertex-Q2d15P5z.js.gz +0 -0
- package/public/assets/shadowMapFragmentSoftTransparentShadow-BmxybqRD.js +4 -0
- package/public/assets/shadowMapFragmentSoftTransparentShadow-BmxybqRD.js.br +0 -0
- package/public/assets/shadowMapFragmentSoftTransparentShadow-BmxybqRD.js.gz +0 -0
- package/public/assets/shadowMapFragmentSoftTransparentShadow-D6ZvWsNy.js +4 -0
- package/public/assets/shadowMapFragmentSoftTransparentShadow-D6ZvWsNy.js.br +0 -0
- package/public/assets/shadowMapFragmentSoftTransparentShadow-D6ZvWsNy.js.gz +0 -0
- package/public/assets/sharpen.fragment-CI40r28S.js +8 -0
- package/public/assets/sharpen.fragment-CI40r28S.js.br +0 -0
- package/public/assets/sharpen.fragment-CI40r28S.js.gz +0 -0
- package/public/assets/textureMerger.fragment-BGsvQGn5.js +84 -0
- package/public/assets/textureMerger.fragment-BGsvQGn5.js.br +0 -0
- package/public/assets/textureMerger.fragment-BGsvQGn5.js.gz +0 -0
- package/public/assets/textureMerger.fragment-Q7yPwkGt.js +76 -0
- package/public/assets/textureMerger.fragment-Q7yPwkGt.js.br +0 -0
- package/public/assets/textureMerger.fragment-Q7yPwkGt.js.gz +0 -0
- package/public/assets/tgaTextureLoader-D7Pjisvo.js +1 -0
- package/public/assets/tgaTextureLoader-D7Pjisvo.js.br +0 -0
- package/public/assets/tgaTextureLoader-D7Pjisvo.js.gz +0 -0
- package/public/assets/vertexColorMixing-CwuEx4gP.js +20 -0
- package/public/assets/vertexColorMixing-CwuEx4gP.js.br +0 -0
- package/public/assets/vertexColorMixing-CwuEx4gP.js.gz +0 -0
- package/public/assets/vertexColorMixing-DRlcGbEu.js +24 -0
- package/public/assets/vertexColorMixing-DRlcGbEu.js.br +2 -0
- package/public/assets/vertexColorMixing-DRlcGbEu.js.gz +0 -0
- package/public/assets/volumetricLightingBlendVolume.fragment-0VKaEyya.js +12 -0
- package/public/assets/volumetricLightingBlendVolume.fragment-0VKaEyya.js.br +0 -0
- package/public/assets/volumetricLightingBlendVolume.fragment-0VKaEyya.js.gz +0 -0
- package/public/assets/volumetricLightingBlendVolume.fragment-BZLjMggm.js +11 -0
- package/public/assets/volumetricLightingBlendVolume.fragment-BZLjMggm.js.br +0 -0
- package/public/assets/volumetricLightingBlendVolume.fragment-BZLjMggm.js.gz +0 -0
- package/public/assets/volumetricLightingRenderVolume.fragment-6GAsdyvE.js +15 -0
- package/public/assets/volumetricLightingRenderVolume.fragment-6GAsdyvE.js.br +0 -0
- package/public/assets/volumetricLightingRenderVolume.fragment-6GAsdyvE.js.gz +0 -0
- package/public/assets/volumetricLightingRenderVolume.fragment-Da_DpfG1.js +13 -0
- package/public/assets/volumetricLightingRenderVolume.fragment-Da_DpfG1.js.br +0 -0
- package/public/assets/volumetricLightingRenderVolume.fragment-Da_DpfG1.js.gz +0 -0
- package/public/assets/volumetricLightingRenderVolume.vertex-BdVFX-tC.js +4 -0
- package/public/assets/volumetricLightingRenderVolume.vertex-BdVFX-tC.js.br +0 -0
- package/public/assets/volumetricLightingRenderVolume.vertex-BdVFX-tC.js.gz +0 -0
- package/public/assets/volumetricLightingRenderVolume.vertex-DO-VIhJn.js +5 -0
- package/public/assets/volumetricLightingRenderVolume.vertex-DO-VIhJn.js.br +0 -0
- package/public/assets/volumetricLightingRenderVolume.vertex-DO-VIhJn.js.gz +0 -0
- package/public/assets/webAudioBus-BkMWEG1L.js +1 -0
- package/public/assets/webAudioBus-BkMWEG1L.js.br +0 -0
- package/public/assets/webAudioBus-BkMWEG1L.js.gz +0 -0
- package/public/assets/webAudioMainBus-DYcQXAkm.js +1 -0
- package/public/assets/webAudioMainBus-DYcQXAkm.js.br +0 -0
- package/public/assets/webAudioMainBus-DYcQXAkm.js.gz +0 -0
- package/public/assets/workerPool-H9Ji3mCo.js +1 -0
- package/public/assets/workerPool-H9Ji3mCo.js.br +2 -0
- package/public/assets/workerPool-H9Ji3mCo.js.gz +0 -0
- package/public/index.html +21 -0
- package/public/index.html.br +0 -0
- package/public/index.html.gz +0 -0
- package/runtime/editor-control-plane.mjs +5 -0
- package/runtime/runtime-debug-authoring-bridge.mjs +1 -0
- package/worker/editor-service-worker.mjs +27 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import{gp as wr,$ as qt,_ as tn,G as rn,H as nn,kv as Ct,kJ as an,kw as Yt,c3 as on,iK as sn,jR as cn,fZ as dn,j9 as ln,hn as un,jZ as mn,lq as Cr,lk as Mr,lr as fn,bM as gn,cQ as pn,bI as hn,bK as En,bN as bn,bL as Sn,bO as yn,bP as In,w as Pn,p as k,kr as An,nf as Tn,bJ as Rn,ne as vn,ng as wn,he as Cn,n as Mn,o as _n,r as Dn,m as Wt,s as On,kN as _r,g6 as W,bd as kt,ba as jn,m9 as kn,kT as Nn,gD as Ln,gr as xn,gq as Gn,hk as Fn,jm as Bn,ny as zn,gs as Un,D as $n,cS as Hn,l as Vn,E as qn,kM as Yn,jQ as Wn,lv as ut,q as Kn,t as Jn,u as Xn,lC as Kt,g0 as Zn,mC as Qn,ms as ea,jL as ta,aO as Jt,jx as Xt,n7 as Zt,mM as ra,gf as he,bn as na,bm as aa,gQ as oa,a5 as Qt,mD as ia}from"./playable-standard-project-Brbyn9c4.js";import{C as Ns,a as Ls,b as xs,c as Gs,d as Fs,e as Bs,f as zs,g as Us,h as $s,i as Hs,j as Vs,k as qs,v as Ys,x as Ws,y as Ks,z as Js,A as Xs,B as Zs,F as Qs,I as ec,J as tc,K as rc,L as nc,M as ac,N as oc,O as ic,P as sc,Q as cc,R as dc,S as lc,T as uc,U as mc,V as fc,W as gc,X as pc,Y as hc,Z as Ec,a0 as bc,a1 as Sc,a2 as yc,a3 as Ic,a4 as Pc,a6 as Ac,a7 as Tc,a8 as Rc,a9 as vc,aa as wc,ab as Cc,ac as Mc,ad as _c,ae as Dc,af as Oc,ag as jc,ah as kc,ai as Nc,aj as Lc,ak as xc,al as Gc,am as Fc,an as Bc,ao as zc,ap as Uc,aq as $c,ar as Hc,as as Vc,at as qc,au as Yc,av as Wc,aw as Kc,ax as Jc,ay as Xc,az as Zc,aA as Qc,aB as ed,aC as td,aD as rd,aE as nd,aF as ad,aG as od,aH as id,aI as sd,aJ as cd,aK as dd,aL as ld,aM as ud,aN as md,aP as fd,aQ as gd,aR as pd,aS as hd,aT as Ed,aU as bd,aV as Sd,aW as yd,aX as Id,aY as Pd,aZ as Ad,a_ as Td,a$ as Rd,b0 as vd,b1 as wd,b2 as Cd,b3 as Md,b4 as _d,b5 as Dd,b6 as Od,b7 as jd,b8 as kd,b9 as Nd,bb as Ld,bc as xd,be as Gd,bf as Fd,bg as Bd,bh as zd,bi as Ud,bj as $d,bk as Hd,bl as Vd,bo as qd,bp as Yd,bq as Wd,br as Kd,bs as Jd,bt as Xd,bu as Zd,bv as Qd,bw as el,bx as tl,by as rl,bz as nl,bA as al,bB as ol,bC as il,bD as sl,bE as cl,bF as dl,bG as ll,bH as ul,bQ as ml,bR as fl,bS as gl,bT as pl,bU as hl,bV as El,bW as bl,bX as Sl,bY as yl,bZ as Il,b_ as Pl,b$ as Al,c0 as Tl,c1 as Rl,c2 as vl,c4 as wl,c5 as Cl,c6 as Ml,c7 as _l,c8 as Dl,c9 as Ol,ca as jl,cb as kl,cc as Nl,cd as Ll,ce as xl,cf as Gl,cg as Fl,ch as Bl,ci as zl,cj as Ul,ck as $l,cl as Hl,cm as Vl,cn as ql,co as Yl,cp as Wl,cq as Kl,cr as Jl,cs as Xl,ct as Zl,cu as Ql,cv as eu,cw as tu,cx as ru,cy as nu,cz as au,cA as ou,cB as iu,cC as su,cD as cu,cE as du,cF as lu,cG as uu,cH as mu,cI as fu,cJ as gu,cK as pu,cL as hu,cM as Eu,cN as bu,cO as Su,cP as yu,cR as Iu,cT as Pu,cU as Au,cV as Tu,cW as Ru,cX as vu,cY as wu,cZ as Cu,c_ as Mu,c$ as _u,d0 as Du,d1 as Ou,d2 as ju,d3 as ku,d4 as Nu,d5 as Lu,d6 as xu,d7 as Gu,d8 as Fu,d9 as Bu,da as zu,db as Uu,dc as $u,dd as Hu,de as Vu,df as qu,dg as Yu,dh as Wu,di as Ku,dj as Ju,dk as Xu,dl as Zu,dm as Qu,dn as em,dp as tm,dq as rm,dr as nm,ds as am,dt as om,du as im,dv as sm,dw as cm,dx as dm,dy as lm,dz as um,dA as mm,dB as fm,dC as gm,dD as pm,dE as hm,dF as Em,dG as bm,dH as Sm,dI as ym,dJ as Im,dK as Pm,dL as Am,dM as Tm,dN as Rm,dO as vm,dP as wm,dQ as Cm,dR as Mm,dS as _m,dT as Dm,dU as Om,dV as jm,dW as km,dX as Nm,dY as Lm,dZ as xm,d_ as Gm,d$ as Fm,e0 as Bm,e1 as zm,e2 as Um,e3 as $m,e4 as Hm,e5 as Vm,e6 as qm,e7 as Ym,e8 as Wm,e9 as Km,ea as Jm,eb as Xm,ec as Zm,ed as Qm,ee as ef,ef as tf,eg as rf,eh as nf,ei as af,ej as of,ek as sf,el as cf,em as df,en as lf,eo as uf,ep as mf,eq as ff,er as gf,es as pf,et as hf,eu as Ef,ev as bf,ew as Sf,ex as yf,ey as If,ez as Pf,eA as Af,eB as Tf,eC as Rf,eD as vf,eE as wf,eF as Cf,eG as Mf,eH as _f,eI as Df,eJ as Of,eK as jf,eL as kf,eM as Nf,eN as Lf,eO as xf,eP as Gf,eQ as Ff,eR as Bf,eS as zf,eT as Uf,eU as $f,eV as Hf,eW as Vf,eX as qf,eY as Yf,eZ as Wf,e_ as Kf,e$ as Jf,f0 as Xf,f1 as Zf,f2 as Qf,f3 as eg,f4 as tg,f5 as rg,f6 as ng,f7 as ag,f8 as og,f9 as ig,fa as sg,fb as cg,fc as dg,fd as lg,fe as ug,ff as mg,fg,fh as gg,fi as pg,fj as hg,fk as Eg,fl as bg,fm as Sg,fn as yg,fo as Ig,fp as Pg,fq as Ag,fr as Tg,fs as Rg,ft as vg,fu as wg,fv as Cg,fw as Mg,fx as _g,fy as Dg,fz as Og,fA as jg,fB as kg,fC as Ng,fD as Lg,fE as xg,fF as Gg,fG as Fg,fH as Bg,fI as zg,fL as Ug,fM as $g,fN as Hg,fO as Vg,fP as qg,fQ as Yg,fR as Wg,fS as Kg,fT as Jg,fU as Xg,fV as Zg,fW as Qg,fX as ep,fY as tp,f_ as rp,f$ as np,g1 as ap,g2 as op,g3 as ip,g4 as sp,g5 as cp,g7 as dp,g8 as lp,g9 as up,ga as mp,gb as fp,gc as gp,gd as pp,ge as hp,gg as Ep,gh as bp,gi as Sp,gj as yp,gk as Ip,gl as Pp,gm as Ap,gn as Tp,go as Rp,gt as vp,gu as wp,gv as Cp,gw as Mp,gx as _p,gy as Dp,gz as Op,gA as jp,gB as kp,gC as Np,gE as Lp,gF as xp,gG as Gp,gH as Fp,gI as Bp,gJ as zp,gK as Up,gL as $p,gM as Hp,gN as Vp,gO as qp,gP as Yp,gR as Wp,gS as Kp,gT as Jp,gU as Xp,gV as Zp,gW as Qp,gX as eh,gY as th,gZ as rh,g_ as nh,g$ as ah,h0 as oh,h1 as ih,h2 as sh,h3 as ch,h4 as dh,h5 as lh,h6 as uh,h7 as mh,h8 as fh,h9 as gh,ha as ph,hb as hh,hc as Eh,hd as bh,hf as Sh,hg as yh,hh as Ih,hi as Ph,hj as Ah,hl as Th,hm as Rh,ho as vh,hp as wh,hq as Ch,hr as Mh,hs as _h,ht as Dh,hu as Oh,hv as jh,hw as kh,hx as Nh,hy as Lh,hz as xh,hA as Gh,hB as Fh,hC as Bh,hD as zh,hE as Uh,hF as $h,hG as Hh,hH as Vh,hI as qh,hJ as Yh,hK as Wh,hL as Kh,hM as Jh,hN as Xh,hO as Zh,hP as Qh,hQ as eE,hR as tE,hS as rE,hT as nE,hU as aE,hV as oE,hW as iE,hX as sE,hY as cE,hZ as dE,h_ as lE,h$ as uE,i1 as mE,i2 as fE,i3 as gE,i4 as pE,i5 as hE,i6 as EE,i7 as bE,i8 as SE,i9 as yE,ia as IE,ib as PE,ic as AE,id as TE,ie as RE,ig as vE,ih as wE,ii as CE,ij as ME,ik as _E,il as DE,im as OE,io as jE,ip as kE,iq as NE,ir as LE,is as xE,it as GE,iu as FE,iv as BE,iw as zE,ix as UE,iy as $E,iz as HE,iA as VE,iB as qE,iC as YE,iD as WE,iE as KE,iF as JE,iG as XE,iH as ZE,iI as QE,iJ as eb,iL as tb,iM as rb,iN as nb,iO as ab,iP as ob,iQ as ib,iR as sb,iS as cb,iT as db,iU as lb,iV as ub,iW as mb,iX as fb,iY as gb,iZ as pb,i_ as hb,i$ as Eb,j0 as bb,j1 as Sb,j2 as yb,j3 as Ib,j4 as Pb,j5 as Ab,j6 as Tb,j7 as Rb,j8 as vb,ja as wb,jb as Cb,jc as Mb,jd as _b,je as Db,jf as Ob,jg as jb,jh as kb,ji as Nb,jj as Lb,jk as xb,jl as Gb,jn as Fb,jo as Bb,jp as zb,jq as Ub,jr as $b,js as Hb,jt as Vb,ju as qb,jv as Yb,jw as Wb,jy as Kb,jz as Jb,jA as Xb,jB as Zb,jC as Qb,jD as eS,jE as tS,jF as rS,jG as nS,jH as aS,jI as oS,jJ as iS,jK as sS,jM as cS,jN as dS,jO as lS,jP as uS,jS as mS,jT as fS,jU as gS,jV as pS,jW as hS,jX as ES,jY as bS,j_ as SS,j$ as yS,k0 as IS,k1 as PS,k2 as AS,k3 as TS,k4 as RS,k5 as vS,k6 as wS,k7 as CS,k8 as MS,k9 as _S,ka as DS,kb as OS,kc as jS,kd as kS,ke as NS,kf as LS,kg as xS,kh as GS,ki as FS,kj as BS,kk as zS,kl as US,km as $S,kn as HS,ko as VS,kp as qS,kq as YS,ks as WS,kt as KS,ku as JS,kx as XS,ky as ZS,kz as QS,kA as ey,kB as ty,kC as ry,kD as ny,kE as ay,kF as oy,kG as iy,kH as sy,kI as cy,kK as dy,kL as ly,kO as uy,kP as my,kQ as fy,kR as gy,kS as py,kU as hy,kV as Ey,kW as by,kX as Sy,kY as yy,kZ as Iy,k_ as Py,k$ as Ay,l0 as Ty,l1 as Ry,l2 as vy,l3 as wy,l4 as Cy,l5 as My,l6 as _y,l7 as Dy,l8 as Oy,l9 as jy,la as ky,lb as Ny,lc as Ly,ld as xy,le as Gy,lf as Fy,lg as By,lh as zy,li as Uy,lj as $y,ll as Hy,lm as Vy,ln as qy,lo as Yy,lp as Wy,ls as Ky,lt as Jy,lu as Xy,lw as Zy,lx as Qy,ly as eI,lz as tI,lA as rI,lB as nI,lD as aI,lE as oI,lF as iI,lG as sI,lH as cI,lI as dI,lJ as lI,lK as uI,lL as mI,lM as fI,lN as gI,lO as pI,lP as hI,lQ as EI,lR as bI,lS as SI,lT as yI,lU as II,lV as PI,lW as AI,lX as TI,lY as RI,lZ as vI,l_ as wI,l$ as CI,m0 as MI,m1 as _I,m2 as DI,m3 as OI,m4 as jI,m5 as kI,m6 as NI,m7 as LI,m8 as xI,ma as GI,mb as FI,mc as BI,md as zI,me as UI,mf as $I,mg as HI,mh as VI,mi as qI,mj as YI,mk as WI,ml as KI,mm as JI,mn as XI,mo as ZI,mp as QI,mq as eP,mr as tP,mt as rP,mu as nP,mv as aP,mw as oP,mx as iP,my as sP,mz as cP,mA as dP,mB as lP,mE as uP,mF as mP,mG as fP,mH as gP,mI as pP,mJ as hP,mK as EP,mL as bP,mN as SP,mO as yP,mP as IP,mQ as PP,mR as AP,mS as TP,mT as RP,mU as vP,mV as wP,mW as CP,mX as MP,mY as _P,mZ as DP,m_ as OP,m$ as jP,n0 as kP,n1 as NP,n2 as LP,n3 as xP,n4 as GP,n5 as FP,n6 as BP,n8 as zP,n9 as UP,na as $P,nb as HP,nc as VP,nd as qP,nh as YP,ni as WP,nj as KP,nk as JP,nl as XP,nm as ZP,nn as QP,no as eA,np as tA,nq as rA,nr as nA,ns as aA,nt as oA,nu as iA,nv as sA,nw as cA,nx as dA,nz as lA,nA as uA,nB as mA,nC as fA,nD as gA,nE as pA,nF as hA,nG as EA,nH as bA,nI as SA,nJ as yA,nK as IA}from"./playable-standard-project-Brbyn9c4.js";import"./dynamicTexture-Cuby-VOT.js";import"@fps-games/editor-core/plugin-host";function Qi(e,t){const r=wr(e),a=sa(t),n=r.revision??null;if(!a)return{detected:!0,sourceId:r.sourceId,sourceType:r.sourceType,sourceRevision:n,generatedRevision:null,reason:"missing-generated-from"};const o=typeof a.revision=="number"?a.revision:null;return a.sourceId!==r.sourceId||a.sourceType!==r.sourceType?{detected:!0,sourceId:r.sourceId,sourceType:r.sourceType,sourceRevision:n,generatedRevision:o,reason:"source-mismatch"}:n!==o?{detected:!0,sourceId:r.sourceId,sourceType:r.sourceType,sourceRevision:n,generatedRevision:o,reason:"revision-mismatch"}:{detected:!1,sourceId:r.sourceId,sourceType:r.sourceType,sourceRevision:n,generatedRevision:o}}function sa(e){if(!e||typeof e!="object")return null;const t=e.meta;if(!t||typeof t!="object")return null;const r=t.generatedFrom;if(!r||typeof r!="object")return null;const a=r.sourceId,n=r.sourceType;return typeof a!="string"||typeof n!="string"?null:{sourceId:a,sourceType:n,revision:typeof r.revision=="number"?r.revision:void 0}}function ca(e){const{document:t,runtimePatch:r}=e,a=e.getSourceRef?.(t)??wr(t),n=r.sourceBinding;if(!r.applyable||!n||r.applyTarget!==qt||n.sourceId!==tn||n.sourceType!==qt||n.sourceId!==a.sourceId||n.sourceType!==a.sourceType)return null;const o=n.objectId;if(!o||!e.findGameObject(t,o)||e.isRootGameObjectId?.(o))return null;const i=r.after;return da(i)?{label:r.label??`Apply runtime transform ${o}`,patch:e.createPatch(o,i)}:null}function es(e,t){return ca({document:e,runtimePatch:t,findGameObject:(r,a)=>r.scene.gameObjects.find(n=>n.id===a)??null,isRootGameObjectId:r=>r==="root",createPatch:(r,a)=>({kind:"game-object.transform",targetId:r,transform:a})})}function da(e){if(!e||typeof e!="object")return!1;const t=e;return Et(t.position)&&Et(t.rotation)&&Et(t.scale)}function Et(e){if(!e||typeof e!="object")return!1;const t=e;return typeof t.x=="number"&&Number.isFinite(t.x)&&typeof t.y=="number"&&Number.isFinite(t.y)&&typeof t.z=="number"&&Number.isFinite(t.z)}const Dr="fps-editor.lighting-debug.open",Or="fps-editor.lighting-debug.language",la=[{field:"environmentIntensity",textKey:"intensity",tooltipKey:"environmentIntensity",step:.01,min:0},{field:"iblIntensity",textKey:"iblIntensity",tooltipKey:"iblIntensity",step:.01,min:0,max:4},{field:"iblRotationY",textKey:"iblRotationY",tooltipKey:"iblRotationY",step:.01},{field:"directionalIntensity",textKey:"intensity",tooltipKey:"directionalIntensity",step:.01,min:0},{field:"directionalHorizontalAngle",textKey:"horizontalAngle",tooltipKey:"horizontalAngle",step:.01,min:-180,max:180},{field:"directionalElevationAngle",textKey:"elevationAngle",tooltipKey:"elevationAngle",step:.01,min:nn,max:rn},{field:"shadowStrength",textKey:"shadowStrength",tooltipKey:"shadowStrength",step:.01,min:0,max:1},{field:"shadowSoftness",textKey:"shadowSoftness",tooltipKey:"shadowSoftness",step:.005,min:0,max:1}];function Ee(e){const t=la.find(r=>r.field===e);if(!t)throw new Error(`Missing lighting number field config: ${e}`);return t}function bt(e){const t=e.trim();if(!t||/^[+-]$/.test(t)||t.endsWith(".")||/[eE][+-]?$/.test(t))return null;const r=Number(t);return Number.isFinite(r)?r:null}const er={zh:{title:"光照调试",runtime:"运行时",languageButton:"EN",toggleTitle:"打开光照调试面板",environmentSection:"环境光",environmentTextureSection:"环境贴图 IBL",directionalSection:"直射光",shadowSection:"阴影外观",enabled:"启用",intensity:"强度",iblIntensity:"IBL 强度",iblRotationY:"IBL 旋转",skyLightColor:"天空光颜色",groundColor:"地面颜色",horizontalAngle:"水平角",elevationAngle:"高度角",lightColor:"光照颜色",rawDirection:"原始方向",shadowReadout:"阴影",shadowStrength:"阴影强度",shadowSoftness:"轮廓柔和度",shadowMap:"Shadow Map",shadowPlanarFollow:"Planar / 跟随直射光",shadowDynamic:"动态阴影",shadowBlob:"Blob 阴影",shadowStatic:"静态烘焙阴影",shadowNone:"Off",shadowUnknown:"Unknown",reset:"重置参数",save:"保存参数",resetStatus:"已重置为初始运行时光照。",savingStatus:"正在保存光照、IBL 和阴影参数...",savedStatus:"已保存光照、IBL 和阴影参数。",saveFailed:"保存失败",missingBindingStatus:"缺少光源绑定,只能临时预览,不能保存。"},en:{title:"Lighting Debug",runtime:"Runtime",languageButton:"中文",toggleTitle:"Toggle lighting debug panel",environmentSection:"Environment Light",environmentTextureSection:"Environment Texture IBL",directionalSection:"Directional Light",shadowSection:"Shadow Appearance",enabled:"Enabled",intensity:"Intensity",iblIntensity:"IBL Intensity",iblRotationY:"IBL Rotation",skyLightColor:"Sky Light Color",groundColor:"Ground Color",horizontalAngle:"Horizontal Angle",elevationAngle:"Elevation Angle",lightColor:"Light Color",rawDirection:"Raw Direction",shadowReadout:"Shadow",shadowStrength:"Shadow Strength",shadowSoftness:"Edge Softness",shadowMap:"Shadow Map",shadowPlanarFollow:"Planar / Follow Directional Light",shadowDynamic:"Dynamic Shadow",shadowBlob:"Blob Shadow",shadowStatic:"Static Baked Shadow",shadowNone:"Off",shadowUnknown:"Unknown",reset:"Reset",save:"Save Parameters",resetStatus:"Reset to initial runtime lighting.",savingStatus:"Saving lighting, IBL and shadows...",savedStatus:"Saved lighting, IBL and shadows.",saveFailed:"Save failed",missingBindingStatus:"Light binding missing; preview only, saving disabled."}},tr={zh:{languageButton:"切换光照调试面板的显示语言。",toggleTitle:"打开或关闭运行时光照调试面板。",enabled:"启用或禁用对应的运行时光源,保存后写回编辑器场景。",environmentIntensity:"环境光强度,对应运行时环境光 intensity。",iblIntensity:"环境贴图对 PBR 材质的光照贡献强度;实时预览不会重新加载贴图。",iblRotationY:"环境贴图绕 Y 轴的旋转弧度,用于调整环境反射和高光方向。",directionalIntensity:"直射光强度,对应运行时直射光 intensity。",skyLightColor:"环境光来自天空方向的漫反射颜色。",groundColor:"环境光来自地面反射方向的颜色。",horizontalAngle:"直射光在 XZ 平面内的朝向角度,会转换为运行时方向向量。",elevationAngle:"直射光相对地平线的高度角;90 度表示从正上方照下。",lightColor:"直射光漫反射颜色。",rawDirection:"只读方向向量,用于排查运行时转换结果。",shadowReadout:"只读阴影状态;支持宿主提供的运行时阴影模式摘要。",shadowStrength:"控制阴影的可见深浅;1 最深,0 不显示阴影。",shadowSoftness:"控制阴影接收边缘的柔和程度;0 表示硬边。",reset:"恢复为打开运行时时读取到的初始光照、IBL 和阴影参数。",save:"通过编辑器保存链路写回环境光、直射光、IBL 和 Shadow Map 外观参数。"},en:{languageButton:"Switch the lighting debug panel language.",toggleTitle:"Open or close the runtime lighting debug panel.",enabled:"Enable or disable the runtime light and save it back to the editor scene.",environmentIntensity:"Environment intensity. Maps to the runtime environment light intensity.",iblIntensity:"Environment texture contribution to PBR lighting. Live preview does not reload the texture.",iblRotationY:"Environment texture rotation around the Y axis in radians, affecting reflections and highlights.",directionalIntensity:"Directional intensity. Maps to the runtime directional light intensity.",skyLightColor:"Diffuse sky color for the environment light.",groundColor:"Ground bounce color for the environment light.",horizontalAngle:"Directional heading in the XZ plane, converted to a runtime direction vector.",elevationAngle:"Directional elevation above the horizon; 90 degrees points straight down.",lightColor:"Directional diffuse color.",rawDirection:"Read-only direction vector for checking runtime conversion.",shadowReadout:"Read-only shadow status supplied by the host runtime.",shadowStrength:"Visible shadow strength. One is darkest; zero hides the shadow.",shadowSoftness:"Receiver-edge softness. Zero produces a hard edge.",reset:"Restore the lighting, IBL and shadows captured when runtime opened.",save:"Save lighting, IBL and Shadow Map appearance through the editor authoring pipeline."}};function ua(e){return er[e]??er.zh}function ma(e){return tr[e]??tr.zh}function fa(e,t){return e==="shadow-map"?t.shadowMap:e==="planar"?t.shadowPlanarFollow:e==="dynamic"?t.shadowDynamic:e==="blob"?t.shadowBlob:e==="static"?t.shadowStatic:e==="none"?t.shadowNone:t.shadowUnknown}function ga(e){try{return e?.localStorage?.getItem(Dr)==="true"}catch{return!1}}function pa(e,t){try{e?.localStorage?.setItem(Dr,String(t))}catch{}}function ha(e){try{return e?.localStorage?.getItem(Or)==="en"?"en":"zh"}catch{return"zh"}}function Ea(e,t){try{e?.localStorage?.setItem(Or,t)}catch{}}function ts(e,t){const r=rr(rr(e)?.__fpsEditor),a=ce(r?.sourceId),n=ce(r?.objectGuid),o=ce(r?.objectId),i=ce(r?.propertyPath),s=ce(r?.lightType);return!a||i!=="light"||!n&&!o||t&&s&&s!==t?null:{sourceId:a,propertyPath:"light",...t?{lightType:t}:s?{lightType:s}:{},...n?{objectGuid:n}:{},...o?{objectId:o}:{}}}function ba(e){const t=ce(e.sourceId),r=ce(e.propertyPath),a=ce(e.objectGuid),n=ce(e.objectId),o=ce(e.lightType);if(!t)throw new Error("Runtime light binding is missing sourceId.");if(r!=="light")throw new Error(`Runtime light binding is not for light: ${r??"missing"}`);if(!a&&!n)throw new Error("Runtime light binding is missing objectGuid/objectId.");return{sourceId:t,propertyPath:r,...a?{objectGuid:a}:{},...n?{objectId:n}:{},...o?{lightType:o}:{}}}function rr(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function ce(e){return typeof e=="string"&&e.trim()?e.trim():null}function Se(e){return{environment:{enabled:e.environment.enabled,binding:e.environment.binding?{...e.environment.binding}:null,light:{type:"hemispheric",intensity:e.environment.light.intensity,...e.environment.light.diffuseColor?{diffuseColor:{...e.environment.light.diffuseColor}}:{},...e.environment.light.groundColor?{groundColor:{...e.environment.light.groundColor}}:{}}},...e.environmentTexture?{environmentTexture:{...e.environmentTexture}}:{},directional:{enabled:e.directional.enabled,binding:e.directional.binding?{...e.directional.binding}:null,light:{type:"directional",intensity:e.directional.light.intensity,direction:{...e.directional.light.direction},...e.directional.light.diffuseColor?{diffuseColor:{...e.directional.light.diffuseColor}}:{}}},shadow:{...e.shadow,...e.shadow.shadowMap?{shadowMap:{...e.shadow.shadowMap,lastRefreshReasons:[...e.shadow.shadowMap.lastRefreshReasons],...e.shadow.shadowMap.appearance?{appearance:{...e.shadow.shadowMap.appearance}}:{}}}:{}}}}function it(e){return!!e.environment.binding&&!!e.directional.binding}function rs(e){return it(e)?[{binding:e.environment.binding,enabled:e.environment.enabled,light:e.environment.light},{binding:e.directional.binding,enabled:e.directional.enabled,light:e.directional.light}]:[]}function Le(e,t){switch(t){case"environmentIntensity":return e.environment.light.intensity;case"iblIntensity":return e.environmentTexture?.iblIntensity??0;case"iblRotationY":return e.environmentTexture?.iblRotationY??0;case"directionalIntensity":return e.directional.light.intensity;case"directionalHorizontalAngle":return Ct(e.directional.light.direction).horizontalAngleDeg;case"directionalElevationAngle":return Ct(e.directional.light.direction).elevationAngleDeg;case"shadowStrength":return e.shadow.shadowMap?.appearance?.strength??0;case"shadowSoftness":return e.shadow.shadowMap?.appearance?.softness??0}}function nr(e,t){switch(t){case"environmentDiffuseColor":return e.environment.light.diffuseColor??{r:1,g:1,b:1};case"environmentGroundColor":return e.environment.light.groundColor??{r:.48,g:.52,b:.62};case"directionalDiffuseColor":return e.directional.light.diffuseColor??{r:1,g:1,b:1}}}function Sa(e,t,r){if(!Number.isFinite(r))return Se(e);const a=Se(e);switch(t){case"environmentIntensity":return a.environment.light.intensity=r,a;case"iblIntensity":return a.environmentTexture&&(a.environmentTexture.iblIntensity=r),a;case"iblRotationY":return a.environmentTexture&&(a.environmentTexture.iblRotationY=r),a;case"directionalIntensity":return a.directional.light.intensity=r,a;case"directionalHorizontalAngle":{const n=Yt(e.directional.light.direction);return ar(a,r,n.elevationAngleDeg)}case"directionalElevationAngle":{const n=Yt(e.directional.light.direction);return ar(a,n.horizontalAngleDeg,r)}case"shadowStrength":{const n=a.shadow.shadowMap?.appearance;return n&&(n.strength=r,n.darkness=1-r),a}case"shadowSoftness":return a.shadow.shadowMap?.appearance&&(a.shadow.shadowMap.appearance.softness=r),a}}function ya(e,t,r){const a=Se(e);switch(t){case"environmentDiffuseColor":return a.environment.light.diffuseColor={...r},a;case"environmentGroundColor":return a.environment.light.groundColor={...r},a;case"directionalDiffuseColor":return a.directional.light.diffuseColor={...r},a}}function Ia(e,t,r){const a=Se(e);return a[t].enabled=r,a}function ar(e,t,r){const a=on(t,r);return Pa(e,a)}function Pa(e,t){const r=Se(e);return r.directional.light.direction={...t},r.shadow.projectedLengthMultiplier=an(t),r}function jr(e,t){const r=typeof t?.materialAssetId=="string"?t.materialAssetId.trim():"",a=r?e.scene.materialAssets?.find(o=>o.id===r)??null:null,n=sn(a?.properties,t?.override);return{materialAsset:a,...a?{materialAssetShaderId:a.shaderId}:{},profile:n,...r&&!a?{missingMaterialAssetId:r}:{}}}function ns(e,t){const r=jr(e,t.overrides?.materialBinding),a={},n=cn(r.materialAssetShaderId);return n&&(Object.keys(r.profile).length>0?(a.artistMaterialShaderId=n,a.artistMaterialProfile=r.profile):a.artistMaterialShaderId=n),a}function as(e,t){const r={},a=t.overrides?.materialSlotBindings??{};for(const[n,o]of Object.entries(a)){if(!n||!o)continue;const i=jr(e,o);Object.keys(i.profile).length!==0&&(r[n]=i.profile)}return r}function os(e,t){const r=Aa(t),a=[];for(const n of e.inspector.fields){if(n.control!=="color"||n.updateClass!=="uniform")continue;const o=Ta(e,n.schemaPath??n.path);if(o?.kind!=="color")continue;const i=o.channels===4?"vec4":"vec3",s=r.get(n.binding);if(!s){a.push({code:"material.shaderColorBindingMissing",path:n.path,binding:n.binding,expectedType:i,message:`GLSL uniform ${n.binding} is missing; expected ${i}.`});continue}s!==i&&a.push({code:"material.shaderColorBindingTypeMismatch",path:n.path,binding:n.binding,expectedType:i,actualType:s,message:`GLSL uniform ${n.binding} uses ${s}; Shader Definition expects ${i}.`})}return a}function Aa(e){const t=e.replace(/\/\*[\s\S]*?\*\//g,"").replace(/\/\/.*$/gm,""),r=new Map,a=/\buniform\s+(?:(?:lowp|mediump|highp)\s+)?([A-Za-z_]\w*)\s+([A-Za-z_]\w*)\s*(?:\[[^\]]+\])?\s*;/g;for(const n of t.matchAll(a))r.set(n[2],n[1]);return r}function Ta(e,t){const r=t.replace(/^properties\./,"").split(".").filter(Boolean);let a=e.propertiesSchema;for(const n of r){if(a.kind!=="object")return null;const o=a.properties[n];if(!o)return null;a=o}return a}function is(e,t,r={}){const a=kr(e);let n=dn(e);const o=[];for(const i of t){const s=va(i),l=ba(s.binding);if(r.expectedSourceId&&l.sourceId!==r.expectedSourceId)throw new Error(`Runtime light binding source mismatch: ${l.sourceId} !== ${r.expectedSourceId}`);const d=Ra(n,l,a);if(!d)throw new Error("Runtime light binding did not match an editor light object.");Ma(d,s.light.type,l),n=xe(n,d.id,"enabled",s.enabled,r),n=xe(n,d.id,"light.intensity",s.light.intensity,r),s.light.diffuseColor&&(n=xe(n,d.id,"light.diffuseColor",s.light.diffuseColor,r)),s.light.type==="hemispheric"?s.light.groundColor&&(n=xe(n,d.id,"light.groundColor",s.light.groundColor,r)):n=xe(n,d.id,"light.direction",s.light.direction,r),o.push({id:d.id,...d.guid?{objectGuid:d.guid}:{},lightType:s.light.type})}return{document:n,targets:o}}function Ra(e,t,r=kr(e)){if(t.objectGuid){const o=e.scene.gameObjects.find(i=>i.guid===t.objectGuid)??null;if(o){if(t.objectId&&o.id!==t.objectId)throw new Error(`Runtime light binding guid/id conflict: ${t.objectGuid} belongs to ${o.id}, not ${t.objectId}.`);return o}}if(!t.objectId)return null;const a=e.scene.gameObjects.find(o=>o.id===t.objectId)??null;if(!a)return null;const n=r.get(a.id);if(t.objectGuid&&n&&n!==t.objectGuid)throw new Error(`Runtime light binding guid conflict for ${a.id}.`);return a}function va(e){const t=_a(e.enabled,"enabled");return e.light.type==="hemispheric"?{binding:e.binding,enabled:t,light:wa(e.light)}:{binding:e.binding,enabled:t,light:Ca(e.light)}}function wa(e){if(e.type!=="hemispheric")throw new Error("Runtime light patch must be hemispheric.");return{type:"hemispheric",intensity:Nr(e.intensity,"hemispheric.intensity"),...e.diffuseColor?{diffuseColor:Mt(e.diffuseColor,"hemispheric.diffuseColor")}:{},...e.groundColor?{groundColor:Mt(e.groundColor,"hemispheric.groundColor")}:{}}}function Ca(e){if(e.type!=="directional")throw new Error("Runtime light patch must be directional.");return{type:"directional",intensity:Nr(e.intensity,"directional.intensity"),direction:ln(Da(e.direction,"directional.direction")),...e.diffuseColor?{diffuseColor:Mt(e.diffuseColor,"directional.diffuseColor")}:{}}}function xe(e,t,r,a,n){return n.patchLightField?n.patchLightField(e,t,r,a):mn(e,t,r,a,n.fieldMutation)}function Ma(e,t,r){if(!un(e))throw new Error(`Runtime light binding target is not a light object: ${e.id}`);if(!e.light)throw new Error(`Runtime light binding target is missing light config: ${e.id}`);if(e.light.type!==t)throw new Error(`Runtime light binding type mismatch for ${e.id}: ${e.light.type} !== ${t}`);if(r.lightType&&r.lightType!==t)throw new Error(`Runtime light binding metadata type mismatch: ${r.lightType} !== ${t}`)}function kr(e){const t=new Map;for(const r of e.scene.gameObjects){const a=Oa(r.guid);a&&t.set(r.id,a)}return t}function _a(e,t){if(typeof e!="boolean")throw new Error(`Runtime light ${t} must be a boolean.`);return e}function Nr(e,t){if(typeof e!="number"||!Number.isFinite(e)||e<0)throw new Error(`Runtime light ${t} must be a non-negative finite number.`);return e}function Mt(e,t){return{r:De(e.r,`${t}.r`),g:De(e.g,`${t}.g`),b:De(e.b,`${t}.b`)}}function Da(e,t){return{x:De(e.x,`${t}.x`),y:De(e.y,`${t}.y`),z:De(e.z,`${t}.z`)}}function De(e,t){if(typeof e!="number"||!Number.isFinite(e))throw new Error(`Runtime light ${t} must be a finite number.`);return e}function Oa(e){return typeof e=="string"&&e.trim()?e.trim():null}function ss(e={}){const t=e.ttlMs??3e4,r=e.now??(()=>Date.now()),a=new Map;return{remember(n){const o=Mr(n);for(const i of fn(n)){const s=or(i);if(s.length===0)continue;const l={point:o??void 0,asset:i,timestamp:r()};for(const d of s)a.set(d,l)}St(a,t,r())},normalize(n){St(a,t,r());const o=Cr(n);if(!o)return n;const i=or(o),s=i.map(l=>a.get(l)).find(l=>!!l)??null;for(const l of i)a.delete(l);return ja(n,s)},clearExpired(){St(a,t,r())}}}function ja(e,t){const r=Cr(e);if(!r)return e;const a=t?.asset??{},n={...a,...r,...e},o=H(e.assetName)??H(r.assetName)??H(r.name)??H(a.assetName)??H(a.name),i=H(e.assetPath)??H(r.assetPath)??H(r.path)??H(a.assetPath)??H(a.path),s=H(e.assetUrl)??H(r.assetUrl)??H(r.url)??H(a.assetUrl)??H(a.url);return{...n,...o?{assetName:o}:{},...i?{assetPath:i}:{},...s?{assetUrl:s}:{},...t?.point&&!Mr(n)?{point:t.point}:{}}}function St(e,t,r){for(const[a,n]of e)r-n.timestamp>t&&e.delete(a)}function or(e){return[H(e.id),H(e.platformAssetId),H(e.assetId)].filter((t,r,a)=>!!t&&a.indexOf(t)===r)}function H(e){return typeof e=="string"&&e.trim()?e.trim():void 0}class ve extends Error{constructor(t){super(t),this.name="PlayableEditorEntryReloadRequiredError"}}function ka(e){const t=e.now??(()=>Date.now()),r=new AbortController,a=new Set;let n=ir({phase:"idle",attempt:0,phaseStartedAtMs:t(),phaseDurationsMs:{},failure:null}),o=null,i=null,s=null,l=!1;const d=m=>{try{e.reportListenerError?.(m)}catch{}},h=(m,S={})=>{const R=t(),A={...n.phaseDurationsMs,[n.phase]:Math.max(0,R-n.phaseStartedAtMs)};n=ir({phase:m,attempt:S.attempt??n.attempt,phaseStartedAtMs:R,phaseDurationsMs:A,failure:S.failure===void 0?null:S.failure});for(const j of[...a])try{j(n)}catch(M){d(M)}return n},c=(m,S,R)=>{try{e.reportFailure?.(Object.freeze({failure:m,cause:S,rollbackCause:R}))}catch(A){d(A)}},u=()=>{if(l||r.signal.aborted)throw _t()},g=m=>{if(l||n.phase==="disposed")return Promise.reject(_t());if(n.phase==="ready"||n.phase==="preparing"||n.phase==="committing"||n.phase==="editing"||n.phase==="failed"&&n.failure?.phase!=="warmup")return Promise.resolve();if(o)return o;const S=Promise.resolve().then(async()=>{try{h("warming",m===void 0?{}:{attempt:m}),u(),await e.backend.warmup?.(r.signal),u(),h("ready")}catch(R){if(l||r.signal.aborted)throw R;const A=Be("warmup-failed","warmup",R,!0);throw h("failed",{failure:A}),c(A,R),R}});return o=S,S.finally(()=>{o===S&&(o=null)}).catch(()=>{}),S},b=async()=>{if(l||n.phase==="disposed")return we(n.attempt);if(n.phase==="editing")return Object.freeze({ok:!0,attempt:n.attempt});if(n.phase==="failed"&&n.failure&&!n.failure.recoverable)return Object.freeze({ok:!1,attempt:n.attempt,failure:n.failure});const m=n.attempt+1;try{await g(m)}catch(R){if(l||r.signal.aborted)return we(m);const A=n.failure??Be("warmup-failed","warmup",R,!0);return Object.freeze({ok:!1,attempt:m,failure:A})}if(l)return we(m);h("preparing",{attempt:m});let S;try{S=await e.backend.prepare({signal:r.signal}),u()}catch(R){if(l||r.signal.aborted)return we(m);const A=Be("prepare-failed","prepare",R,!0);return h("failed",{attempt:m,failure:A}),c(A,R),Object.freeze({ok:!1,attempt:m,failure:A})}h("committing",{attempt:m});try{return await e.backend.commit(S,{signal:r.signal}),u(),h("editing",{attempt:m}),Object.freeze({ok:!0,attempt:m})}catch(R){h("rolling-back",{attempt:m});try{await e.backend.rollback(S,R)}catch(j){if(l&&sr(R)&&sr(j))return we(m);const M=st("commit-failed","commit",R),T=st("rollback-failed","rollback",j),U=ct({...T,recoverable:!1,primary:M,rollback:T});return l||h("failed",{attempt:m,failure:U}),c(U,R,j),Object.freeze({ok:!1,attempt:m,failure:U})}if(l||r.signal.aborted)return we(m);const A=Be("commit-failed","commit",R,!0);return h("failed",{attempt:m,failure:A}),c(A,R),Object.freeze({ok:!1,attempt:m,failure:A})}},p=()=>{if(i)return i;const m=b();return i=m,m.finally(()=>{i===m&&(i=null)}).catch(()=>{}),m};return Object.freeze({start:()=>g(),enter:p,retry(){const m=n.failure;return n.phase!=="failed"||!m||m.recoverable?p():Promise.resolve(Object.freeze({ok:!1,attempt:n.attempt,failure:m}))},reset(){if(l||n.phase==="disposed")throw new Error("Disposed editor entry controller cannot be reset.");if(o||i)throw new Error("Editor entry controller cannot be reset during an active operation.");if(n.phase==="failed"&&n.failure&&!n.failure.recoverable)throw new Error("Non-recoverable editor entry failure cannot be reset. Refresh the page.");(n.phase!=="idle"||n.attempt!==0||n.failure)&&h("idle",{attempt:0})},getState:()=>n,subscribe(m){if(l)return()=>{};a.add(m);try{m(n)}catch(S){d(S)}return()=>{a.delete(m)}},dispose(){if(s)return s;l=!0,r.abort();const m=(async()=>{const S=[i,o].filter((R,A,j)=>R!==null&&j.indexOf(R)===A);await Promise.allSettled(S);try{await e.backend.dispose()}finally{n.phase!=="disposed"&&h("disposed"),a.clear()}})();return s=m,m.catch(()=>{s===m&&(s=null)}),m}})}function Be(e,t,r,a){return Na(r)?ct({...st("reload-required","runtime",r),recoverable:!1}):ct({...st(e,t,r),recoverable:a})}function Na(e){return e instanceof Error&&e.name==="PlayableEditorEntryReloadRequiredError"}function st(e,t,r){return Object.freeze({code:e,phase:t,message:La(r)})}function ct(e){return Object.freeze({...e,primary:e.primary?Object.freeze({...e.primary}):void 0,rollback:e.rollback?Object.freeze({...e.rollback}):void 0})}function ir(e){return Object.freeze({...e,phaseDurationsMs:Object.freeze({...e.phaseDurationsMs}),failure:e.failure?ct(e.failure):null})}function La(e){return e instanceof Error&&e.message.trim()?e.message:typeof e=="string"&&e.trim()?e:"Unknown editor entry failure."}function sr(e){return e instanceof Error&&e.name==="AbortError"}function _t(){const e=new Error("Editor entry was disposed.");return e.name="AbortError",e}function we(e){return Object.freeze({ok:!1,attempt:e,failure:Be("disposed","dispose",_t(),!1)})}function cs(e){const t=[],r=gn(),a=pn(),n=hn(),o=En(),i=bn(),s=Sn(),l=yn(),d=In(),h=e.materialShaderDefinitions??Pn;try{t.push(e.host.registerCommand({manifest:N(k.HIERARCHY_SCOPE_GET),handler:async(c,u)=>{const g=e.sceneAssembly.getHierarchyItems(G(u)),b={scopeKey:"scene",scopeType:"scene",revision:u.session.getState({cloneDocuments:!1}).documentRevision,title:"Scene",readonly:!1,nodes:g.map(m=>({id:m.id,label:m.label,parentId:m.parentId??null,selectable:!0,canHaveChildren:!0,renamable:!0,deletable:!0,draggable:!0})),selectedIds:u.session.getSelection().selectedIds,activeId:u.session.getSelection().activeId,capabilities:{},totalCount:g.length,returnedCount:g.length},p=await r(b,c);return p.ok?{ok:!0,output:p.output}:{ok:!1,diagnostics:[{severity:"error",source:"hierarchy",code:p.code,message:p.message}]}}})),t.push(e.host.registerCommand({manifest:N(k.SCENE_OBJECTS_LIST),handler:async(c,u)=>{const g=u.session.getState({cloneDocuments:!1}),b=g.workingDocument,p=Nt(b),m=await a(b.scene.gameObjects.map(S=>$e(S,b,p)),c,g.documentRevision);return m.ok?{ok:!0,output:{objects:m.items,totalCount:m.totalCount,returnedCount:m.returnedCount,...m.nextCursor?{nextCursor:m.nextCursor}:{}}}:be(m)}})),t.push(e.host.registerCommand({manifest:N(k.OBJECT_RESOLVE,{activeId:"objectId"}),handler:(c,u)=>go(G(u),c)})),t.push(e.host.registerCommand({manifest:N(k.OBJECT_PROPERTIES_GET),handler:(c,u)=>{const g=u.session.getState({cloneDocuments:!1}),b=An(g.workingDocument,c,g.documentRevision,e.sceneAssembly.getInspectorObject);return b.ok?b:be(b)}})),t.push(e.host.registerCommand({manifest:N(k.OBJECT_REFERENCES_LIST),handler:async(c,u)=>{const g=u.session.getState({cloneDocuments:!1}),b=await i(g.workingDocument,c,g.documentRevision);return b.ok?b:be(b)}})),t.push(e.host.registerCommand({manifest:N(k.ASSET_LIBRARY_LIST),handler:async(c,u)=>{const g=u.session.getState({cloneDocuments:!1}),b=[...await e.listAssets(g.workingDocument)].map(Tn),p=await n(b,c,Rn(g.documentRevision,b));return p.ok?{ok:!0,output:{assets:p.items,totalCount:p.totalCount,returnedCount:p.returnedCount,...p.nextCursor?{nextCursor:p.nextCursor}:{}}}:be(p)}})),t.push(e.host.registerCommand({manifest:N(k.ASSET_INFO_GET),handler:async(c,u)=>{const g=c.assetId.trim(),b=[...await e.listAssets(G(u))].find(p=>p.assetId===g||p.id===g);return b?{ok:!0,output:{asset:vn(b)}}:P("asset.notFound",`Asset was not found: ${g}`)}})),t.push(e.host.registerCommand({manifest:N(k.ASSET_REFERENCES_LIST),handler:async(c,u)=>{const g=u.session.getState({cloneDocuments:!1}),b=await o(g.workingDocument,c,g.documentRevision);return b.ok?b:be(b)}})),t.push(e.host.registerCommand({manifest:N(k.AUTHORING_VALIDATION_LIST),handler:async(c,u)=>{const g=u.session.getState({cloneDocuments:!1}),b=await s(g.workingDocument,c,g.documentRevision);return b.ok?b:be(b)}})),t.push(e.host.registerCommand({manifest:N(k.PREFAB_RESOLVE),handler:async(c,u)=>{const g=u.session.getState({cloneDocuments:!1}),b=await e.listAssets(g.workingDocument),p=g.workingDocument.assets.filter(S=>!!S.prefab).map(S=>wn(S,b)),m=await l(p,c,g.documentRevision);return m.ok?{ok:!0,output:{prefabs:m.items,resolvedPrefab:m.totalCount===1?m.items[0]??null:null,ambiguous:m.totalCount>1,currentStage:null,totalCount:m.totalCount,returnedCount:m.returnedCount,...m.nextCursor?{nextCursor:m.nextCursor}:{}}}:be(m)}})),t.push(e.host.registerCommand({manifest:N(k.PREFAB_SCENE_GET),handler:async(c,u)=>{const g=u.session.getState({cloneDocuments:!1}),b=await d(g.workingDocument,c,g.documentRevision,{dirty:g.dirty});return b.ok?b:be(b)}})),t.push(e.host.registerCommand({manifest:N(k.MATERIAL_ASSETS_LIST),handler:(c,u)=>({ok:!0,output:Ba(G(u),c)})})),t.push(e.host.registerCommand({manifest:N(k.MATERIAL_ASSET_GET),handler:(c,u)=>$a(G(u),c.materialAssetId)})),t.push(e.host.registerCommand({manifest:N(k.MATERIAL_ASSET_CREATE),handler:(c,u)=>Ha(u,e.sceneAssembly,c,h)})),t.push(e.host.registerCommand({manifest:N(k.MATERIAL_ASSET_DUPLICATE),handler:(c,u)=>Va(u,e.sceneAssembly,c)})),t.push(e.host.registerCommand({manifest:N(k.MATERIAL_ASSET_DELETE),handler:(c,u)=>qa(u,e.sceneAssembly,c)})),t.push(e.host.registerCommand({manifest:N(k.MATERIAL_ASSET_RENAME),handler:(c,u)=>Ya(u,e.sceneAssembly,c)})),t.push(e.host.registerCommand({manifest:N(k.MATERIAL_ASSET_SET_SHADER),handler:(c,u)=>Wa(u,e.sceneAssembly,c,h)})),t.push(e.host.registerCommand({manifest:N(k.MATERIAL_SHADER_DEFINITIONS_LIST),handler:c=>({ok:!0,output:za(h,c)})})),t.push(e.host.registerCommand({manifest:N(k.MATERIAL_SHADER_DEFINITION_GET),handler:c=>Ua(h,c.shaderId)})),t.push(e.host.registerCommand({manifest:N(k.MATERIAL_REFERENCES_LIST),handler:(c,u)=>Ja(G(u),c)})),t.push(e.host.registerCommand({manifest:N(k.MATERIAL_BINDINGS_LIST),handler:(c,u)=>({ok:!0,output:mt(Dt(G(u),c),c.cursor,c.limit)})})),t.push(e.host.registerCommand({manifest:N(k.MATERIAL_BINDING_SET),handler:(c,u)=>lr(u,e.sceneAssembly,c.targets,c.materialAssetId)})),t.push(e.host.registerCommand({manifest:N(k.MATERIAL_BINDING_CLEAR),handler:(c,u)=>lr(u,e.sceneAssembly,c.targets,null)})),t.push(e.host.registerCommand({manifest:N(k.MATERIAL_PROPERTIES_GET),handler:(c,u)=>Xa(G(u),c.materialAssetId,c.includeSchema===!0,h)})),t.push(e.host.registerCommand({manifest:N(k.MATERIAL_PROPERTIES_PATCH),handler:(c,u)=>Za(u,e.sceneAssembly,c,h)})),t.push(e.host.registerCommand({manifest:N(k.OBJECT_CREATE_GROUP),expectedRevisionPolicy:"handler-validated",handler:(c,u)=>mr(u,e.sceneAssembly,c,e.sceneAssembly.createCreateGroupPatch)})),t.push(e.host.registerCommand({manifest:N(k.OBJECT_CREATE_PRIMITIVE),expectedRevisionPolicy:"handler-validated",handler:(c,u)=>mr(u,e.sceneAssembly,c,e.sceneAssembly.createCreatePrimitivePatch)})),t.push(e.host.registerCommand({manifest:N(k.OBJECT_RENAME),expectedRevisionPolicy:"handler-validated",handler:(c,u)=>ao(u,e.sceneAssembly,c)})),t.push(e.host.registerCommand({manifest:N(k.OBJECT_MOVE),expectedRevisionPolicy:"handler-validated",handler:(c,u)=>oo(u,e.sceneAssembly,c)})),t.push(e.host.registerCommand({manifest:N(k.OBJECT_SET_ENABLED),expectedRevisionPolicy:"handler-validated",handler:(c,u)=>co(u,e.sceneAssembly,c)})),t.push(e.host.registerCommand({manifest:N(k.OBJECT_DELETE,{selectedIds:"objectIds"}),expectedRevisionPolicy:"handler-validated",handler:(c,u)=>lo(u,e.sceneAssembly,c)})),t.push(e.host.registerCommand({manifest:N(k.OBJECT_DUPLICATE),expectedRevisionPolicy:"handler-validated",handler:(c,u)=>io(u,e.sceneAssembly,c)})),t.push(e.host.registerCommand({manifest:N(k.OBJECT_GROUP),expectedRevisionPolicy:"handler-validated",handler:(c,u)=>so(u,e.sceneAssembly,c)})),t.push(e.host.registerCommand({manifest:N(k.OBJECT_PROPERTIES_PATCH_MANY),expectedRevisionPolicy:"handler-validated",handler:(c,u)=>Eo(u,e.sceneAssembly,c)})),t.push(e.host.registerCommand({manifest:N(k.TRANSFORM_MOVE,{activeId:"objectId"}),handler:(c,u)=>{const g=Ze(G(u),c.objectId);if(!g)return P("object.notFound",`Scene object was not found: ${c.objectId}`);const b=c.position??(c.offset?{x:g.position.x+c.offset.x,y:g.position.y+c.offset.y,z:g.position.z+c.offset.z}:null);if(!b)return P("transform.invalidInput","Transform move requires position or offset.");const p=e.sceneAssembly.patchGameObjectField(G(u),c.objectId,"transform.position",b),m=Ze(p,c.objectId);return!m||JSON.stringify(m)===JSON.stringify(g)?P("transform.unchanged",`Transform did not change: ${c.objectId}`):(u.dispatch({type:"document.replace",document:p,label:`Move ${c.objectId}`,projectionImpact:{type:"incremental",syncTransformIds:[c.objectId]}}),{ok:!0,output:{objectId:c.objectId,before:g,after:m,selection:u.session.getSelection()}})}})),t.push(e.host.registerCommand({manifest:N(k.TRANSFORM_SET,{activeId:"objectId"}),expectedRevisionPolicy:"handler-validated",handler:(c,u)=>{const g=G(u),b=Ze(g,c.objectId);if(!b)return P("object.notFound",`Scene object was not found: ${c.objectId}`);const p=u.session.getState({cloneDocuments:!1}).documentRevision,m="changes"in c?c.changes:null,S="changes"in c?null:c,R=m?Fa(m):null;if(R)return P("transform.invalidInput",`Transform changes contain a duplicate path: ${R}.`,{objectId:c.objectId,path:R});if(!m&&!S?.expected&&u.expectedRevision?.document!==p)return P("command.documentRevisionMismatch",`Expected document revision ${u.expectedRevision?.document}, received ${p}.`,{expected:u.expectedRevision?.document,actual:p});const A=m?.filter(w=>!Object.is(cr(b,w.path),w.expected))??[],j=S?["position","rotation","scale"].filter(w=>S.expected?.[w]&&!ze(S.expected[w],b[w])):[];if(A.length>0||j.length>0){const w=A.length>0?A.map(_=>_.path):j.map(_=>`transform.${_}`);return P("authoring.remoteConflict",`Transform changed after the command base revision: ${c.objectId}.`,{objectId:c.objectId,paths:w,expected:A.length>0?Object.fromEntries(A.map(_=>[_.path,_.expected])):Object.fromEntries(j.map(_=>[_,{...S.expected[_]}])),actual:A.length>0?Object.fromEntries(A.map(_=>[_.path,cr(b,_.path)])):Object.fromEntries(j.map(_=>[_,{...b[_]}])),baseDocumentRevision:u.expectedRevision?.document??null,actualDocumentRevision:p})}const M=m?new Set(m.map(w=>w.path)):null,T=m?Ga(b,m):{position:S.position?{...S.position}:{...b.position},rotation:S.rotation?{...S.rotation}:{...b.rotation},scale:S.scale?{...S.scale}:{...b.scale}},U=e.sceneAssembly.patchGameObjectTransform(g,c.objectId,{position:T.position,rotation:T.rotation,scale:T.scale}),O=Ze(U,c.objectId);return!O||xa(O,b)?P("transform.unchanged",`Transform did not change: ${c.objectId}`):(u.dispatch({type:"document.replace",document:U,label:`Set transform on ${c.objectId}`,projectionImpact:{type:"incremental",syncTransformIds:[c.objectId]},presentationImpact:{inspector:["transform"]},authoringPatch:{kind:"fields",writes:["position","rotation","scale"].flatMap(w=>(M||S[w])&&!ze(b[w],O[w])?["x","y","z"].flatMap(_=>M&&!M.has(`transform.${w}.${_}`)||Object.is(b[w][_],O[w][_])?[]:[{targetId:c.objectId,path:`transform.${w}.${_}`,before:b[w][_],after:O[w][_]}]):[])}}),{ok:!0,output:{objectId:c.objectId,before:b,after:O,selection:u.session.getSelection()}})}})),t.push(e.host.registerCommand({manifest:N(k.OBJECT_CREATE_FROM_ASSET),handler:async(c,u)=>{const g=G(u),b=[...await e.listAssets(g)].find(R=>R.assetId===c.assetId);if(!b)return P("asset.notFound",`Asset was not found: ${c.assetId}`);if(!Cn(b))return P("asset.unplaceable",`Asset is not placeable: ${c.assetId}`);const p=e.sceneAssembly.addAssetLibraryItemToDocument(g,b,ro(c)),m=e.sceneAssembly.getHierarchyItems(p.document),S=m.findIndex(R=>R.id===p.gameObject.id);return S<0?P("asset.create.invalidResult",`Created asset object is missing from the authoritative hierarchy: ${p.gameObject.id}`):(u.dispatch({type:"document.replace",document:p.document,label:`Create ${p.gameObject.name??p.gameObject.id}`,projectionImpact:{type:"incremental",createdNodeIds:[p.gameObject.id]},presentationImpact:{hierarchy:"full",inspector:"full"}}),u.captureAuthoringPatch({kind:"hierarchy",operations:[{type:"create",node:structuredClone(p.gameObject),index:S,parentId:m[S]?.parentId??null}]}),c.select!==!1&&u.session.dispatch({type:"selection.replace",selectedIds:[p.gameObject.id],activeId:p.gameObject.id,label:"Select Created Item"}),{ok:!0,output:{assetId:c.assetId,createdId:p.gameObject.id,object:$e(p.gameObject,p.document),selection:u.session.getSelection(),focused:!1,status:`Created ${p.gameObject.name??p.gameObject.id}`}})}}))}catch(c){for(const u of t.splice(0).reverse())u();throw c}return()=>{for(const c of t.splice(0).reverse())c()}}function ze(e,t){return Object.is(e.x,t.x)&&Object.is(e.y,t.y)&&Object.is(e.z,t.z)}function xa(e,t){return ze(e.position,t.position)&&ze(e.rotation,t.rotation)&&ze(e.scale,t.scale)}function Lr(e){const[,t,r]=e.split(".");return[t,r]}function cr(e,t){const[r,a]=Lr(t);return e[r][a]}function Ga(e,t){const r={position:{...e.position},rotation:{...e.rotation},scale:{...e.scale}};for(const a of t){const[n,o]=Lr(a.path);r[n][o]=a.value}return r}function Fa(e){const t=new Set;for(const r of e){if(t.has(r.path))return r.path;t.add(r.path)}return null}function Ba(e,t){const r=t.query?.trim().toLowerCase()??"",a=t.path?.trim().toLowerCase()??"",n=t.shaderId?.trim()??"",o=(e.scene.materialAssets??[]).map(i=>({id:i.id,name:i.name?.trim()||i.id,shaderId:i.shaderId,...i.definitionVersion!=null?{definitionVersion:i.definitionVersion}:{},properties:structuredClone(i.properties),...i.origin?{origin:structuredClone(i.origin)}:{}})).filter(i=>!n||i.shaderId===n).filter(i=>!r||`${i.name}
|
|
2
|
+
${i.id}`.toLowerCase().includes(r)).filter(i=>!a||JSON.stringify(i.origin??{}).toLowerCase().includes(a)).sort((i,s)=>i.name.localeCompare(s.name)||i.id.localeCompare(s.id));return mt(o,t.cursor,t.limit)}function za(e,t){const r=t.query?.trim().toLowerCase()??"",a=e.list().map(xr).filter(n=>t.builtin===void 0||n.builtin===t.builtin).filter(n=>!r||`${n.displayName}
|
|
3
|
+
${n.shaderId}
|
|
4
|
+
${n.runtimeKind}`.toLowerCase().includes(r)).sort((n,o)=>n.displayName.localeCompare(o.displayName)||n.shaderId.localeCompare(o.shaderId));return mt(a,t.cursor,t.limit)}function Ua(e,t){const r=t?.trim(),a=e.get(r);return a?{ok:!0,output:{definition:{...xr(a),propertiesSchema:structuredClone(a.propertiesSchema),defaultProperties:structuredClone(a.defaultProperties),inspector:structuredClone(a.inspector)}}}:P("material.shaderDefinitionNotFound",`Shader Definition was not found: ${r}`)}function xr(e){return{shaderId:e.shaderId,version:e.version,runtimeKind:e.runtimeKind,displayName:e.displayName,builtin:Un(e.shaderId)!==null,...e.sourceFile?{sourceFile:e.sourceFile}:{},sectionCount:e.inspector.sections.length,fieldCount:e.inspector.fields.length}}function $a(e,t){const r=t?.trim(),a=W(e,r);return a?{ok:!0,output:{asset:{id:a.id,name:a.name?.trim()||a.id,shaderId:a.shaderId,...a.definitionVersion!=null?{definitionVersion:a.definitionVersion}:{},properties:structuredClone(a.properties),...a.origin?{origin:structuredClone(a.origin)}:{}},referenceCount:kt(e).filter(n=>n.materialAssetId===r).length}}:P("material.assetNotFound",`Material asset was not found: ${r}`)}function Ha(e,t,r,a){const n=r.shaderId?.trim(),o=a.get(n);if(!o)return P("material.shaderDefinitionNotFound",`Shader Definition was not found: ${n}`);const i=r.name?.trim();if(r.name!==void 0&&!i)return P("material.invalidName","Material name must not be empty.");const s=t.createMaterialAssetCreatePatch({document:e.session.getWorkingDocument(),definition:o,...i?{name:i}:{}});if(!s?.createdId)return P("material.assetMutationUnavailable","Material Asset creation is unavailable.");const l=e.session.getState({cloneDocuments:!1}).documentRevision;Ve(e,s);const d=W(e.session.getWorkingDocument(),s.createdId);return ke(e,null,ge(d)),{ok:!0,output:{asset:Te(d),changed:e.session.getState({cloneDocuments:!1}).documentRevision!==l,revision:e.session.getState({cloneDocuments:!1}).documentRevision}}}function Va(e,t,r){const a=e.session.getWorkingDocument(),n=r.materialAssetId?.trim();if(!W(a,n))return P("material.assetNotFound",`Material asset was not found: ${n}`);const i=t.createMaterialAssetDuplicatePatch({document:a,materialAssetId:n});if(!i?.createdId)return P("material.assetMutationUnavailable","Material Asset duplication is unavailable.");const s=e.session.getState({cloneDocuments:!1}).documentRevision;Ve(e,i);const l=W(e.session.getWorkingDocument(),i.createdId);if(!l)throw new Error(`Duplicated Material Asset is missing after the reducer: ${i.createdId}.`);return ke(e,null,ge(l)),{ok:!0,output:{sourceMaterialAssetId:n,asset:Te(l),changed:e.session.getState({cloneDocuments:!1}).documentRevision!==s,revision:e.session.getState({cloneDocuments:!1}).documentRevision}}}function qa(e,t,r){const a=e.session.getWorkingDocument(),n=r.materialAssetId?.trim(),o=W(a,n);if(!o)return P("material.assetNotFound",`Material asset was not found: ${n}`);const i=kt(a).filter(d=>d.materialAssetId===n);if(i.length>0)return P("material.assetInUse",`Material asset is still referenced: ${n}`,{materialAssetId:n,referenceCount:i.length});const s=t.createMaterialAssetDeletePatch({document:a,materialAssetId:n});if(!s)return P("material.assetReadonly",`Material asset cannot be deleted: ${n}`);const l=e.session.getState({cloneDocuments:!1}).documentRevision;if(Ve(e,s),W(e.session.getWorkingDocument(),n))throw new Error(`Deleted Material Asset is still present after the reducer: ${n}.`);return ke(e,ge(o),null),{ok:!0,output:{materialAssetId:n,changed:e.session.getState({cloneDocuments:!1}).documentRevision!==l,revision:e.session.getState({cloneDocuments:!1}).documentRevision}}}function Ya(e,t,r){const a=e.session.getWorkingDocument(),n=r.materialAssetId?.trim(),o=W(a,n);if(!o)return P("material.assetNotFound",`Material asset was not found: ${n}`);const i=r.name?.trim();if(!i)return P("material.invalidName","Material name must not be empty.");const s=(a.scene.materialAssets??[]).find(c=>c.id!==n&&c.name?.trim().toLocaleLowerCase()===i.toLocaleLowerCase());if(s)return P("material.nameConflict",`A Material Asset named "${i}" already exists.`,{materialAssetId:n,conflictingMaterialAssetId:s.id,name:i});if(o.name===i)return{ok:!0,output:{asset:Te(o),changed:!1,revision:e.session.getState({cloneDocuments:!1}).documentRevision}};const l=t.createMaterialAssetRenamePatch({document:a,materialAssetId:n,name:i});if(!l)return P("material.assetReadonly",`Material asset is read-only: ${n}`);const d=e.session.getState({cloneDocuments:!1}).documentRevision;Ve(e,l);const h=W(e.session.getWorkingDocument(),n);return ke(e,ge(o),ge(h),l.changedIds??l.reprojectIds??[]),{ok:!0,output:{asset:Te(h),changed:e.session.getState({cloneDocuments:!1}).documentRevision!==d,revision:e.session.getState({cloneDocuments:!1}).documentRevision}}}function Wa(e,t,r,a){const n=e.session.getWorkingDocument(),o=r.materialAssetId?.trim(),i=W(n,o);if(!i)return P("material.assetNotFound",`Material asset was not found: ${o}`);const s=r.shaderId?.trim(),l=a.get(s);if(!l)return P("material.shaderDefinitionNotFound",`Shader Definition was not found: ${s}`);if(i.shaderId===s)return{ok:!0,output:{asset:Te(i),previousShaderId:i.shaderId,changed:!1,revision:e.session.getState({cloneDocuments:!1}).documentRevision,preservedPaths:[],resetPaths:[]}};const d=t.createMaterialAssetSetShaderPatch({document:n,materialAssetId:o,definition:l});if(!d)return P("material.assetReadonly",`Material asset is read-only: ${o}`);if((d.resetPaths?.length??0)>0&&r.allowReset!==!0)return P("material.shaderChangeRequiresConfirmation",`Changing to ${l.displayName} resets ${d.resetPaths.length} incompatible material properties.`,{materialAssetId:o,previousShaderId:i.shaderId,shaderId:s,preservedPaths:d.preservedPaths??[],resetPaths:d.resetPaths??[]});const h=e.session.getState({cloneDocuments:!1}).documentRevision;Ve(e,d);const c=W(e.session.getWorkingDocument(),o);return ke(e,ge(i),ge(c),d.changedIds??d.reprojectIds??[]),{ok:!0,output:{asset:Te(c),previousShaderId:i.shaderId,changed:e.session.getState({cloneDocuments:!1}).documentRevision!==h,revision:e.session.getState({cloneDocuments:!1}).documentRevision,preservedPaths:d.preservedPaths??[],resetPaths:d.resetPaths??[]}}}function Ve(e,t){e.dispatch({type:"document.patch",patch:t.patch,label:t.label,...t.reprojectIds?.length?{projectionImpact:{type:"incremental",reprojectIds:t.reprojectIds}}:{},...t.presentationImpact?{presentationImpact:t.presentationImpact}:{}})}function ke(e,t,r,a=[]){const n={kind:"material",operations:[{type:"asset-update",materialAssetId:typeof r?.id=="string"?r.id:typeof t?.id=="string"?t.id:"",before:t,after:r,affectedNodeIds:[...new Set(a.filter(o=>o.trim().length>0))]}]};e.captureAuthoringPatch(n)}function ge(e){return JSON.parse(JSON.stringify(Te(e)))}function Ka(e,t){const r={kind:"material",operations:[{type:"binding-update",scope:t.scope,targetId:t.targetId,...t.containerId?{containerId:t.containerId}:{},...t.slotId?{slotId:t.slotId}:{},before:t.before,after:t.after,affectedNodeIds:[...new Set((t.affectedNodeIds??[]).filter(a=>a.trim().length>0))]}]};e.captureAuthoringPatch(r)}function Te(e){return{id:e.id,name:e.name?.trim()||e.id,shaderId:e.shaderId,...e.definitionVersion!=null?{definitionVersion:e.definitionVersion}:{},properties:structuredClone(e.properties),...e.origin?{origin:structuredClone(e.origin)}:{}}}function Ja(e,t){const r=t.materialAssetId?.trim();if(!W(e,r))return P("material.assetNotFound",`Material asset was not found: ${r}`);const a=kt(e).filter(n=>n.materialAssetId===r).filter(n=>!t.scope||n.scope===t.scope).map(n=>({scope:n.scope,kind:n.kind,materialAssetId:n.materialAssetId,...n.scope==="scene"?{objectId:n.gameObjectId}:{},...n.gameObjectName?{objectName:n.gameObjectName}:{},...n.prefabAssetId?{prefabAssetId:n.prefabAssetId}:{},...n.prefabNodeId?{nodeId:n.prefabNodeId}:{},...n.slotId?{slotId:n.slotId}:{},bindingPath:n.bindingPath,label:n.label})).sort((n,o)=>fe(n).localeCompare(fe(o)));return{ok:!0,output:{materialAssetId:r,...mt(a,t.cursor,t.limit)}}}function Dt(e,t){const r=t.scope==="prefab"?[]:e.scene.gameObjects.filter(n=>!t.objectId||n.id===t.objectId).flatMap(n=>{const o=jn(e,n),i=kn(e,n.id)??n.overrides;return o.length===0?[dt({scope:"scene",objectId:n.id},n.overrides?.materialBinding,i?.materialBinding,i!==n.overrides?"prefab-root":"default","overrides.materialBinding.materialAssetId")]:o.map(s=>dt({scope:"scene",objectId:n.id,slotId:s.slotId},n.overrides?.materialSlotBindings?.[s.slotId],i?.materialSlotBindings?.[s.slotId],i!==n.overrides?"prefab-root":"glb-source",`overrides.materialSlotBindings.${s.slotId}.materialAssetId`))}),a=t.scope==="scene"?[]:e.assets.filter(n=>n.type==="prefab"&&!!n.prefab).filter(n=>!t.prefabAssetId||n.id===t.prefabAssetId).flatMap(n=>{const o=t.nodeId?[]:dr(e,n,null,n.prefab.overrides,void 0),i=Nn(n),s=(n.prefab?.nodes??[]).filter(l=>l.id!==i).filter(l=>!t.nodeId||l.id===t.nodeId).flatMap(l=>dr(e,n,l,l.overrides,n.prefab.overrides));return[...o,...s]});return[...r,...a].sort((n,o)=>fe(n.target).localeCompare(fe(o.target)))}function dr(e,t,r,a,n){const o=eo(e,t,r),i={scope:"prefab",prefabAssetId:t.id,...r?{nodeId:r.id}:{}};return o.length===0?[dt(i,a?.materialBinding,a?.materialBinding??n?.materialBinding,n?.materialBinding?"prefab-root":"default","overrides.materialBinding.materialAssetId")]:o.map(s=>dt({...i,slotId:s},a?.materialSlotBindings?.[s],a?.materialSlotBindings?.[s]??n?.materialSlotBindings?.[s],n?.materialSlotBindings?.[s]?"prefab-root":"glb-source",`overrides.materialSlotBindings.${s}.materialAssetId`))}function dt(e,t,r,a,n){const o=ur(t?.materialAssetId),i=ur(r?.materialAssetId),s=o?"authored":i?a:e.slotId?"glb-source":"default";return{target:e,kind:e.slotId?"slot":"root",bindingPath:n,authoredMaterialAssetId:o,effectiveMaterialAssetId:i??(s==="glb-source"?null:$n),resolvedSource:s}}function lr(e,t,r,a){const n=G(e),o=a?.trim()||null;if(o&&!W(n,o))return P("material.assetNotFound",`Material asset was not found: ${o}`);const i=Qa(r);if(!i.ok)return i.failure;const s=new Map(Dt(n,{}).map(p=>[fe(p.target),p])),l=i.targets.map(p=>s.get(fe(p)));if(l.some(p=>!p))return P("material.invalidTarget","One or more material binding targets do not exist or require a logical slotId.");const d=l,c=i.targets[0].scope==="scene"?t.createSceneMaterialBindingPatch({document:n,materialAssetId:o,targets:l.map(p=>({objectId:p.target.objectId,path:p.bindingPath}))}):t.createPrefabMaterialBindingPatch({document:n,materialAssetId:o,targets:l.map(p=>({prefabAssetId:p.target.prefabAssetId,...p.target.nodeId?{nodeId:p.target.nodeId}:{},path:p.bindingPath}))});if(!c)return P("material.patchUnavailable","Material binding preflight rejected the atomic patch.");e.dispatch({type:"document.patch",patch:c.patch,label:c.label,...c.reprojectIds?.length?{projectionImpact:{type:"incremental",reprojectIds:c.reprojectIds}}:{},...c.presentationImpact?{presentationImpact:c.presentationImpact}:{}});const u=G(e),g=new Map(Dt(u,{}).map(p=>[fe(p.target),p])),b=i.targets.map(p=>g.get(fe(p)));return i.targets.forEach((p,m)=>{const S=d[m],R=b[m];Ka(e,{scope:p.scope,targetId:p.scope==="scene"?p.objectId:p.nodeId??p.prefabAssetId,...p.scope==="prefab"&&p.prefabAssetId?{containerId:p.prefabAssetId}:{},...p.slotId?{slotId:p.slotId}:{},before:S.authoredMaterialAssetId??null,after:R.authoredMaterialAssetId??null,affectedNodeIds:c.reprojectIds??[]})}),{ok:!0,output:{changed:b.some((p,m)=>JSON.stringify(p)!==JSON.stringify(d[m])),changedCount:b.filter((p,m)=>JSON.stringify(p)!==JSON.stringify(d[m])).length,revision:e.session.getState({cloneDocuments:!1}).documentRevision,bindings:b}}}function Xa(e,t,r,a){const n=t?.trim(),o=W(e,n),i=o?Ln(o.shaderId,a):null;return o?i?{ok:!0,output:{materialAssetId:n,shaderId:o.shaderId,properties:structuredClone(o.properties),defaults:structuredClone(i.defaultProperties),...r?{schema:structuredClone(i.propertiesSchema)}:{}}}:P("material.shaderUnsupported",`Unsupported material shader: ${o.shaderId}`):P("material.assetNotFound",`Material asset was not found: ${n}`)}function Za(e,t,r,a){const n=G(e),o=r.materialAssetId?.trim(),i=W(n,o);if(!i)return P("material.assetNotFound",`Material asset was not found: ${o}`);const s=new Set,l=[];for(const c of r.changes??[]){const u=to(c.path),g=xn(i.shaderId,u,a),b=Object.prototype.hasOwnProperty.call(c,"value"),p=c.reset===!0;if(!u||s.has(u)||!g||g.kind==="object"||b===p)return P("material.invalidPropertyPatch",`Invalid material property change: ${c.path}`);const m=p?Gn(i.shaderId,u,a):{found:!0,value:c.value};if(!m.found)return P("material.invalidPropertyPatch",`Material property cannot be reset: ${u}`);s.add(u),l.push({path:u,value:m.value})}const d=t.createMaterialPropertiesPatch({document:n,materialAssetId:o,changes:l});if(!d)return P("material.invalidPropertyPatch","Material property preflight rejected the atomic patch.");e.dispatch({type:"document.patch",patch:d.patch,label:d.label,...d.reprojectIds?.length?{projectionImpact:{type:"incremental",reprojectIds:d.reprojectIds}}:{}});const h=W(G(e),o);return ke(e,ge(i),ge(h),d.reprojectIds??[]),{ok:!0,output:{materialAssetId:o,shaderId:h.shaderId,changed:JSON.stringify(i.properties)!==JSON.stringify(h.properties),changedPaths:JSON.stringify(i.properties)!==JSON.stringify(h.properties)?[...s]:[],revision:e.session.getState({cloneDocuments:!1}).documentRevision,properties:structuredClone(h.properties)}}}function Qa(e){if(!Array.isArray(e)||e.length===0)return{ok:!1,failure:P("material.invalidTarget","At least one material target is required.")};const t=new Set,r=[];for(const a of e){const n=a.scope,o=a.objectId?.trim(),i=a.prefabAssetId?.trim(),s=a.nodeId?.trim(),l=a.slotId?.trim();if(n==="scene"&&(!o||i||s)||n==="prefab"&&(!i||o)||n!=="scene"&&n!=="prefab")return{ok:!1,failure:P("material.invalidTarget","Material target identity is invalid.")};const d={scope:n,...o?{objectId:o}:{},...i?{prefabAssetId:i}:{},...s?{nodeId:s}:{},...l?{slotId:l}:{}},h=fe(d);if(t.has(h))return{ok:!1,failure:P("material.invalidTarget","Duplicate material target.")};t.add(h),r.push(d)}return new Set(r.map(a=>a.scope)).size!==1?{ok:!1,failure:P("material.invalidTarget","Scene and Prefab targets cannot be mixed.")}:r[0].scope==="prefab"&&new Set(r.map(a=>a.prefabAssetId)).size!==1?{ok:!1,failure:P("material.invalidTarget","One atomic command must target one Prefab asset.")}:{ok:!0,targets:r}}function eo(e,t,r){const a=r?.sourceAssetId??t.prefab?.sourceAssetId,n=e.assets.find(i=>i.id===a);return(Array.isArray(n?.metadata?.materialSlots)?n.metadata.materialSlots:[]).map(Yn).filter(i=>!!i?.slotId).map(i=>i.slotId)}function mt(e,t,r){const a=t?/^offset:(\d+)$/.exec(t.trim()):null,n=a?Number(a[1]):0,o=Number.isSafeInteger(r)?Math.max(1,Math.min(200,Number(r))):50,i=e.slice(n,n+o),s=n+i.length;return{items:i,total:e.length,...s<e.length?{nextCursor:`offset:${s}`}:{}}}function fe(e){return[e.scope??"",e.objectId??"",e.prefabAssetId??"",e.nodeId??"",e.slotId??""].join("\0")}function to(e){const t=typeof e=="string"?e.trim():"";return t&&!t.startsWith("properties.")?`properties.${t}`:t}function ur(e){return typeof e=="string"&&e.trim()?e.trim():null}function ro(e){if(!(!e.position&&!e.rotation&&!e.scale))return{position:e.position??{x:0,y:0,z:0},rotation:e.rotation??{x:0,y:0,z:0},scale:e.scale??{x:1,y:1,z:1}}}function mr(e,t,r,a){const n=G(e),o=typeof r.parentId=="string"?r.parentId:typeof r.activeId=="string"?r.activeId:null;return o&&!t.getHierarchyItems(n).some(i=>i.id===o)?Ue(o,["exists"],{exists:!0},{exists:!1}):r.objectId&&t.getHierarchyItems(n).some(i=>i.id===r.objectId)?Ue(r.objectId,["exists"],{exists:!1},{exists:!0}):no(e,t,a(n,r))}function no(e,t,r){if(!r?.createdId)return P("command.unavailable","The requested Hierarchy create operation is unavailable.");const a=fo(r);e.dispatch({type:"document.patch",patch:r.patch,label:r.label,...a?{projectionImpact:a}:{},presentationImpact:{hierarchy:"full",inspector:"full"}});const n=G(e),o=n.scene.gameObjects.find(l=>l.id===r.createdId),i=t.getHierarchyItems(n),s=i.findIndex(l=>l.id===r.createdId);if(!o||s<0)throw new Error(`Created Hierarchy node is missing after the authoritative reducer: ${r.createdId}.`);return e.captureAuthoringPatch({kind:"hierarchy",operations:[{type:"create",node:structuredClone(o),index:s,parentId:i[s]?.parentId??null}]}),{ok:!0,output:{createdId:r.createdId,object:$e(o,n),selection:e.session.getSelection()}}}function ao(e,t,r){const a=G(e),n=a.scene.gameObjects.find(d=>d.id===r.objectId);if(!n)return P("object.notFound",`Scene object was not found: ${r.objectId}`);const o=n.name??n.id;if(o!==r.expectedName)return Ue(r.objectId,["name"],{name:r.expectedName},{name:o});const i=t.createRenamePatch(a,{id:r.objectId,name:r.name});if(!i)return P("object.rename.unchanged",`Rename did not change: ${r.objectId}`);e.dispatch({type:"document.patch",patch:i.patch,label:i.label,projectionImpact:{type:"incremental",syncMetadataIds:[r.objectId]},presentationImpact:{hierarchy:{labelIds:[r.objectId]},inspector:["summary"]}});const s=G(e).scene.gameObjects.find(d=>d.id===r.objectId),l=s?.name??s?.id;if(!l||l===o)throw new Error(`Rename reducer did not converge: ${r.objectId}.`);return e.captureAuthoringPatch({kind:"hierarchy",operations:[{type:"rename",targetId:r.objectId,before:o,after:l}]}),{ok:!0,output:{objectId:r.objectId,before:o,after:l}}}function oo(e,t,r){const a=G(e),n=ft(t,a,r.expectedNodes);if(n)return n;const o={ids:[...r.objectIds],targetId:r.targetId??null,placement:r.placement,...r.parentId!==void 0?{parentId:r.parentId}:{},...r.beforeId!==void 0?{beforeId:r.beforeId}:{},...r.afterId!==void 0?{afterId:r.afterId}:{},preserveWorldTransform:r.preserveWorldTransform!==!1},i=t.validateHierarchyMove(a,o);if(!i.ok)return P("object.move.rejected",i.reason??"Hierarchy move was rejected.");const s=t.createHierarchyMovePatch(a,o);if(!s)return P("object.move.unchanged","Hierarchy move did not change the document.");e.dispatch({type:"document.patch",patch:s.patch,label:s.label,projectionImpact:{type:"incremental",syncTransformIds:s.changedIds??[...r.objectIds]},presentationImpact:{hierarchy:"full",inspector:["transform"]}});const l=G(e),d=s.changedIds??[...r.objectIds],h=Gr(a,l,d,t.getHierarchyItems(a),t.getHierarchyItems(l));if(h.moves.length===0)throw new Error("Hierarchy move reducer produced no canonical changes.");return e.captureAuthoringPatch({kind:"hierarchy",operations:[h]}),{ok:!0,output:{movedIds:d}}}function io(e,t,r){const a=G(e),n=ft(t,a,r.expectedNodes);if(n)return n;const o=t.createDuplicateSelectionPatch({document:a,targetIds:[...r.objectIds],activeId:r.activeId??null});if(!o||o.createdIds.length===0)return P("object.duplicate.rejected","Hierarchy duplicate was rejected.");e.dispatch({type:"document.patch",patch:o.patch,label:o.label,projectionImpact:{type:"incremental",createdNodeIds:[...o.createdIds]},presentationImpact:{hierarchy:"full",inspector:"full"}});const i=G(e),s=t.getHierarchyItems(i),l=o.createdIds.map(c=>{const u=i.scene.gameObjects.find(b=>b.id===c),g=s.findIndex(b=>b.id===c);if(!u||g<0)throw new Error(`Duplicated Hierarchy node is missing after the reducer: ${c}.`);return{type:"create",node:structuredClone(u),index:g,parentId:s[g]?.parentId??null}}).sort((c,u)=>c.index-u.index);e.captureAuthoringPatch({kind:"hierarchy",operations:l});const d=o.selectedIds?.length?[...o.selectedIds]:[...o.createdIds],h=o.activeId&&d.includes(o.activeId)?o.activeId:d[d.length-1]??null;return d.length>0&&e.session.dispatch({type:"selection.replace",selectedIds:d,activeId:h,label:"Select Duplicated Nodes"}),{ok:!0,output:{createdIds:[...o.createdIds],selectedIds:d,activeId:h,selection:e.session.getSelection()}}}function so(e,t,r){const a=G(e),n=ft(t,a,r.expectedNodes);if(n)return n;const o={ids:[...r.objectIds],name:r.name,pivot:"selection-center",preserveWorldTransform:r.preserveWorldTransform!==!1,...r.parentId!==void 0?{parentId:r.parentId}:{},...r.insertBeforeId!==void 0?{insertBeforeId:r.insertBeforeId}:{}},i=t.validateGroupSelection(a,o);if(!i.ok)return P("object.group.rejected",i.reason??"Hierarchy group was rejected.");const s=t.createGroupSelectionPatch(a,o);if(!s?.createdId)return P("object.group.rejected","Hierarchy group was rejected.");const l=t.getHierarchyItems(a);e.dispatch({type:"document.patch",patch:s.patch,label:s.label,projectionImpact:{type:"incremental",createdNodeIds:[s.createdId],syncTransformIds:s.changedIds?.filter(m=>m!==s.createdId)??[...r.objectIds]},presentationImpact:{hierarchy:"full",inspector:"full"}});const d=G(e),h=t.getHierarchyItems(d),c=d.scene.gameObjects.find(m=>m.id===s.createdId),u=h.findIndex(m=>m.id===s.createdId);if(!c||u<0)throw new Error(`Grouped Hierarchy parent is missing after the reducer: ${s.createdId}.`);const g=[...l];g.splice(Math.min(u,g.length),0,h[u]);const b=(s.changedIds??[...r.objectIds]).filter(m=>m!==s.createdId),p=Gr(a,d,b,g,h);if(p.moves.length===0)throw new Error("Hierarchy group reducer produced no canonical moves.");return e.captureAuthoringPatch({kind:"hierarchy",operations:[{type:"create",node:structuredClone(c),index:u,parentId:h[u]?.parentId??null},p]}),e.session.dispatch({type:"selection.replace",selectedIds:[s.createdId],activeId:s.createdId,label:"Select Created Parent"}),{ok:!0,output:{createdId:s.createdId,movedIds:b,selection:e.session.getSelection()}}}function co(e,t,r){const a=G(e),n=a.scene.gameObjects.find(d=>d.id===r.objectId);if(!n)return P("object.notFound",`Scene object was not found: ${r.objectId}`);const o=n.active!==!1;if(o!==r.expectedEnabled)return Ue(r.objectId,["enabled"],{enabled:r.expectedEnabled},{enabled:o});const i=t.patchGameObjectField(a,r.objectId,"enabled",r.enabled),l=i.scene.gameObjects.find(d=>d.id===r.objectId)?.active!==!1;return i===a||l===o?P("object.enabled.unchanged",`Enabled state did not change: ${r.objectId}`):(e.dispatch({type:"document.replace",document:i,label:`${r.enabled?"Enable":"Disable"} ${r.objectId}`,projectionImpact:{type:"incremental",syncAppearanceIds:[r.objectId]},presentationImpact:{hierarchy:"full",inspector:["summary"]}}),e.captureAuthoringPatch({kind:"hierarchy",operations:[{type:"set-enabled",targetId:r.objectId,before:o,after:l}]}),{ok:!0,output:{objectId:r.objectId,before:o,after:l}})}function lo(e,t,r){const a=G(e);if(r.expectedNodes){const d=ft(t,a,r.expectedNodes);if(d)return d}else{const d=e.session.getState({cloneDocuments:!1}).documentRevision;if(e.expectedRevision?.document!==d)return P("command.documentRevisionMismatch",`Expected document revision ${e.expectedRevision?.document}, received ${d}.`,{expected:e.expectedRevision?.document,actual:d})}const n=r.objectIds??(r.objectId?[r.objectId]:[]),o=t.createDeleteSubtreePatch(a,{ids:n});if(!o)return P("command.unavailable","Hierarchy delete was rejected.");const i=o.deletedIds??n,s=t.getHierarchyItems(a),l=i.map(d=>{const h=a.scene.gameObjects.find(u=>u.id===d),c=s.findIndex(u=>u.id===d);if(!h||c<0)throw new Error(`Deleted Hierarchy node is missing from the command base: ${d}.`);return{node:structuredClone(h),index:c,parentId:s.find(u=>u.id===d)?.parentId??null}});return e.dispatch({type:"document.patch",patch:o.patch,label:o.label,projectionImpact:{type:"incremental",deletedNodeIds:i},presentationImpact:{hierarchy:"full",inspector:"full"}}),e.captureAuthoringPatch({kind:"hierarchy",operations:[{type:"delete",nodes:l}]}),{ok:!0,output:{deletedIds:i,fallbackSelectionId:e.session.getSelection().activeId,selection:e.session.getSelection()}}}function ft(e,t,r){const a=e.getHierarchyItems(t),n=r.map(i=>uo(a,i.objectId)),o=r.flatMap((i,s)=>mo(i,n[s])?[]:[i.objectId]);return o.length===0?null:Ue(o[0],["parentId","previousSiblingId","nextSiblingId"],{nodes:r},{nodes:n})}function uo(e,t){const r=e.find(i=>i.id===t);if(!r)return null;const a=r.parentId??null,n=e.filter(i=>(i.parentId??null)===a),o=n.findIndex(i=>i.id===t);return{objectId:t,parentId:a,previousSiblingId:o>0?n[o-1].id:null,nextSiblingId:o>=0&&o+1<n.length?n[o+1].id:null}}function mo(e,t){return!!t&&e.objectId===t.objectId&&e.parentId===t.parentId&&e.previousSiblingId===t.previousSiblingId&&e.nextSiblingId===t.nextSiblingId}function Ue(e,t,r,a){return P("authoring.remoteConflict",`Hierarchy changed after the command base revision: ${e}.`,{objectId:e,paths:t,expected:r,actual:a})}function Gr(e,t,r,a,n){return{type:"move",moves:r.flatMap(i=>{const s=a.findIndex(g=>g.id===i),l=n.findIndex(g=>g.id===i),d=e.scene.gameObjects.find(g=>g.id===i),h=t.scene.gameObjects.find(g=>g.id===i);if(!d||!h||s<0||l<0)return[];const c=d.components.find(g=>g.type==="Transform")??null,u=h.components.find(g=>g.type==="Transform")??null;return d.parentId===h.parentId&&s===l&&JSON.stringify(c)===JSON.stringify(u)?[]:[{targetId:i,beforeParentId:a.find(g=>g.id===i)?.parentId??null,afterParentId:n.find(g=>g.id===i)?.parentId??null,beforeIndex:s,afterIndex:l,beforeTransform:structuredClone(c),afterTransform:structuredClone(u)}]})}}function fo(e){const t=e.createdId?[e.createdId]:[],r=e.deletedIds??[];let a=[];if(e.reprojectIds?.length){const n=new Set([...t,...r]);a=e.reprojectIds.filter(o=>!n.has(o))}if(!(t.length===0&&r.length===0&&a.length===0))return{type:"incremental",...t.length?{createdNodeIds:t}:{},...r.length?{deletedNodeIds:r}:{},...a.length?{reprojectIds:a}:{}}}function go(e,t){const r=t.objectId??t.name??t.path??t.query??"",a=r.trim().toLocaleLowerCase(),n=e.scene.gameObjects.find(s=>s.id===r),o=n?[n]:e.scene.gameObjects.filter(s=>s.name?.trim().toLocaleLowerCase()===a||s.id.toLocaleLowerCase().includes(a)),i=Nt(e);return{ok:!0,output:{objects:o.map(s=>$e(s,e,i)),resolvedObject:o.length===1?$e(o[0],e,i):null,ambiguous:o.length>1}}}function $e(e,t,r=Nt(t)){const a=po(e);return{id:e.id,label:e.name??e.id,name:e.name??e.id,type:_r(e),...a?{sourceAssetId:a}:{},path:ho(r,e),parentId:e.parentId??null,selectable:!0,locked:!1}}function po(e){return e.components.find(r=>r.type==="ModelRenderer"||r.type==="ImageRenderer")?.assetId||e.prefab?.sourceAssetId||e.prefab?.prefabId}function Nt(e){return new Map(e.scene.gameObjects.map(t=>[t.id,t]))}function ho(e,t){const r=[],a=new Set;let n=t;for(;n&&!a.has(n.id);)a.add(n.id),r.push(n.name??n.id),n=n.parentId?e.get(n.parentId):void 0;return r.reverse().join("/")}function Eo(e,t,r){const a=G(e),n=new Map(a.scene.gameObjects.map(m=>[m.id,m])),o=new Map,i=new Map,s=new Set,l=Hn({hasMaterialAsset:(m,S)=>!!W(m,S),isMarkerGameObject:m=>!!m.marker});let d=0;const h=e.session.getState({cloneDocuments:!1}).documentRevision;if(!r.targets.every(m=>m.changes.every(S=>Object.prototype.hasOwnProperty.call(S,"expected")))&&e.expectedRevision?.document!==h)return P("command.documentRevisionMismatch",`Expected document revision ${e.expectedRevision?.document}, received ${h}.`,{expected:e.expectedRevision?.document,actual:h});for(const m of r.targets){const S=m.objectId.trim(),R=n.get(S);if(!R)return P("object.notFound",`Scene object was not found: ${S}`);const A=new Map((t.getInspectorObject(a,S)?.sections??[]).flatMap(M=>M.properties).map(M=>[M.path,M])),j=o.get(S)??[];for(const M of m.changes){const T=M.path.trim(),U=`${S}\0${T}`;if(s.has(U))return P("object.properties.duplicateField",`Object property is duplicated: ${S}.${T}`);if(s.add(U),(T==="shadow.cast"||T==="shadow.receive")&&!Fn(R))return P("object.properties.readOnly",`Shadow participation is readonly for this target: ${S}.`);const O=A.get(T),w=Object.prototype.hasOwnProperty.call(M,"expected");if(w&&!O)return P("object.properties.unsupportedPath",`Inspector schema does not expose a field precondition path: ${S}.${T}`);const _=yt(O?.value);if(w&&!lt(M.expected,_))return P("authoring.remoteConflict",`Object properties changed after the command base revision: ${S}.`,{objectId:S,paths:[T],expected:{[T]:yt(M.expected)},actual:{[T]:_},baseDocumentRevision:e.expectedRevision.document,actualDocumentRevision:h});const K=O?.coerce?O.coerce(M.value):Bn(T,M.value),$=O?.validate?.(K)??zn({document:a,path:T,nodeKind:_r(R),value:K,extraValidators:[l]});if(!$.ok)return P("object.properties.invalid",`${$.message??`Invalid object property: ${T}.`} Target: ${S}.`);O&&i.set(U,_),j.push({path:T,value:K}),d+=1}o.set(S,j)}const u=[...o].map(([m,S])=>({objectId:m,changes:S})),g=t.patchGameObjectPropertiesMany(a,u),b=new Map(g.scene.gameObjects.map(m=>[m.id,m])),p=u.map(m=>m.objectId).filter(m=>b.get(m)!==n.get(m));if(g!==a){const m=u.flatMap(T=>{const U=new Map((t.getInspectorObject(g,T.objectId)?.sections??[]).flatMap(O=>O.properties).map(O=>[O.path,O]));return T.changes.flatMap(O=>{const w=`${T.objectId}\0${O.path}`,_=i.get(w),K=U.get(O.path);if(_===void 0||!K)return[];const $=yt(K.value);return lt(_,$)?[]:[{targetId:T.objectId,path:O.path,before:_,after:$}]})}),S=bo(m);if(m.length===0)return{ok:!0,output:{requestedObjectCount:u.length,validatedPropertyCount:d,changed:!1,changedObjectCount:0,sampleChangedObjectIds:[]}};const R=[],A=[],j=[],M=[];for(const T of p){const U=o.get(T)??[],O=new Set(U.map(w=>So(w.path)));if(O.has("reproject")){M.push(T);continue}O.has("transform")&&R.push(T),O.has("metadata")&&A.push(T),O.has("appearance")&&j.push(T)}e.dispatch({type:"document.replace",document:g,label:`Patch ${d} properties on ${u.length} objects`,...p.length>0?{projectionImpact:{type:"incremental",...R.length>0?{syncTransformIds:R}:{},...A.length>0?{syncMetadataIds:A}:{},...j.length>0?{syncAppearanceIds:j}:{},...M.length>0?{reprojectIds:M}:{}}}:{},...S?{authoringPatch:S}:{}})}return{ok:!0,output:{requestedObjectCount:u.length,validatedPropertyCount:d,changed:p.length>0,changedObjectCount:p.length,sampleChangedObjectIds:p.slice(0,20)}}}function yt(e){const t=JSON.stringify(e);return t===void 0?null:JSON.parse(t)}function lt(e,t){if(Object.is(e,t))return!0;if(typeof e!=typeof t||e===null||t===null)return!1;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((i,s)=>lt(i,t[s]));if(typeof e!="object"||typeof t!="object")return!1;const r=e,a=t,n=Object.keys(r).sort(),o=Object.keys(a).sort();return n.length===o.length&&n.every((i,s)=>i===o[s]&<(r[i],a[i]))}function bo(e){if(e.length===0||e.length>Vn)return;const t={kind:"fields",writes:e};return new TextEncoder().encode(JSON.stringify(t)).byteLength<=qn?t:void 0}function So(e){return e==="transform.position"||e.startsWith("transform.position.")||e==="transform.rotation"||e.startsWith("transform.rotation.")||e==="transform.scale"||e.startsWith("transform.scale.")?"transform":e==="name"||e.startsWith("metadata.")?"metadata":e==="active"||e==="enabled"||e.startsWith("shadow.")||e.startsWith("rendering.")||e.startsWith("overrides.material")||e.startsWith("overrides.outline")||e.startsWith("material.")?"appearance":"reproject"}function G(e){return e.session.getState({cloneDocuments:!1}).workingDocument}function N(e,t){const r=Mn[e],a=Dn[e],n=_n[e];if(!r)throw new Error(`Built-in Editor command metadata is missing: ${e}`);return{schemaVersion:On,id:e,version:1,title:r.title,...Wt[e]?{description:Wt[e]}:{},target:r.target,access:r.access,stability:r.stability,inputSchema:a.inputSchema,outputSchema:a.outputSchema,effects:{persistence:r.access==="write"?"authoring":"none",undoable:r.access==="write",idempotent:r.access==="read"},...r.target==="authoring"&&r.access==="write"?{transaction:{compatible:!0,sideEffects:"authoring",phase:"mutation"}}:{},presentation:{category:r.category,inputMode:yo(a.inputSchema)?"schema-form":"none",...n?.aliases?{aliases:n.aliases}:{},...n?.keywords?{keywords:n.keywords}:{},...n?.examples?{examples:n.examples}:{},...n?.shortcut?{shortcut:n.shortcut}:{},...n?.menu?{menu:n.menu}:{},...t?{selectionBinding:t}:{}}}}function Ze(e,t){const r=e.scene.gameObjects.find(n=>n.id===t),a=r?.components.find(n=>n.type==="Transform")??r?.transform;return!a||"mode"in a&&a.mode==="matrix"?null:{position:{...a.position},rotation:{...a.rotation},scale:{...a.scale??{x:1,y:1,z:1}}}}function yo(e){const t=e.properties;return!!t&&typeof t=="object"&&!Array.isArray(t)&&Object.keys(t).length>0}function P(e,t,r){return{ok:!1,diagnostics:[{severity:"error",source:"command",code:e,message:t,...r?{details:r}:{}}]}}function be(e){return P(e.code,e.message)}function ds(e){return{...e,paths:{...e.paths},supportedExtensions:e.supportedExtensions?[...e.supportedExtensions]:void 0,commands:e.commands?{...e.commands}:void 0}}const ls=["model","texture","image","sound"],Lt=[".glb",".gltf"],Fr=[".png",".jpg",".jpeg",".webp"],Io=[".env",".hdr",".dds",".ktx",".ktx2"],xt=[...Fr,...Io],Gt=[".mp3",".wav",".ogg",".flac",".aac",".m4a"],Po=[...Lt,...xt,...Gt];function Ao(e){return e.randomUUID?e.randomUUID():wo(e)}function Br(e){return String(e??"").trim().toLowerCase().replace(/-/g,"")}function To(e,t){const r=Br(t);return`${e==="model"?"asset":e==="texture"?"texture":e==="sound"?"sound":"image"}_${r}`}function us(e){const n=String(e??"").trim().split(/[^a-zA-Z0-9_$]+/).filter(Boolean).map((o,i)=>i===0?o:`${o.charAt(0).toUpperCase()}${o.slice(1)}`).join("").replace(/[^a-zA-Z0-9_$]/g,"")||"assetUrl";return/^[a-zA-Z_$]/.test(n)?n:`asset${n}`}function Ro(e,t=""){const r=String(e??"").trim().toLowerCase();if(r==="glb"||r==="gltf"||r==="model")return"model";if(r==="groundtexture"||r==="ground-texture"||r==="texture")return"texture";if(r==="ui"||r==="image"||r==="img")return"image";if(r==="audio"||r==="sound")return"sound";const a=vo(t);return Lt.includes(a)?"model":Gt.includes(a)?"sound":xt.includes(a)?"texture":null}function vo(e){const t=e.split(/[?#]/,1)[0]??"",r=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\")),a=t.slice(r+1),n=a.lastIndexOf(".");return n>=0?a.slice(n).toLowerCase():""}function wo(e){const t=new Uint8Array(16);if(!e.fillRandomBytes)throw new Error("Asset GUID random source must provide randomUUID or fillRandomBytes.");if(e.fillRandomBytes(t),t.every(a=>a===0))throw new Error("Asset GUID random source returned no entropy.");t[6]=t[6]&15|64,t[8]=t[8]&63|128;const r=[...t].map(a=>a.toString(16).padStart(2,"0")).join("");return`${r.slice(0,8)}-${r.slice(8,12)}-${r.slice(12,16)}-${r.slice(16,20)}-${r.slice(20)}`}function Ft(e){let t=String(e??"").trim();const r=t.toLowerCase();for(const a of[...Po].sort((n,o)=>o.length-n.length))if(r.endsWith(a)){t=t.slice(0,-a.length);break}return t}function ms(e,t){return String(e??"").trim()||Ft(t)||"Asset"}function fs(e,t){return Ft(e||t).trim().toLowerCase().normalize("NFKD").replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"").replace(/_{2,}/g,"_")||null}function gs(e){return e==="model"?Lt:e==="sound"?Gt:e==="texture"?xt:e==="image"?Fr:[]}class Ae extends Error{constructor(t,r){super(r),this.code=t,this.name="PlayableEditorManagedAssetError"}}function Co(){const e=globalThis.crypto;return Ao({...typeof e?.randomUUID=="function"?{randomUUID:()=>e.randomUUID()}:{},fillRandomBytes(t){if(typeof e?.getRandomValues=="function")e.getRandomValues(t);else for(let r=0;r<t.length;r+=1)t[r]=Math.floor(Math.random()*256)}})}function ps(e){return Br(e)}function Mo(e,t){return To(e,t)}function fr(e){return Ft(e).trim()}function zr(e,t,r){const a=jo(t.kind,t.assetPath??t.assetName),n=de(t.guid),o=de(t.assetId),i=Ur(t),s=ko(e,t);if(s&&n&&s.guid&&s.guid!==n)throw new Ae(r.errorCodes.assetIdConflict,`Requested guid "${n}" does not match existing asset guid "${s.guid}"`);const l=s?.guid??n??Co(),d=Mo(a,l);if(s?.id&&s.id!==d)throw new Ae(r.errorCodes.assetIdConflict,`Asset id "${s.id}" does not match guid "${l}" (expected "${d}")`);if(o&&o!==d)throw new Ae(r.errorCodes.assetIdConflict,`Project asset id "${o}" does not match guid "${l}" (expected "${d}")`);const h=e.assets.find(c=>c.id===d&&c.guid&&c.guid!==l);if(h)throw new Ae(r.errorCodes.assetIdConflict,`Asset id "${d}" already points to guid "${h.guid}"`);return{guid:l,assetId:d,kind:a,...i?{external:i}:s?.external?{external:s.external}:{}}}function _o(e){if(typeof e=="number"&&Number.isFinite(e)&&e>0)return e;if(!e||typeof e!="object")return;const t=e,r=It(t.x),a=It(t.y),n=It(t.z);if(!(r==null||a==null||n==null||r<=0||a<=0||n<=0))return{x:r,y:a,z:n}}function Ot(e,t,r){const a=zr(e,t,r),n=t.displayName?.trim()||fr(t.assetName)||fr(t.assetPath?.split("/").pop())||"Imported Asset",o=t.category?.trim(),i=No(t.materialMode),s=Lo(t.warmupCount),l=_o(t.defaultScale??t.scale),d=xo(t.metadata);return{...a,displayName:n,...o?{category:o}:{},...i?{materialMode:i}:{},...s!=null?{warmupCount:s}:{},...typeof t.singleton=="boolean"?{singleton:t.singleton}:{},...l?{scale:l}:{},...d?{metadata:d}:{}}}function jt(e,t){if(e.kind==="model")return{id:e.assetId,guid:e.guid,type:"glb",displayName:e.displayName,...e.category?{category:e.category}:{},...e.materialMode?{materialMode:e.materialMode}:{},...e.warmupCount!=null?{warmupCount:e.warmupCount}:{},...typeof e.singleton=="boolean"?{singleton:e.singleton}:{},...e.scale?{defaults:{transform:{scale:e.scale}}}:{},...e.external?{external:e.external}:{},metadata:{...e.metadata??{},[t.metadata.key]:t.metadata.value}}}function Do(e,t,r){const a=t.assetName||t.assetPath?.split("/").pop()||"imported_asset.glb",n=Ot(e,{...t,assetName:a},r),o=t.requestId,i=t.payloadPath??t.createPayloadPath?.({...o?{requestId:o}:{},guid:n.guid,assetId:n.assetId,kind:n.kind})??`/tmp/playable-editor-asset-${o??n.assetId}.json`,s=jt(n,r),l=t.registerCommand??"npm run asset:register",d={...t.assetPath?{sourcePath:t.assetPath,assetPath:t.assetPath}:{},...t.assetUrl?{assetUrl:t.assetUrl}:{},guid:n.guid,projectAssetId:n.assetId,assetType:n.kind,assetName:a,displayName:n.displayName,...n.category?{category:n.category}:{},...n.materialMode?{materialMode:n.materialMode}:{},...n.warmupCount!=null?{warmupCount:n.warmupCount}:{},...typeof n.singleton=="boolean"?{singleton:n.singleton}:{},...n.scale?{scale:n.scale}:{},...n.metadata?{metadata:n.metadata}:{},...n.external?{external:n.external}:{},...n.external?.platformAssetId?{platformAssetId:n.external.platformAssetId}:{}},h=`${l} -- --payload ${i}`;return{...o?{requestId:o}:{},guid:n.guid,assetId:n.assetId,kind:n.kind,displayName:n.displayName,...n.external?{external:n.external}:{},transportPlan:{writes:[{path:i,contentType:"application/json",content:d}],commands:[{cmd:h,cwd:".",timeoutMs:6e4}]},...s?{sceneAsset:s}:{}}}function Oo(e,t){const r=de(e.assetId),a=de(e.guid);if(!r&&!a)throw new Ae(t.errorCodes.missingAssetId??"missing_asset_id","Missing assetId or guid for asset unregistration");const n=e.requestId,o=e.payloadPath??e.createPayloadPath?.({...n?{requestId:n}:{},...r?{assetId:r}:{},...a?{guid:a}:{}})??`/tmp/playable-editor-asset-unregister-${n??r??a}.json`,i=e.deleteFile!==!1,s=e.unregisterCommand??"npm run asset:unregister",l={...r?{assetId:r}:{},...a?{guid:a}:{},deleteFile:i},d=`${s} -- --payload ${o}`;return{...n?{requestId:n}:{},...a?{guid:a}:{},assetId:r??"",transportPlan:{writes:[{path:o,contentType:"application/json",content:l}],commands:[{cmd:d,cwd:".",timeoutMs:6e4}]}}}function de(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function jo(e,t){return Ro(e,t)??"model"}function Ur(e){const t=e.external&&typeof e.external=="object"?e.external:{},r=de(t.platformAssetId)??de(e.platformAssetId);let a;if(Object.prototype.hasOwnProperty.call(t,"assetPath")){try{a=Wn(t.assetPath)}catch{throw new Ae("external_asset_path_must_be_portable","Explicit external.assetPath must be a non-empty portable relative path")}if(!a)throw new Ae("external_asset_path_must_be_portable","Explicit external.assetPath must be a non-empty portable relative path")}const n=de(t.assetUrl)??de(e.assetUrl);if(!(!r&&!a&&!n))return{...r?{platformAssetId:r}:{},...a?{assetPath:a}:{},...n?{assetUrl:n}:{}}}function ko(e,t){const r=de(t.guid),a=de(t.assetId),n=Ur(t);return e.assets.find(o=>!!(r&&o.guid===r||a&&o.id===a||n?.platformAssetId&&o.external?.platformAssetId===n.platformAssetId||n?.assetPath&&o.external?.assetPath===n.assetPath))}function It(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function No(e){return e==="shared"||e==="instance"?e:void 0}function Lo(e){return Number.isInteger(e)&&e>=0?e:void 0}function xo(e){if(!(!e||typeof e!="object"||Array.isArray(e)))return JSON.parse(JSON.stringify(e))}function Go(e){return{resolveAssetIdentity:(t,r,a=e.rules)=>Ge(e,()=>zr(t,r,a)),buildAssetArgs:(t,r,a=e.rules)=>Ge(e,()=>Ot(t,r,a)),createSceneAsset:(t,r=e.rules)=>jt(t,r),planAssetRegistrationCore:(t,r,a=e.rules)=>Ge(e,()=>Do(t,Fo(r,e),a)),planAssetUnregistrationCore:(t,r=e.rules)=>Ge(e,()=>Oo(Bo(t,e),r)),resolveAssetReference:(t,r,a=e.rules)=>{const n=Ge(e,()=>Ot(t,r,a)),o=jt(n,a);if(!o)throw new Error(`Asset "${n.assetId}" is not a placeable model asset`);return{guid:n.guid,assetId:n.assetId,displayName:n.displayName,asset:o}}}}function Fo(e,t){return{...e,kind:e.kind??e.assetType,createPayloadPath:e.createPayloadPath??(e.payloadPath?void 0:t.createRegistrationPayloadPath)}}function Bo(e,t){return{...e,createPayloadPath:e.createPayloadPath??(e.payloadPath?void 0:t.createUnregistrationPayloadPath)}}function Ge(e,t){try{return t()}catch(r){throw e.wrapError&&e.wrapError(r),r}}function hs(e){const t=Go(e);return{facade:t,planAssetRegistration(r,a){return t.planAssetRegistrationCore(gr(a),r)},planAssetRegistrationWithAssets(r,a){return t.planAssetRegistrationCore({assets:r},a)},planAssetUnregistration(r){return t.planAssetUnregistrationCore(r)},resolveAssetReference(r,a){return t.resolveAssetReference(gr(a),r)}}}function gr(e){return{assets:e.getAssets()}}const zo="/__fps_runtime/debug-authoring";function Es(e={}){const t=e.endpoint?.trim()||zo,r=e.fetch??globalThis.fetch,a=Math.max(1,e.operationTimeoutMs??3e4);if(typeof r!="function")throw new Error("runtime_debug_authoring_fetch_unavailable");const n=async l=>{const d=await r(t,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(l)}),h=await d.json().catch(()=>null);if(!h)throw new Error(Pt(h,`runtime_debug_authoring_http_${d.status}`));if(!h.ok)throw new Error(Pt(h,`runtime_debug_authoring_http_${d.status}`));if(!d.ok)throw new Error(`runtime_debug_authoring_http_${d.status}`);return h},o=async l=>{const d=await n({kind:"command.invoke",invocation:l,timeoutMs:Math.min(a,1e4)});if(d.kind!=="operation"||!d.operation)throw new Error("runtime_debug_authoring_operation_missing");let h=d.operation;const c=Date.now()+a;for(;h.status==="accepted"||h.status==="running";){if(Date.now()>=c)throw new Error("runtime_debug_authoring_operation_timeout");await Uo(25);const u=await n({kind:"operation.get",operationId:h.operationId});if(u.kind!=="operation"||!u.operation)throw new Error("runtime_debug_authoring_operation_missing");h=u.operation}if(h.status!=="completed")throw new Error(Pt({ok:!1,diagnostics:h.diagnostics??[]},`runtime_debug_authoring_operation_${h.status}`));return h};return Object.freeze({load:async()=>{const l=await n({kind:"authoring.snapshot"});if(l.kind!=="authoring.snapshot"||l.result.kind!=="snapshot-required")throw new Error("runtime_debug_authoring_snapshot_missing");const d=l.result.snapshot,h=hr("companion"),c=await o({commandId:"document.companionState.get",input:{},requestId:h,idempotencyKey:h,expectedRevision:{serviceInstanceId:d.serviceInstanceId,document:d.documentRevision},principal:{type:"human"},source:"runtime-debug-panel",surface:"runtime-debug-panel"});return{snapshot:d,companionState:pr(c)}},async commitAndSave(l){const d=hr("commit"),h=await o({commandId:"runtimeDebug.commitAndSave",intentCommandId:l.commandId,input:{commandId:l.commandId,inputFingerprint:l.inputFingerprint,document:l.document,...l.companionConfigs?{companionConfigs:l.companionConfigs}:{},...l.shadowMapExperimentConfig?{shadowMapExperimentConfig:l.shadowMapExperimentConfig}:{}},requestId:d,idempotencyKey:d,expectedRevision:{serviceInstanceId:l.serviceInstanceId,document:l.expectedDocumentRevision},principal:{type:"human"},source:"runtime-debug-panel",surface:"runtime-debug-panel"});return pr(h)}})}function pr(e){const t=e.output;if(!t||typeof t!="object"||Array.isArray(t))throw new Error("runtime_debug_authoring_output_invalid");return t}function Pt(e,t){return e&&!e.ok&&e.diagnostics.length>0?e.diagnostics.map(r=>`${r.code}: ${r.message}`).join("; "):t}function hr(e){const t=globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`;return`runtime-debug-${e}-${t}`}function Uo(e){return new Promise(t=>setTimeout(t,e))}const $o=["/__fps_editor_authoring"],Ho=[["manifest","/manifest"],["commit","/commit"],["editor-scene","/editor-scene"],["editor-asset-library","/editor-asset-library"],["project-files","/project-files"],["project-media","/project-media"],["project-file","/project-file"],["save-editor-scene","/save-editor-scene"],["file","/file"],["exec","/exec"]];function Vo(e,t={}){const r=new URL(e??"","http://localhost").pathname,a=t.prefixes??$o,n=qo(r,a);if(!n)return null;const o=r.slice(n.length)||"/",i=Yo(o);return i?{route:o,routeName:i,prefix:n}:null}function qo(e,t){return t.find(r=>e.startsWith(r))??null}function Yo(e){return Ho.find(([,t])=>e.startsWith(t))?.[0]??null}function V(e,t){return{statusCode:e,body:t}}function $r(e){return{statusCode:e,body:null}}function Wo(e){return typeof e=="string"?e:`${JSON.stringify(e??{},null,2)}
|
|
5
|
+
`}function Ko(e){const r=e.match(/(?:^|\s)--payload(?:=|\s+)("[^"]+"|'[^']+'|\S+)/)?.[1]??"";return r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r}async function bs(e,t){const r=Vo(e.url);if(!r)return null;const a=(e.method??"GET").toUpperCase();if(a==="OPTIONS")return $r(204);try{if(Jo(r.routeName)){if(a!=="GET")return V(405,{ok:!1,error:"method_not_allowed"});if(r.routeName==="project-file"){const o=new URL(e.url??"","http://localhost").searchParams.get("path")?.trim()??"";if(!o)return V(400,{ok:!1,error:"missing_file_path"});const i=await t.loadProjectFile?.({path:o,route:r});return V(200,i??{ok:!1,error:"not_found"})}return V(200,await Xo(r,t))}if(a!=="POST")return V(405,{ok:!1,error:"method_not_allowed"});const n=e.body??await t.readBody?.(e,r)??{};return await Zo(r,n,t)}catch(n){return V(500,{ok:!1,error:n instanceof Error?n.message:String(n),code:typeof n?.code=="string"?n.code:"authoring_request_failed",details:ut(n?.details)})}}function Jo(e){return e==="manifest"||e==="editor-scene"||e==="editor-asset-library"||e==="project-files"||e==="project-file"||e==="project-media"}async function Xo(e,t){return e.routeName==="manifest"&&t.loadManifest?t.loadManifest(e):e.routeName==="editor-scene"&&t.loadEditorScene?t.loadEditorScene(e):e.routeName==="editor-asset-library"&&t.loadEditorAssetLibrary?t.loadEditorAssetLibrary(e):e.routeName==="project-files"&&t.loadProjectFiles?t.loadProjectFiles(e):{ok:!1,error:"not_found"}}async function Zo(e,t,r){return e.routeName==="file"?Qo(e,t,r):e.routeName==="exec"?ei(e,t,r):e.routeName==="save-editor-scene"?ti(e,t,r):e.routeName==="commit"?V(410,await ri(e,t,r)):V(404,{ok:!1,error:"not_found"})}async function Qo(e,t,r){const a=String(t.path??""),n=r.normalizeTransportPath?.(a)??a;if(!n)return V(400,{ok:!1,error:"missing_file_path"});const o=t.content,i=Wo(o),s=await r.writeFile?.({body:t,path:n,rawPath:a,content:o,text:i,route:e});return V(200,s??{ok:!0,path:n})}async function ei(e,t,r){const a=String(t.cmd??""),n=Ko(a);if(!n)return V(400,{ok:!1,error:"missing_payload_arg",cmd:a});const o=r.normalizeTransportPath?.(n)??n,i=await r.runCommand?.({body:t,cmd:a,payloadPath:o,rawPayloadPath:n,route:e});return V(200,i??{ok:!0,cmd:a})}async function ti(e,t,r){const a=t.mode==="prepare-platform-save"?"prepare-platform-save":"local-commit-save",n=await r.saveEditorScene?.({body:t,mode:a,rawEditorScene:t.editorScene,route:e});return V(200,n??{ok:!1,error:"not_found"})}async function ri(e,t,r){return r.commit?.({body:t,route:e})??{ok:!1,error:"platform_commit_route_disabled",message:"Save through /__fps_editor_authoring/save-editor-scene so scene.main remains the authoring source of truth."}}const Ie=Kn,oe=Jn,Ss=Xn;function qe(e){return F(e.requestId)}function Hr(e){return{requestId:qe(e),assetName:F(e.assetName),assetPath:F(e.assetPath),assetUrl:F(e.assetUrl),guid:F(e.guid),assetId:F(e.projectAssetId),kind:F(e.assetType)??F(e.kind),platformAssetId:F(e.platformAssetId)??F(e.assetId),displayName:F(e.displayName),category:F(e.category),materialMode:e.materialMode,scale:e.scale,defaultScale:e.defaultScale,metadata:ut(e.metadata),payloadPath:F(e.payloadPath)}}function ni(e){return{requestId:qe(e),guid:F(e.guid),assetId:F(e.projectAssetId)??F(e.assetId),payloadPath:F(e.payloadPath),deleteFile:typeof e.deleteFile=="boolean"?e.deleteFile:void 0}}function ai(e){const t=F(e.assetName)??"",r=F(e.assetPath);return{...Hr(e),kind:F(e.assetType)??F(e.kind)??"model",rawAssetName:t,inferredAssetPath:r,inferredAssetUrl:F(e.assetUrl)??(r?`/@fs${r}`:""),instanceScale:e.instanceScale,dropSurfaceName:F(e.dropSurfaceName),clientX:typeof e.clientX=="number"&&Number.isFinite(e.clientX)?e.clientX:void 0,clientY:typeof e.clientY=="number"&&Number.isFinite(e.clientY)?e.clientY:void 0,position:e.position}}function oi(e){const t=si(e);return{requestId:qe(e),id:F(e.id),name:F(e.name),kind:e.kind,parentId:F(e.parentId),enabled:typeof e.enabled=="boolean"?e.enabled:void 0,transform:e.transform,instance:e.instance,primitive:e.primitive,transformType:e.transformType,...t?{customTransformData:t}:{},camera:e.camera,light:e.light}}function ii(e){return{requestId:qe(e),nodeId:F(e.nodeId)??"",patches:Array.isArray(e.patches)?e.patches:F(e.path)?[{path:e.path,value:e.value}]:[]}}function Er(e){return{requestId:qe(e),nodeId:F(e.nodeId)}}function F(e){if(typeof e!="string")return;const t=e.trim();return t||void 0}function si(e){const t=new Set(["requestId","id","name","kind","parentId","enabled","transform","instance","primitive","transformType","customTransformData","camera","light"]),r=ut(e.customTransformData),a=r?{...r}:{};for(const[n,o]of Object.entries(e))t.has(n)||(a[n]=o);return Object.keys(a).length>0?a:void 0}function ci(e,t,r={}){const a=r.readProjectError?.(e);if(a)return a;const n=e,o=Kt(n?.code)??t,i=e instanceof Error?e.message:Kt(n?.message)??String(e),s=ut(n?.details);return{code:o,error:i,...s?{details:s}:{}}}function di(e,t={}){const r=new Set(t.omitKeys??["rootNode"]),a={...e};for(const n of r)delete a[n];return a}function li(e){return{async handleCommand(t,r,a){const n=a;if(t===Ie.ASSET_REGISTRATION_PLAN){const o=Hr(r);return await Qe({eventName:oe.ASSET_REGISTRATION_PLANNED,failedEventName:oe.ASSET_REGISTRATION_FAILED,requestId:o.requestId,fallbackCode:e.errorCodes.assetRegistrationPlanFailed,emitEvent:e.emitEvent,createCommandError:e.handlers.createCommandError,run:()=>e.handlers.assetRegistrationPlan(o,n)}),!0}if(t===Ie.ASSET_UNREGISTRATION_PLAN){const o=ni(r);return await Qe({eventName:oe.ASSET_UNREGISTRATION_PLANNED,failedEventName:oe.ASSET_UNREGISTRATION_FAILED,requestId:o.requestId,fallbackCode:e.errorCodes.assetUnregistrationPlanFailed,emitEvent:e.emitEvent,createCommandError:e.handlers.createCommandError,run:()=>e.handlers.assetUnregistrationPlan(o,n)}),!0}if(t===Ie.ASSET_IMPORT){const o=ai(r),i=await e.handlers.assetImport(o,n);return i&&e.emitEvent(oe.ASSET_IMPORT_RESULT,i),!0}if(t===Ie.ASSET_REMOVE){const o=Er(r),i=await e.handlers.assetRemove(o,n);return i&&e.emitEvent(oe.ASSET_REMOVE_RESULT,i),!0}if(t===Ie.SCENE_NODE_CREATE){const o=oi(r);return await Qe({eventName:oe.SCENE_NODE_CREATE_RESULT,failedEventName:oe.SCENE_NODE_CREATE_RESULT,requestId:o.requestId,fallbackCode:e.errorCodes.sceneNodeCreateFailed,emitEvent:e.emitEvent,createCommandError:e.handlers.createCommandError,run:()=>e.handlers.sceneNodeCreate(o,n)}),!0}if(t===Ie.SCENE_NODE_PATCH){const o=ii(r);return await Qe({eventName:oe.SCENE_NODE_PATCH_RESULT,failedEventName:oe.SCENE_NODE_PATCH_RESULT,requestId:o.requestId,fallbackCode:e.errorCodes.sceneNodePatchFailed,failureExtra:{nodeId:o.nodeId},emitEvent:e.emitEvent,createCommandError:e.handlers.createCommandError,run:()=>e.handlers.sceneNodePatch(o,n)}),!0}if(t===Ie.SCENE_NODE_REMOVE){const o=Er(r),i=await e.handlers.sceneNodeRemove(o,n);return i&&e.emitEvent(oe.SCENE_NODE_REMOVE_RESULT,i),!0}return!1}}}async function Qe(e){try{const t=await e.run();t&&e.emitEvent(e.eventName,t)}catch(t){e.emitEvent(e.failedEventName,{requestId:e.requestId,ok:!1,...e.failureExtra,...e.createCommandError(t,e.fallbackCode)})}}function ys(e){const t=e.notifyDocumentStatus??(()=>{}),r=e.createCommandError??((a,n)=>ci(a,n));return li({emitEvent:e.emitEvent,errorCodes:e.errorCodes,handlers:{createCommandError:r,assetRegistrationPlan:(a,n)=>e.planAssetRegistration(a,n),assetUnregistrationPlan:(a,n)=>e.planAssetUnregistration(a,n),assetImport:(a,n)=>ui(a,n,e,t),assetRemove:(a,n)=>mi(a,n,e,t),sceneNodeCreate:async(a,n)=>{e.ensureDocumentLoaded();const o=await e.sceneNodeCreate(a,n);return o.rootNode&&e.selectRuntimeNode?.(o.rootNode),t(),{requestId:a.requestId,ok:!0,nodeId:o.node.id,node:o.node}},sceneNodePatch:async(a,n)=>{e.ensureDocumentLoaded();const o=await e.sceneNodePatch(a,n);return o.rootNode&&e.selectRuntimeNode?.(o.rootNode),t(),{requestId:a.requestId,ok:!0,nodeId:o.node.id,node:o.node}},sceneNodeRemove:async(a,n)=>{e.ensureDocumentLoaded();const o=await e.sceneNodeRemove(a,n);return o&&(e.selectRuntimeNode?.(null),t()),{requestId:a.requestId,ok:!!o,nodeId:a.nodeId,...o?{removedNodeId:o.node.id}:{code:e.errorCodes.nodeNotFound,error:e.errorCodes.nodeNotFound}}}}})}async function ui(e,t,r,a){if(r.isBridgeActive?.())return null;r.ensureDocumentLoaded();const n=r.executeTransportPlan??(c=>Zn(c)),o=fi(e.inferredAssetUrl)||(e.inferredAssetPath?`/@fs${e.inferredAssetPath}`:""),i=await r.planAssetRegistration({...e,assetName:e.rawAssetName||void 0,assetPath:e.inferredAssetPath,assetUrl:o},t),s=i.transportPlan;if(e.inferredAssetPath&&!s)throw new Error("Asset registration transportPlan is required before placing an inferred project asset.");let l=null;e.inferredAssetPath&&(l=await n(s,t));const d=Qn({result:l,fallback:{guid:i.guid,assetId:i.assetId,assetUrl:o,external:i.external}}),h=await r.createAssetInstance({requestId:e.requestId,guid:d.guid,assetId:d.assetId,external:d.external,assetUrl:d.assetUrl,assetName:e.rawAssetName||void 0,displayName:e.displayName,category:e.category,materialMode:e.materialMode,scale:e.scale,defaultScale:e.defaultScale,instanceScale:e.instanceScale,metadata:e.metadata,dropSurfaceName:e.dropSurfaceName,clientX:e.clientX,clientY:e.clientY,position:e.position},t);return h.ok&&(h.rootNode&&r.selectRuntimeNode?.(h.rootNode),a()),di(h)}async function mi(e,t,r,a){r.ensureDocumentLoaded();const n=e.nodeId?await r.removeAssetInstance(e,t):{ok:!1,assetId:"",code:r.errorCodes.missingNodeId,error:r.errorCodes.missingNodeId};return n.ok&&(r.selectRuntimeNode?.(null),a()),{requestId:e.requestId,...n}}function fi(e){return typeof e=="string"&&e.trim()?e.trim():void 0}const Fe="public-export",x="bundled-alias",Pe="external-peer",ie="default",z="exclude",_e="prebundle",gi=[["@fps-games/editor","packages/editor/src/index.ts",null,Fe,ie],["@fps-games/editor/vite","packages/editor/src/vite.ts",null,Fe,ie],["@fps-games/engine",null,null,Pe,ie],["@fps-games/engine/config",null,null,Pe,ie],["@fps-games/engine/rendering",null,null,Pe,ie],["@fps-games/engine/babylon",null,null,Pe,_e],["@fps-games/editor-tooling","packages/editor-tooling/src/index.ts","@fps-games/editor-tooling/dist/index.js",x,z],["@fps-games/editor-tooling/node","packages/editor-tooling/src/package-metadata-node.ts","@fps-games/editor-tooling/dist/package-metadata-node.js",x,z],["@fps-games/editor-tooling/vite","packages/editor-tooling/src/vite.ts","@fps-games/editor-tooling/dist/vite.js",x,z],["@fps-games/plugin-sdk",null,null,Pe,ie],["@fps-games/plugin-sdk/host",null,null,Pe,ie],["@fps-games/plugin-sdk/runtime",null,null,Pe,ie],["@fps-games/plugin-hierarchy","packages/plugin-hierarchy/src/reference.ts","@fps-games/plugin-hierarchy/dist/reference.js",x,_e],["@fps-games/plugin-hierarchy/kernel","packages/plugin-hierarchy/src/kernel.ts","@fps-games/plugin-hierarchy/dist/kernel.js",x,z],["@fps-games/plugin-hierarchy/integration","packages/plugin-hierarchy/src/integration.ts","@fps-games/plugin-hierarchy/dist/integration.js",x,z],["@fps-games/plugin-hierarchy/editor","packages/plugin-hierarchy/src/editor.ts","@fps-games/plugin-hierarchy/dist/editor.js",x,_e],["@fps-games/editor/playable-sdk","packages/editor/src/playable-sdk.ts",null,Fe,ie],["@fps-games/editor/playable-sdk/upgrade-doctor","packages/editor/src/playable-sdk-upgrade-doctor.ts",null,Fe,ie],["@fps-games/editor/playable-sdk/vite","packages/editor/src/playable-sdk-vite.ts",null,Fe,ie],["@fps-games/editor-playable-sdk","packages/editor-playable-sdk/src/index.ts","@fps-games/editor-playable-sdk/dist/index.js",x,z],["@fps-games/editor-playable-sdk/internal/authoring-queries","packages/editor-playable-sdk/src/internal/authoring-queries.ts","@fps-games/editor-playable-sdk/dist/internal/authoring-queries.js",x,z],["@fps-games/editor-playable-sdk/internal/local-harness","packages/editor-playable-sdk/src/internal/local-harness.ts","@fps-games/editor-playable-sdk/dist/internal/local-harness.js",x,z],["@fps-games/editor-playable-sdk/upgrade-doctor","packages/editor-playable-sdk/src/upgrade-doctor/index.ts","@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.js",x,z],["@fps-games/editor-playable-sdk/vite","packages/editor-playable-sdk/src/vite/index.ts","@fps-games/editor-playable-sdk/dist/vite/index.js",x,z],["@fps-games/editor-babylon","packages/editor-babylon/src/index.ts","@fps-games/editor-babylon/dist/index.js",x,z],["@fps-games/editor-browser","packages/editor-browser/src/index.ts","@fps-games/editor-browser/dist/index.js",x,z],["@fps-games/editor-browser/plugin-contributions","packages/editor-browser/src/plugin-contributions.ts","@fps-games/editor-browser/dist/plugin-contributions.js",x,z],["@fps-games/editor-browser/runtime-debug","packages/editor-browser/src/runtime-debug.ts","@fps-games/editor-browser/dist/runtime-debug.js",x,z],["@fps-games/editor-core","packages/editor-core/src/index.ts","@fps-games/editor-core/dist/index.js",x,z],["@fps-games/editor-core/plugin-host","packages/editor-core/src/editor-plugin-host.ts","@fps-games/editor-core/dist/editor-plugin-host.js",x,z],["@fps-games/editor-core/lifecycle","packages/editor-core/src/lifecycle.ts","@fps-games/editor-core/dist/lifecycle.js",x,z],["@fps-games/editor-core/events","packages/editor-core/src/events.ts","@fps-games/editor-core/dist/events.js",x,z],["@fps-games/editor-core/document-adapter","packages/editor-core/src/document-adapter.ts","@fps-games/editor-core/dist/document-adapter.js",x,z],["@fps-games/editor-core/diagnostics","packages/editor-core/src/editor-diagnostic-store.ts","@fps-games/editor-core/dist/editor-diagnostic-store.js",x,z],["@fps-games/editor-core/tools","packages/editor-core/src/editor-tools.ts","@fps-games/editor-core/dist/editor-tools.js",x,z],["@fps-games/editor-forge-play","packages/editor-forge-play/src/index.ts","@fps-games/editor-forge-play/dist/index.js",x,z],["@fps-games/editor-protocol","packages/editor-protocol/src/index.ts","@fps-games/editor-protocol/dist/index.js",x,z],["@fps-games/editor-ui","packages/editor-ui/src/index.ts","@fps-games/editor-ui/dist/index.js",x,z],["@babel/parser",null,"@babel/parser/lib/index.js",x,_e],["@playcanvas/observer",null,"@playcanvas/observer/dist/index.mjs",x,z],["@playcanvas/pcui",null,"@playcanvas/pcui/dist/module/src/index.mjs",x,z],["@playcanvas/pcui/styles",null,"@playcanvas/pcui/styles/dist/index.mjs",x,z],["semver",null,"semver/index.js",x,_e]],Ye=Object.freeze(gi.map(([e,t,r,a,n])=>Object.freeze({packageId:e,...t?{sourceFile:t}:{},...r?{bundledFile:r,bundledRoot:"editor-node-modules"}:{},resolution:a,optimizer:n,projectAllowlist:!0}))),Is=Object.freeze(Ye.filter(e=>e.projectAllowlist).map(e=>e.packageId)),Ps=Object.freeze(Ye.filter(e=>e.resolution===x).map(e=>e.packageId)),As=Object.freeze(Ye.filter(e=>e.optimizer===_e).map(e=>e.packageId));function pi(e,t={}){const r=t.resolvePath??Bt;return{entries:Ye.filter(a=>typeof a.sourceFile=="string").map(a=>({packageId:a.packageId,file:r(e,...a.sourceFile.split("/"))}))}}function Ts(e,t={}){const r=pi(e,{resolvePath:t.resolvePath}),a=t.relativePath??Ei,n={};for(const o of r.entries){if(o.packageId==="semver")continue;const i=t.pathOverrides?.[o.packageId];n[o.packageId]=i?hi(i):[t.projectRoot?je(a(t.projectRoot,o.file)):je(o.file)]}return{paths:n}}function Rs(e,t={}){const r=t.resolvePath??Bt,a=r(e,"node_modules","@fps-games","editor");return{editorPackageRoot:a,bundledEditorPackagesRoot:r(a,"node_modules","@fps-games"),bundledEditorNodeModulesRoot:r(a,"node_modules"),editorPackageJsonPath:r(a,"package.json")}}function vs(e){const t=e.resolvePath??Bt,r=e.bundledEditorNodeModulesRoot??br(e.bundledEditorPackagesRoot),a=e.editorPackageRoot??br(r);return{entries:Ye.filter(o=>o.resolution===x&&typeof o.bundledFile=="string").map(o=>({packageId:o.packageId,file:t(o.bundledRoot==="editor-package"?a:r,...o.bundledFile.split("/"))}))}}function ws(e,t){return e.entries.filter(r=>!t(r.file)).map(r=>({packageId:r.packageId,file:r.file}))}function Cs(e,t="The @fps-games editor package aliases point to missing files."){return[t,...e.map(r=>`- ${r.packageId}: ${r.file}`)].join(`
|
|
6
|
+
`)}function Bt(...e){return e.filter(t=>t.length>0).join("/").replace(/\/+/g,"/")}function je(e){return e.replace(/\\/g,"/").replace(/\/+/g,"/")}function br(e){const t=je(e).replace(/\/$/,""),r=t.lastIndexOf("/");return r>0?t.slice(0,r):"."}function hi(e){return(Array.isArray(e)?e:[e]).map(je)}function Ei(e,t){const r=je(e).replace(/\/$/,""),a=je(t).replace(/\/$/,""),n=r.split("/").filter(Boolean),o=a.split("/").filter(Boolean);let i=0;for(;i<n.length&&i<o.length&&n[i]===o[i];)i+=1;const s=n.slice(i).map(()=>".."),l=o.slice(i);return[...s,...l].join("/")||"."}const bi=new Set(["leftToRight","rightToLeft","bottomToTop","topToBottom"]);function Ms(e){const t=ea(e),r={uiKind:e.uiKind,size:{width:e.size.width,depth:e.size.depth},layers:e.layers.map((a,n)=>Si(a,n)),rendering:{textureWidth:t.width,textureHeight:t.height}};return e.aspectSourceLayerId&&(r.aspectSourceLayerId=e.aspectSourceLayerId),typeof e.lockAspectToBorder=="boolean"&&(r.lockAspectToBorder=e.lockAspectToBorder),e.mask&&(r.mask={...typeof e.mask.enabled=="boolean"?{enabled:e.mask.enabled}:{},...e.mask.source==="roundedRect"||e.mask.source==="borderAlpha"||e.mask.source==="texture"?{source:e.mask.source}:{},...e.mask.textureId?{textureId:e.mask.textureId}:{},...typeof e.mask.cornerRadius=="number"&&Number.isFinite(e.mask.cornerRadius)?{cornerRadius:e.mask.cornerRadius}:{},...typeof e.mask.padding=="number"&&Number.isFinite(e.mask.padding)?{padding:e.mask.padding}:{}}),e.rendering&&(r.rendering={...r.rendering,...typeof e.rendering.alphaIndex=="number"&&Number.isFinite(e.rendering.alphaIndex)?{alphaIndex:e.rendering.alphaIndex}:{},...typeof e.rendering.diffuseTextureLevel=="number"&&Number.isFinite(e.rendering.diffuseTextureLevel)?{diffuseTextureLevel:e.rendering.diffuseTextureLevel}:{},...typeof e.rendering.emissiveTextureLevel=="number"&&Number.isFinite(e.rendering.emissiveTextureLevel)?{emissiveTextureLevel:e.rendering.emissiveTextureLevel}:{}}),r}function Si(e,t){const r=ta(e.rotationDeg??0)??0,a={id:e.id,role:e.role,zOrder:typeof e.zOrder=="number"&&Number.isFinite(e.zOrder)?e.zOrder:t,rect:yi(e.rect),...r!==0?{rotationDeg:r}:{},...typeof e.enabled=="boolean"?{enabled:e.enabled}:{},...typeof e.opacity=="number"&&Number.isFinite(e.opacity)?{opacity:e.opacity}:{}};return e.kind==="texture"?{...a,kind:"texture",...e.textureId?{textureId:e.textureId}:{},...e.tint?{tint:Ce(e.tint)}:{},...e.imageFit?{imageFit:e.imageFit}:{}}:e.kind==="textureProgress"?{...a,kind:"textureProgress",...e.textureId?{textureId:e.textureId}:{},value:yr(e.value),...e.tint?{tint:Ce(e.tint)}:{},...e.imageFit?{imageFit:e.imageFit}:{},...Sr(e.direction)?{direction:e.direction}:{}}:e.kind==="color"?{...a,kind:"color",color:Ce(e.color)}:e.kind==="progress"?{...a,kind:"progress",value:yr(e.value??0),color:Ce(e.color),...Sr(e.direction)?{direction:e.direction}:{}}:{...a,kind:"text",text:{value:e.text.value,color:Ce(e.text.color),...e.text.fontFamily?{fontFamily:e.text.fontFamily}:{},...typeof e.text.fontSize=="number"&&Number.isFinite(e.text.fontSize)?{fontSize:e.text.fontSize}:{},...e.text.fontWeight!=null?{fontWeight:String(e.text.fontWeight)}:{},...e.text.strokeColor?{strokeColor:Ce(e.text.strokeColor)}:{},...typeof e.text.strokeWidth=="number"&&Number.isFinite(e.text.strokeWidth)?{strokeWidth:e.text.strokeWidth}:{},...e.text.align==="left"||e.text.align==="center"||e.text.align==="right"?{align:e.text.align}:{},...e.text.baseline==="top"||e.text.baseline==="middle"||e.text.baseline==="bottom"?{baseline:e.text.baseline}:{}}}}function yi(e){return{x:e.x,z:e.z,width:e.width,depth:e.depth}}function Ce(e){return{r:e.r,g:e.g,b:e.b,...typeof e.a=="number"?{a:e.a}:{}}}function Sr(e){return typeof e=="string"&&bi.has(e)}function yr(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}const Vr=1,Ii="/__fps_editor/entry-manifest.json",Pi="no-cache",Ai="public, max-age=31536000, immutable";function Ti(e){return wi({schemaVersion:Vr,build:{packageName:le(e.packageName,"packageName"),version:le(e.version,"version"),buildId:le(e.buildId,"buildId"),distHash:le(e.distHash,"distHash")},entry:{kind:"module",url:qr(e.entryUrl),cache:e.entryCache??"revalidate"},cacheControl:{manifest:Pi,immutableResource:Ai}})}function Ri(e){if(!At(e))throw new Error("Editor entry manifest must be an object.");if(e.schemaVersion!==Vr)throw new Error(`Unsupported Editor entry manifest schemaVersion: ${String(e.schemaVersion)}.`);if(!At(e.build))throw new Error("Editor entry manifest build must be an object.");if(!At(e.entry))throw new Error("Editor entry manifest entry must be an object.");if(e.entry.kind!=="module")throw new Error("Editor entry manifest entry.kind must be module.");if(e.entry.cache!=="revalidate"&&e.entry.cache!=="immutable")throw new Error("Editor entry manifest entry.cache must be revalidate or immutable.");return Ti({packageName:le(e.build.packageName,"build.packageName"),version:le(e.build.version,"build.version"),buildId:le(e.build.buildId,"build.buildId"),distHash:le(e.build.distHash,"build.distHash"),entryUrl:qr(e.entry.url),entryCache:e.entry.cache})}function vi(e,t){const r=new URL(e.entry.url,le(t.baseUrl,"baseUrl"));r.searchParams.set("fps-editor-build",e.build.buildId);const a=t.retryAttempt??1;if(!Number.isInteger(a)||a<1)throw new Error("Editor entry retryAttempt must be a positive integer.");return a>1?r.searchParams.set("fps-editor-entry-retry",String(a)):r.searchParams.delete("fps-editor-entry-retry"),r.href}function wi(e){return Object.freeze({...e,build:Object.freeze({...e.build}),entry:Object.freeze({...e.entry}),cacheControl:Object.freeze({...e.cacheControl})})}function qr(e){const t=le(e,"entry.url");let r;try{r=new URL(t,"https://fps-editor.invalid/")}catch{throw new Error(`Editor entry manifest entry.url is invalid: ${t}.`)}if(r.protocol!=="http:"&&r.protocol!=="https:")throw new Error(`Editor entry manifest entry.url must use HTTP(S): ${t}.`);return t}function le(e,t){if(typeof e!="string"||!e.trim())throw new Error(`Editor entry manifest ${t} must be a non-empty string.`);return e.trim()}function At(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}function Ci(e){const t=new URL(e.manifestUrl??Ii,e.baseUrl).href,r=e.fetchManifest??_i();let a=null,n,o=!1,i=0,s=null;return Object.freeze({load:d=>{if(o)return Promise.resolve(n);if(s)return s;const h=(async()=>{Tt(d);const c=a??await Mi({fetchManifest:r,manifestUrl:t,signal:d});Tt(d),a=c;const u=i+1,g=vi(c,{baseUrl:e.baseUrl,retryAttempt:u});i=u;const b=await e.importModule(g);return Tt(d),n=b,o=!0,b})();return s=h,h.finally(()=>{s===h&&(s=null)}).catch(()=>{}),h},getManifest:()=>a,getImportAttempt:()=>i})}async function Mi(e){const t=await e.fetchManifest(e.manifestUrl,{cache:"no-cache",headers:Object.freeze({accept:"application/json"}),...e.signal?{signal:e.signal}:{}});if(!t.ok)throw new Error(`Editor entry manifest request failed with HTTP ${t.status}.`);return Ri(await t.json())}function _i(){const e=globalThis.fetch;if(typeof e!="function")throw new Error("Editor entry module loader requires fetchManifest outside a browser.");return e.bind(globalThis)}function Tt(e){if(!e?.aborted)return;const t=new Error("Editor entry module load was aborted.");throw t.name="AbortError",t}function Di(e={}){const t=e.performance??Ni(),r=e.maxResourceDetails??100,a=e.resourceTimingBufferSize??2e3;if(!Number.isInteger(r)||r<0)throw new Error("Editor entry maxResourceDetails must be a non-negative integer.");if(!Number.isInteger(a)||a<1)throw new Error("Editor entry resourceTimingBufferSize must be a positive integer.");return t.setResourceTimingBufferSize?.(a),Object.freeze({mark(){return Object.freeze({startedAtMs:t.now(),resourceIndex:t.getEntriesByType("resource").length})},measure(n){const o=t.getEntriesByType("resource").slice(n.resourceIndex).flatMap(ki).filter(l=>e.includeResource?.(l)??!0).map(Oi),i={network:0,revalidated:0,cache:0,unknown:0};for(const l of o)i[l.cacheStatus]+=1;const s=o.slice(0,r);return Object.freeze({durationMs:Math.max(0,t.now()-n.startedAtMs),resourceCount:o.length,transferSize:Rt(o,l=>l.transferSize),encodedBodySize:Rt(o,l=>l.encodedBodySize),decodedBodySize:Rt(o,l=>l.decodedBodySize),cacheCounts:Object.freeze(i),resources:Object.freeze(s),truncatedResourceCount:o.length-s.length})}})}function Oi(e){const t=Oe(e.transferSize),r=Oe(e.encodedBodySize),a=Oe(e.decodedBodySize);return Object.freeze({name:e.name,initiatorType:e.initiatorType??"",startTimeMs:e.startTime,durationMs:e.duration,transferSize:t,encodedBodySize:r,decodedBodySize:a,cacheStatus:ji({transferSize:t,encodedBodySize:r,decodedBodySize:a})})}function ji(e){return e.transferSize===0?e.encodedBodySize>0||e.decodedBodySize>0?"cache":"unknown":e.encodedBodySize>0&&e.transferSize<e.encodedBodySize?"revalidated":"network"}function ki(e){if(!e||typeof e!="object"||Array.isArray(e))return[];const t=e;return typeof t.name!="string"||!t.name?[]:!Number.isFinite(t.startTime)||!Number.isFinite(t.duration)?[]:[{name:t.name,initiatorType:typeof t.initiatorType=="string"?t.initiatorType:"",startTime:t.startTime,duration:t.duration,transferSize:Oe(t.transferSize),encodedBodySize:Oe(t.encodedBodySize),decodedBodySize:Oe(t.decodedBodySize)}]}function Ni(){const e=globalThis.performance;if(!e||typeof e!="object")throw new Error("Editor entry performance tracker requires a performance adapter.");const t=e;if(typeof t.now!="function"||typeof t.getEntriesByType!="function")throw new Error("Editor entry performance tracker requires now() and getEntriesByType().");return t}function Oe(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:0}function Rt(e,t){return e.reduce((r,a)=>r+t(a),0)}async function _s(e,t){const r=String(e.method??"GET").toUpperCase();if(r==="OPTIONS")return $r(204);try{if(r==="GET"){const l=Fi(await t.loadConfig?.()),d=l.renderingConfig;Jt(d);const h=Xt(d);return V(200,{ok:!0,...l.response,renderingConfig:Gi(d),normalized:h,summary:Zt(h)})}if(r!=="POST")return V(405,{ok:!1,error:"method_not_allowed"});const a=e.body??await t.readBody?.(e)??{},n=He(a.renderingConfig);if(!n)return V(400,{ok:!1,error:"missing_rendering_config"});Jt(n);const o=Xt(n),i=Zt(o),s=await t.saveConfig?.({body:a,renderingConfig:n,normalized:o,summary:i});return V(200,{ok:!0,...s??{},renderingConfig:n,normalized:o,summary:i})}catch(a){const n=Li(a),o=xi(a);return V(n?.startsWith("schema.")?400:500,{ok:!1,error:n??(a instanceof Error?a.message:String(a)),...o?{path:o}:{},details:He(a?.details)})}}function Li(e){const t=e?.code;return typeof t=="string"&&t?t:null}function xi(e){const t=e?.path;return typeof t=="string"&&t?t:null}function He(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Gi(e){return He(e)??{}}function Fi(e){const t=He(e);return t&&Object.prototype.hasOwnProperty.call(t,"renderingConfig")?{renderingConfig:t.renderingConfig,response:He(t.response)??{}}:{renderingConfig:e??{},response:{}}}function Bi(e){const t=e.root??document.body,r=t.ownerDocument,a=e.tooltipDataAttribute??"editorRuntimeDebugTooltip",n=e.tooltipDelayMs??160;let o=e.initialOpen===!0,i=e.language,s=0,l=null,d=0;const h=e.panelMode==="managed",c=r.createElement("div");c.style.cssText=h?["position:relative","display:none","width:100%","max-width:100%","flex-direction:column","align-items:stretch",'font-family:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',"color:#edf2ff","pointer-events:none"].join(";"):["position:fixed",`right:${wt(e.placement?.right??16)}`,`bottom:${wt(e.placement?.bottom??16)}`,`z-index:${e.placement?.zIndex??2147482600}`,"display:none","flex-direction:column","align-items:flex-end",'font-family:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',"color:#edf2ff","pointer-events:none"].join(";");const u=r.createElement("button");u.type="button",u.textContent=e.toggleLabel,u.style.cssText=["pointer-events:auto",h?"align-self:flex-end":"","height:34px","padding:0 12px","border:1px solid rgba(148, 163, 184, 0.36)","border-radius:7px","background:rgba(15, 23, 42, 0.88)","color:#f8fafc",'font:600 12px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',"box-shadow:0 10px 26px rgba(0,0,0,0.28)","cursor:pointer"].join(";");const g=r.createElement("section");g.style.cssText=["pointer-events:auto",`width:${h?"100%":wt(e.placement?.width??320)}`,"max-height:min(70vh, 720px)","overflow:auto","box-sizing:border-box","margin-bottom:8px","padding:12px","border:1px solid rgba(148, 163, 184, 0.28)","border-radius:8px","background:rgba(13, 18, 28, 0.94)","box-shadow:0 18px 44px rgba(0,0,0,0.34)","backdrop-filter:blur(8px)","display:none"].join(";");const b=r.createElement("div");b.style.cssText="display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;";const p=r.createElement("div");p.style.cssText="font-size:13px;font-weight:700;line-height:1.2;";const m=r.createElement("div");m.style.cssText="display:flex;align-items:center;gap:8px;";const S=r.createElement("div");S.style.cssText="font-size:11px;color:#93c5fd;line-height:1.2;";const R=r.createElement("button");R.type="button",R.style.cssText=["height:24px","padding:0 8px","border:1px solid rgba(148, 163, 184, 0.3)","border-radius:6px","background:rgba(30, 41, 59, 0.8)","color:#dbeafe",'font:700 11px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',"cursor:pointer"].join(";"),m.append(S,R),b.append(p,m);const A=r.createElement("div"),j=r.createElement("div");j.style.cssText="display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;";const M=r.createElement("div");M.style.cssText="min-height:16px;margin-top:8px;font-size:11px;color:#94a3b8;",g.append(b,A,j,M),c.append(g,u),t.append(c);const T=r.createElement("div");T.style.cssText=["position:fixed","z-index:2147483601","display:none","max-width:min(280px, calc(100vw - 16px))","box-sizing:border-box","padding:5px 7px","border:1px solid rgba(148, 163, 184, 0.32)","border-radius:5px","background:rgba(15, 23, 42, 0.94)","box-shadow:0 10px 26px rgba(0, 0, 0, 0.3)","color:#dbeafe",'font:700 11px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',"line-height:1.35","white-space:normal","pointer-events:none"].join(";"),t.append(T);const U={root:t,ownerDocument:r,container:c,panel:g,title:p,modeLabel:S,languageButton:R,toggleButton:u,content:A,actions:j,status:M,get open(){return o},get language(){return i},setOpen(C){o=C,O(),e.onOpenChange?.(o)},setLanguageChrome(C){i=C.language,p.textContent=C.title,S.textContent=C.modeLabel,R.textContent=C.languageButtonLabel,U.setTooltip(R,C.languageTooltip??""),U.setTooltip(u,C.toggleTooltip??""),C.toggleTooltip&&u.setAttribute("aria-label",C.toggleTooltip)},setToggleActive(C){u.style.background=C?"rgba(29, 78, 216, 0.9)":"rgba(15, 23, 42, 0.88)"},setStatus(C,B={}){M.textContent=C,M.style.color=B.tone==="error"?"#fca5a5":"#94a3b8",s&&r.defaultView?.clearTimeout(s),s=0,!B.sticky&&(s=r.defaultView?.setTimeout(()=>{M.textContent===C&&(M.textContent=""),s=0},1800)??0)},setTooltip(C,B){const Y=B.trim();if(!Y){delete C.dataset[a],C.removeAttribute("title");return}C.dataset[a]=Y,C.removeAttribute("title")},hideTooltip:J,dispose(){s&&r.defaultView?.clearTimeout(s),pe(),c.removeEventListener("pointerover",w),c.removeEventListener("pointerout",_),c.removeEventListener("focusin",K),c.removeEventListener("focusout",J),c.removeEventListener("click",J),c.remove(),T.remove()}};return u.addEventListener("click",()=>U.setOpen(!o)),c.addEventListener("pointerover",w),c.addEventListener("pointerout",_),c.addEventListener("focusin",K),c.addEventListener("focusout",J),c.addEventListener("click",J),U.setLanguageChrome({title:e.title,modeLabel:e.modeLabel,languageButtonLabel:e.languageButtonLabel,toggleTooltip:e.toggleTooltip,languageTooltip:e.languageTooltip,language:i}),O(),U;function O(){c.style.display="flex",g.style.display=o?"block":"none",U.setToggleActive(o),o||J()}function w(C){const B=$(C.target);!B||B===l||ue(B)}function _(C){if(!l)return;const B=C.relatedTarget instanceof Node?C.relatedTarget:null;B&&l.contains(B)||J()}function K(C){const B=$(C.target);B&&ue(B)}function $(C){return C instanceof HTMLElement?C.closest(`[data-${Ui(a)}]`):null}function ue(C){const B=C.dataset[a]?.trim();if(!B){J();return}pe(),l=C,d=r.defaultView?.setTimeout(()=>{d=0,l===C&&ye(C,B)},n)??0}function ye(C,B){T.textContent=B,T.style.display="",T.style.left="0px",T.style.top="0px";const Y=C.getBoundingClientRect(),re=T.getBoundingClientRect(),Q=r.defaultView?.innerWidth??r.documentElement.clientWidth,ee=r.defaultView?.innerHeight??r.documentElement.clientHeight,Z=Math.max(8,Math.min(Y.left+(Y.width-re.width)/2,Q-re.width-8)),y=Y.bottom+7,I=Y.top-re.height-7,D=y+re.height<=ee-8?y:Math.max(8,I);T.style.left=`${Z}px`,T.style.top=`${D}px`}function J(){pe(),l=null,T.style.display="none",T.textContent=""}function pe(){d&&(r.defaultView?.clearTimeout(d),d=0)}}function Ir(e){const t=e.createElement("button");return t.type="button",t.style.cssText=["height:28px","border:1px solid rgba(148, 163, 184, 0.32)","border-radius:6px","background:rgba(30, 41, 59, 0.86)","color:#f8fafc",'font:600 11px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',"cursor:pointer"].join(";"),t}function X(e){const t=e.createElement("label");return t.style.cssText="font-size:11px;color:#cbd5e1;",t}function et(e){const t=e.createElement("div");return t.style.cssText="display:grid;grid-template-columns:1fr 108px;gap:7px 8px;align-items:center;",t}function tt(e){const t=e.createElement("div");return t.style.cssText="display:flex;flex-direction:column;gap:7px;",t}function rt(e){const t=e.createElement("div");return t.style.cssText="font-size:11px;font-weight:800;color:#e2e8f0;letter-spacing:0;text-transform:none;",t}function Me(e,t={}){const r=e.createElement("input");return r.type="number",t.step!=null&&(r.step=String(t.step)),t.min!=null&&(r.min=String(t.min)),t.max!=null&&(r.max=String(t.max)),r.inputMode="decimal",r.style.cssText=Yr(),r}function zi(e,t={}){const r=e.createElement("input");return r.type="range",t.step!=null&&(r.step=String(t.step)),t.min!=null&&(r.min=String(t.min)),t.max!=null&&(r.max=String(t.max)),r.style.cssText="width:100%;min-width:0;height:18px;margin:0;accent-color:#3b82f6;cursor:pointer;",r}function vt(e){const t=e.createElement("input");return t.type="color",t.style.cssText=[Yr(),"padding:2px 4px"].join(";"),t}function Pr(e){const t=e.createElement("input");return t.type="checkbox",t.style.cssText="justify-self:start;width:16px;height:16px;accent-color:#3b82f6;",t}function Ar(e){const t=e.createElement("div");return t.style.cssText=["min-height:26px","box-sizing:border-box","padding:5px 6px","border:1px solid rgba(148, 163, 184, 0.2)","border-radius:6px","background:rgba(15, 23, 42, 0.58)","color:#dbeafe","font:11px ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace","line-height:1.35","white-space:normal"].join(";"),t}function Yr(e="12px ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace"){return["width:108px","height:26px","min-width:0","box-sizing:border-box","border:1px solid rgba(148, 163, 184, 0.34)","border-radius:6px","background:rgba(15, 23, 42, 0.84)","color:#f8fafc","padding:0 6px",`font:${e}`].join(";")}function wt(e){return typeof e=="number"?`${e}px`:e}function Ui(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}function Tr(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement;)t=t.shadowRoot.activeElement;return t}function Ds(e){const t=e.root??document.body,r=t.ownerDocument;let a=ha(r.defaultView),n=!1,o=!1,i=0,s=null,l=null;const d=Bi({root:t,toggleLabel:"Light",title:ae().title,modeLabel:ae().runtime,languageButtonLabel:ae().languageButton,toggleTooltip:ht().toggleTitle,languageTooltip:ht().languageButton,tooltipDataAttribute:"lightingDebugTooltip",initialOpen:ga(r.defaultView),language:a,panelMode:e.panelMode,placement:{right:100,width:330,...e.placement},onOpenChange:f=>{pa(r.defaultView,f),f&&Ne(0)}}),h=tt(r),c=rt(r),u=et(r),g=Pr(r),b=Me(r,Ee("environmentIntensity")),p=vt(r),m=vt(r);u.append(X(r),g,X(r),b,X(r),p,X(r),m),h.append(c,u);const S=tt(r),R=rt(r),A=et(r),j=Me(r,Ee("iblIntensity")),M=Me(r,Ee("iblRotationY"));A.append(X(r),j,X(r),M),S.append(R,A);const T=tt(r),U=rt(r),O=et(r),w=Pr(r),_=Me(r,Ee("directionalIntensity")),K=Me(r,Ee("directionalHorizontalAngle")),$=Me(r,Ee("directionalElevationAngle")),ue=vt(r),ye=Ar(r),J=Ar(r);O.append(X(r),w,X(r),_,X(r),K,X(r),$,X(r),ue,X(r),ye,X(r),J),T.append(U,O);const pe=tt(r),C=rt(r),B=et(r),Y=f=>{const E=r.createElement("div");E.style.cssText="display:grid;grid-template-columns:minmax(54px,1fr) 36px;align-items:center;gap:6px;min-width:0;";const v=zi(r,Ee(f)),L=r.createElement("output");return L.style.cssText="font:11px ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;color:#dbeafe;text-align:right;font-variant-numeric:tabular-nums;",v.dataset.lightingDebugOutputId=f,L.dataset.lightingDebugOutput=f,v.addEventListener("input",()=>{L.value=he(Number(v.value))}),E.append(v,L),{input:v,wrapper:E}},re=Y("shadowStrength"),Q=Y("shadowSoftness");B.append(X(r),re.wrapper,X(r),Q.wrapper),pe.append(C,B),d.content.style.cssText="display:flex;flex-direction:column;gap:10px;",d.content.append(h,S,T,pe);const ee=Ir(r),Z=Ir(r);d.actions.append(ee,Z);const y=O.children,I={environmentEnabled:u.children[0],environmentIntensity:u.children[2],environmentDiffuseColor:u.children[4],environmentGroundColor:u.children[6],iblIntensity:A.children[0],iblRotationY:A.children[2],directionalEnabled:y[0],directionalIntensity:y[2],directionalHorizontalAngle:y[4],directionalElevationAngle:y[6],directionalDiffuseColor:y[8],rawDirection:y[10],shadowReadout:y[12],shadowStrength:B.children[0],shadowSoftness:B.children[2]},D=new Map([["environmentIntensity",b],["iblIntensity",j],["iblRotationY",M],["directionalIntensity",_],["directionalHorizontalAngle",K],["directionalElevationAngle",$],["shadowStrength",re.input],["shadowSoftness",Q.input]]),q=new Map([["environmentDiffuseColor",p],["environmentGroundColor",m],["directionalDiffuseColor",ue]]),te=[g,w];g.addEventListener("change",()=>{Re({kind:"enabled",target:"environment"})}),w.addEventListener("change",()=>{Re({kind:"enabled",target:"directional"})});for(const[f,E]of D)E.addEventListener("input",()=>{E.type==="number"&&bt(E.value)===null||Re({kind:"number",field:f})}),E.type==="number"&&(E.addEventListener("blur",()=>$t(f)),E.addEventListener("keydown",v=>{v.key==="Enter"?(v.preventDefault(),$t(f),E.blur()):v.key==="Escape"&&(v.preventDefault(),Ht(f),E.blur())}));for(const[f,E]of q)E.addEventListener("input",()=>Re({kind:"color",field:f}));return d.languageButton.addEventListener("click",()=>{a=a==="zh"?"en":"zh",Ea(r.defaultView,a),Vt()}),ee.addEventListener("click",()=>{!s||n||(zt(s),gt(s),d.setStatus(ae().resetStatus))}),Z.addEventListener("click",()=>{const f=l??e.readSnapshot();if(!f||n||!it(f)){d.setStatus(ae().missingBindingStatus,{tone:"error"});return}n=!0,se(f),d.setStatus(ae().savingStatus,{sticky:!0}),Promise.resolve(e.saveSnapshot(f)).then(()=>{d.setStatus(ae().savedStatus,{sticky:!0}),e.reloadAfterSave!==!1&&r.defaultView?.location.reload()}).catch(E=>{console.error("[EditorRuntimeLightingDebugPanel] Save lighting failed",E),n=!1,d.setStatus($i(E,ae().saveFailed),{sticky:!0,tone:"error"}),se(l)})}),Vt(),We(),{dispose(){o=!0,i&&r.defaultView?.clearTimeout(i),d.dispose()}};function We(){if(o)return;i=0;const f=e.readSnapshot();f?(s||(s=Se(f)),l=Se(f)):(s=null,l=null),se(f),Ne(d.open?250:1e3)}function Ne(f){o||(i&&r.defaultView?.clearTimeout(i),i=r.defaultView?.setTimeout(We,f)??0)}function se(f){if(d.container.style.display=f?"flex":"none",!f){d.hideTooltip();return}for(const v of[...D.values(),...q.values(),...te])v.disabled=n;const E=!!f.shadow.shadowMap?.appearance;S.style.display=f.environmentTexture?"flex":"none",pe.style.display=E?"flex":"none",re.input.disabled=n||!E,Q.input.disabled=n||!E,ee.disabled=!s||n,Z.disabled=n||!it(f),Z.style.opacity=Z.disabled?"0.68":"1",Z.style.cursor=Z.disabled?"not-allowed":"pointer",Qr()||zt(f),pt(f),!it(f)&&!n&&d.setStatus(ae().missingBindingStatus,{tone:"error"})}function Re(f){if(n)return;const E=l??e.readSnapshot();if(!E)return;const v=Ut(E,f);gt(v),Jr(v)}function gt(f){e.applySnapshot(f),l=Se(f),pt(f)}function zt(f){g.checked=f.environment.enabled,w.checked=f.directional.enabled,ne("environmentIntensity",f.environment.light.intensity),Ke("environmentDiffuseColor",f.environment.light.diffuseColor??{r:1,g:1,b:1}),Ke("environmentGroundColor",f.environment.light.groundColor??{r:.48,g:.52,b:.62}),f.environmentTexture&&(ne("iblIntensity",f.environmentTexture.iblIntensity),ne("iblRotationY",f.environmentTexture.iblRotationY));const E=Ct(f.directional.light.direction);ne("directionalIntensity",f.directional.light.intensity),ne("directionalHorizontalAngle",E.horizontalAngleDeg),ne("directionalElevationAngle",E.elevationAngleDeg),Ke("directionalDiffuseColor",f.directional.light.diffuseColor??{r:1,g:1,b:1}),f.shadow.shadowMap?.appearance&&(ne("shadowStrength",f.shadow.shadowMap.appearance.strength),ne("shadowSoftness",f.shadow.shadowMap.appearance.softness))}function Jr(f){const E=Tr(r);E!==g&&(g.checked=f.environment.enabled),E!==w&&(w.checked=f.directional.enabled);for(const v of D.keys()){const L=D.get(v);!L||E===L||ne(v,Le(f,v))}for(const v of q.keys()){const L=q.get(v);!L||E===L||Ke(v,nr(f,v))}}function Ut(f,E){if(E.kind==="enabled"){const L=E.target==="environment"?g.checked:w.checked;return Ia(f,E.target,L)}if(E.kind==="color"){const L=nr(f,E.field);return ya(f,E.field,Zr(E.field,L))}const v=Le(f,E.field);return Sa(f,E.field,Xr(E.field,v))}function ne(f,E){const v=D.get(f);if(!v)return;v.value=String(ra(E));const L=d.container.querySelector(`output[data-lighting-debug-output="${f}"]`);L&&(L.value=he(E))}function Xr(f,E){const v=D.get(f);if(!v)return E;const L=bt(v.value);if(L===null)return E;const Je=Ee(f),Xe=Je.min??Number.NEGATIVE_INFINITY,en=Je.max??Number.POSITIVE_INFINITY;return Math.min(en,Math.max(Xe,L))}function $t(f){if(n)return;const E=l??e.readSnapshot();if(!E)return;const v=D.get(f);if(!v||bt(v.value)===null){Ht(f);return}const L=Ut(E,{kind:"number",field:f}),Je=Le(E,f),Xe=Le(L,f);Math.abs(Xe-Je)>1e-6&>(L),ne(f,Xe)}function Ht(f){const E=l??e.readSnapshot();E&&ne(f,Le(E,f))}function Ke(f,E){const v=q.get(f);v&&(v.value=na(E))}function Zr(f,E){const v=q.get(f);return v?aa(v.value,E):E}function pt(f){const E=f.directional.light.direction;ye.textContent=`x ${he(E.x)} y ${he(E.y)} z ${he(E.z)}`;const v=fa(f.shadow.mode,ae()),L=f.shadow.shadowMap;J.textContent=f.shadow.mode==="shadow-map"&&L?[`${v} / ${L.backend??"pending"}`,...L.appearance?[`strength ${he(L.appearance.strength)} softness ${he(L.appearance.softness)}`]:[],`depth S ${L.staticRefreshCount??"-"} D ${L.dynamicRefreshCount??"-"} C ${L.compositeRefreshCount??"-"}`,L.lastRefreshReasons[L.lastRefreshReasons.length-1]??"ready"].join(`
|
|
7
|
+
`):`${v}
|
|
8
|
+
shadow length x${he(f.shadow.projectedLengthMultiplier)}`}function Vt(){const f=ae(),E=ht();d.setLanguageChrome({title:f.title,modeLabel:f.runtime,languageButtonLabel:f.languageButton,toggleTooltip:E.toggleTitle,languageTooltip:E.languageButton,language:a}),c.textContent=f.environmentSection,R.textContent=f.environmentTextureSection,U.textContent=f.directionalSection,C.textContent=f.shadowSection,I.environmentEnabled.textContent=f.enabled,I.environmentIntensity.textContent=f.intensity,I.environmentDiffuseColor.textContent=f.skyLightColor,I.environmentGroundColor.textContent=f.groundColor,I.iblIntensity.textContent=f.iblIntensity,I.iblRotationY.textContent=f.iblRotationY,I.directionalEnabled.textContent=f.enabled,I.directionalIntensity.textContent=f.intensity,I.directionalHorizontalAngle.textContent=f.horizontalAngle,I.directionalElevationAngle.textContent=f.elevationAngle,I.directionalDiffuseColor.textContent=f.lightColor,I.rawDirection.textContent=f.rawDirection,I.shadowReadout.textContent=f.shadowReadout,I.shadowStrength.textContent=f.shadowStrength,I.shadowSoftness.textContent=f.shadowSoftness;for(const[v,L]of D)L.setAttribute("aria-label",I[v].textContent??v);d.setTooltip(g,E.enabled),d.setTooltip(I.environmentEnabled,E.enabled),d.setTooltip(I.environmentIntensity,E.environmentIntensity),d.setTooltip(b,E.environmentIntensity),d.setTooltip(I.environmentDiffuseColor,E.skyLightColor),d.setTooltip(p,E.skyLightColor),d.setTooltip(I.environmentGroundColor,E.groundColor),d.setTooltip(m,E.groundColor),d.setTooltip(I.iblIntensity,E.iblIntensity),d.setTooltip(j,E.iblIntensity),d.setTooltip(I.iblRotationY,E.iblRotationY),d.setTooltip(M,E.iblRotationY),d.setTooltip(w,E.enabled),d.setTooltip(I.directionalEnabled,E.enabled),d.setTooltip(I.directionalIntensity,E.directionalIntensity),d.setTooltip(_,E.directionalIntensity),d.setTooltip(I.directionalHorizontalAngle,E.horizontalAngle),d.setTooltip(K,E.horizontalAngle),d.setTooltip(I.directionalElevationAngle,E.elevationAngle),d.setTooltip($,E.elevationAngle),d.setTooltip(I.directionalDiffuseColor,E.lightColor),d.setTooltip(ue,E.lightColor),d.setTooltip(I.rawDirection,E.rawDirection),d.setTooltip(ye,E.rawDirection),d.setTooltip(I.shadowReadout,E.shadowReadout),d.setTooltip(J,E.shadowReadout),d.setTooltip(I.shadowStrength,E.shadowStrength),d.setTooltip(re.input,E.shadowStrength),d.setTooltip(I.shadowSoftness,E.shadowSoftness),d.setTooltip(Q.input,E.shadowSoftness),ee.textContent=f.reset,d.setTooltip(ee,E.reset),Z.textContent=f.save,d.setTooltip(Z,E.save),l&&pt(l)}function Qr(){const f=Tr(r);return f===d.languageButton||f===g||f===w||[...D.values()].includes(f)||[...q.values()].includes(f)}function ae(){return ua(a)}function ht(){return ma(a)}}function $i(e,t){const r=e instanceof Error?e.message:String(e??"");return r?`${t}: ${r}`:t}const Hi=Object.freeze({preparingEditor:"正在准备编辑器…",enterEditor:"进入编辑场景",checkingEditor:"正在检查编辑环境…",enteringEditor:"正在进入编辑界面…",restoringPlayMode:"正在恢复游戏…",retryEditor:"重试进入编辑器",reloadPage:"刷新页面恢复"});function Os(e){const t=e.browser?.window??window,r=e.browser?.document??t.document,a=e.browser?.canvasId??"renderCanvas",n=e.initialMode??"play",o=e.initialModeIntent??"fresh",i=Object.freeze({...Hi,...e.browser?.entryContent}),s=(y,I)=>{e.reportError?e.reportError(y,I):console.error(`[FpsGameEditor] ${y}`,I)};oa({scope:t,reportError:y=>s("Browser Command Host failed",y)});const l=Ci({baseUrl:e.editorModule.baseUrl,...e.editorModule.manifestUrl?{manifestUrl:e.editorModule.manifestUrl}:{},importModule:e.editorModule.importModule}),d=Di({performance:t.performance}),h=new Set,c=new Set,u=new WeakMap;let g=null,b=null,p=nt(),m=null,S=null,R=!1,A=null,j=!1,M=null,T;const U=()=>A,O=()=>{if(j)return;const y=t;y.__FPS_EDITOR_ENTRY_DIAGNOSTICS__=p},w=()=>Object.freeze({entry:A??T.getState()}),_=()=>{if(j)return;const y=w();for(const I of[...h])try{I(y)}catch(D){s("editor entry listener failed",D)}},K=y=>{if(y.phase==="preparing"){m=d.mark(),p=nt({...p,enter:null}),O();return}if(!(y.phase==="editing"||y.phase==="failed"&&y.failure?.phase!=="warmup")||!m)return;const D=m;m=null,p=nt({...p,enter:d.measure(D)}),O()},$=y=>{const I=u.get(y);if(I)return I;const D=Promise.resolve().then(()=>y.switcher.dispose());return u.set(y,D),D.finally(()=>{u.get(y)===D&&u.delete(y)}).catch(()=>{}),D},ue=async()=>{const y=[];for(const I of[...c])try{await $(I),c.delete(I)}catch(D){y.push(D)}at(y,"Retired Local Editor entry cleanup failed.")},ye=y=>{g===y&&(g=null),c.add(y),S!==null&&t.clearTimeout(S),S=t.setTimeout(()=>{if(S=null,!(j||A)){try{T.reset()}catch(I){s("editor entry reset after play-mode return failed",I);return}T.start().catch(I=>s("editor warmup after play-mode return failed",I))}},0)},J=y=>{if(A)return Promise.reject(new ve(A.failure?.message??i.reloadPage));if(j||y.aborted)return Promise.reject(ot());if(g)return Promise.resolve(g);if(b)return b;const I=ue().then(async()=>{const D=d.mark();let q;try{q=await l.load(y)}catch(se){throw qi(se)?new ve("开发服务已更新,当前预览已失效,请刷新页面。"):se}finally{p=nt({build:l.getManifest()?.build??null,editorModuleImportAttempt:l.getImportAttempt(),editorModuleWarmup:d.measure(D),enter:p.enter}),O()}if(A)throw new ve(A.failure?.message??i.reloadPage);if(j||y.aborted)throw ot();const te={switcher:void 0,editorModeEntryAttempted:!1,playModeEntryCompleted:!1},We=await e.editorModule.mount(q,{projectMode:{async enterEditorMode(se){Z(),te.editorModeEntryAttempted=!0;const Re=Wi(r,a);try{await e.projectMode.enterEditorMode(se)}finally{Ki(r,Re)}},async enterPlayMode(se){Z(),await e.projectMode.enterPlayMode(se),te.playModeEntryCompleted=!0,ye(te)}},getCanvas:()=>Wr(r,a)},y);te.switcher=We;const Ne=U();if(Ne)throw await $(te),new ve(Ne.failure?.message??i.reloadPage);if(j||y.aborted)throw await $(te),ot();return g=te,te});return b=I,I.finally(()=>{b===I&&(b=null)}).catch(()=>{}),I};T=ka({backend:{warmup:y=>J(y).then(()=>{}),prepare:y=>J(y.signal),async commit(y,I){if(y!==g)throw new Error("Prepared Local Editor switcher is no longer current.");if(await y.switcher.enterEditor(),I.signal.aborted)throw ot()},async rollback(y){const I=[];try{await $(y),c.delete(y),g===y&&(g=null)}catch(D){I.push(D)}if(y.editorModeEntryAttempted&&!y.playModeEntryCompleted)try{await e.projectMode.enterPlayMode({reason:"editor-entry-rollback"}),y.playModeEntryCompleted=!0}catch(D){I.push(D)}at(I,"Local Editor entry rollback failed.")},async dispose(){const y=b;await Promise.allSettled(y?[y]:[]);const I=[];if(g){const D=g;try{await $(D),g===D&&(g=null)}catch(q){I.push(q)}}try{await ue()}catch(D){I.push(D)}at(I,"Local Editor entry cleanup failed.")}},reportFailure:({failure:y,cause:I,rollbackCause:D})=>{s(`editor entry ${y.code}`,D===void 0?I:Kr(y.message,[I,D]))},reportListenerError:y=>s("editor entry listener failed",y)});const C=T.subscribe(y=>{K(y),_()});O();const B=y=>{if(j||A)return;const I=Vi(y),D=T.getState();A=Object.freeze({...D,phase:"failed",phaseStartedAtMs:Date.now(),failure:Object.freeze({code:"reload-required",phase:"runtime",message:I.message,recoverable:!1})}),_();const q=g;q&&(g=null,c.add(q),$(q).then(()=>{c.delete(q)}).catch(te=>s("stale local editor cleanup failed",te)))};t.addEventListener(Qt,B);const Y={start:()=>A?Promise.reject(new ve(A.failure?.message??i.reloadPage)):T.start(),enterEditor:()=>A?Promise.resolve(Rr(A)):T.enter(),retryEditorEntry:()=>A?Promise.resolve(Rr(A)):T.retry(),getEntryState:w,getDiagnostics:()=>p,subscribe(y){return j?()=>{}:(h.add(y),y(w()),()=>h.delete(y))},dispose(){if(M)return M;j=!0;const y=(async()=>{t.removeEventListener("beforeunload",ee),t.removeEventListener("pagehide",ee),t.removeEventListener(Qt,B),r.removeEventListener("DOMContentLoaded",Q),S!==null&&(t.clearTimeout(S),S=null),re(),C(),h.clear(),delete t.__FPS_EDITOR_ENTRY_DIAGNOSTICS__;const I=[];try{await T.dispose()}catch(D){I.push(D)}I.push(...await ia()),at(I,"Local Editor Entry cleanup failed.")})();return M=y,y.catch(()=>{M===y&&(M=null)}),y}},re=e.browser?.showEntryButton===!1?()=>{}:Yi(Y,t,r,e.browser?.root,i,s),Q=()=>{if(j||R)return;R=!0,r.removeEventListener("DOMContentLoaded",Q),(n==="edit"&&o==="fresh"?Y.enterEditor():Y.start()).catch(I=>s("local editor entry start failed",I))},ee=()=>{Y.dispose().catch(y=>s("local editor entry dispose failed",y))};return t.addEventListener("beforeunload",ee),t.addEventListener("pagehide",ee),e.browser?.autoStart!==!1&&(r.readyState==="loading"?(r.addEventListener("DOMContentLoaded",Q,{once:!0}),t.queueMicrotask(Q)):Q()),Y;function Z(){if(A)throw new ve(A.failure?.message??i.reloadPage)}}function Vi(e){const t=e.detail;return t&&typeof t=="object"&&(t.code==="authentication-invalidated"||t.code==="service-instance-changed")&&typeof t.message=="string"&&t.message.trim()?Object.freeze({code:t.code,message:t.message}):Object.freeze({code:"service-instance-changed",message:"开发服务已更新,当前预览已失效,请刷新页面。"})}function Rr(e){return Object.freeze({ok:!1,attempt:e.attempt,failure:e.failure})}function qi(e){const t=e instanceof Error?e.message:String(e);return/failed to fetch dynamically imported module|error loading dynamically imported module|importing a module script failed/i.test(t)}function Yi(e,t,r,a,n,o){r.getElementById("fps-game-editor-entry-surface")?.remove(),r.getElementById("fps-game-editor-entry")?.remove();const i=r.createElement("div");i.id="fps-game-editor-entry-surface";const s=r.createElement("p");s.style.cssText=["margin:0 0 14px","color:var(--fps-editor-panel-fg,#edf0f2)",'font:500 14px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif'].join(";");const l=r.createElement("button");l.id="fps-game-editor-entry",l.type="button";const d=["position:fixed","top:14px","right:16px","z-index:2147482604","height:32px","min-width:104px","padding:0 12px","border:1px solid #aee7c2","border-radius:999px","background:#e1f8e8","color:#2f6f52",'font:800 12px system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif',"box-shadow:0 8px 20px rgba(15,23,42,.18)","white-space:nowrap","user-select:none"].join(";"),h=["position:static","height:36px","min-width:132px","padding:0 14px","border:1px solid var(--fps-editor-border-strong,#59656d)","border-radius:4px","background:var(--fps-editor-field-bg,#252b2f)","color:var(--fps-editor-panel-fg,#f4f6f7)",'font:700 13px system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif',"box-shadow:none","white-space:nowrap","user-select:none"].join(";");l.style.cssText=d,i.append(s,l);let c=vr(e.getEntryState(),n);const u=p=>{c=vr(p,n);const m=c.action==="reload";l.disabled=c.disabled,l.textContent=c.label,l.title=c.title,l.style.cssText=m?h:d,l.style.opacity=c.disabled?".72":"1",l.style.cursor=c.disabled?"default":"pointer",s.hidden=!m||a!==void 0,s.textContent=p.entry.failure?.message??n.reloadPage,i.setAttribute("role",m?"alert":"presentation"),i.style.cssText=m&&a===void 0?["position:fixed","left:50%","top:50%","transform:translate(-50%,-50%)","z-index:2147482604","width:min(420px,calc(100vw - 32px))","padding:20px","border:1px solid var(--fps-editor-danger-border,#714040)","border-radius:6px","background:var(--fps-editor-panel-bg,#171b1e)","box-shadow:0 18px 50px rgba(0,0,0,.42)"].join(";"):"",c.hidden?i.remove():i.isConnected||(a??r.body)?.append(i)},g=e.subscribe(u),b=()=>{(c.action==="enter"?e.enterEditor():c.action==="retry"?e.retryEditorEntry():c.action==="reload"?Promise.resolve(t.location.reload()):Promise.resolve()).catch(m=>o("editor entry action failed",m))};return l.addEventListener("click",b),()=>{g(),l.removeEventListener("click",b),i.remove()}}function vr(e,t){switch(e.entry.phase){case"idle":case"warming":return me("none",!0,!1,t.preparingEditor);case"ready":return me("enter",!1,!1,t.enterEditor);case"preparing":return me("none",!0,!1,t.checkingEditor);case"committing":return me("none",!0,!1,t.enteringEditor);case"rolling-back":return me("none",!0,!1,t.restoringPlayMode);case"failed":return e.entry.failure?.recoverable?me("retry",!1,!1,t.retryEditor,e.entry.failure.message):me("reload",!1,!1,t.reloadPage,e.entry.failure?.message);case"editing":case"disposed":return me("none",!0,!0,t.enterEditor)}return me("none",!0,!0,t.enterEditor)}function me(e,t,r,a,n=a){return Object.freeze({action:e,disabled:t,hidden:r,label:a,title:n})}function nt(e={}){return Object.freeze({build:e.build??null,editorModuleImportAttempt:e.editorModuleImportAttempt??0,editorModuleWarmup:e.editorModuleWarmup??null,enter:e.enter??null})}function Wi(e,t){const r=Wr(e,t);return r?.parentNode?{canvas:r,parent:r.parentNode,nextSibling:r.nextSibling}:null}function Ki(e,t){if(!t||t.canvas.isConnected)return;const r=t.parent.isConnected?t.parent:e.body,a=t.nextSibling?.parentNode===r?t.nextSibling:null;r.insertBefore(t.canvas,a)}function Wr(e,t){const r=e.getElementById(t),a=e.defaultView?.HTMLCanvasElement;return a?r instanceof a?r:null:r?.tagName==="CANVAS"?r:null}function Kr(e,t){return Object.assign(new Error(e),{errors:[...t]})}function at(e,t){if(e.length===1)throw e[0];if(e.length>1)throw Kr(t,e)}function ot(){return Object.assign(new Error("Local Editor Entry was disposed."),{name:"AbortError"})}export{Ns as CAMERA_LANGUAGE_OPTIONS,$n as DEFAULT_EDITOR_SCENE_ARTIST_MATERIAL_ASSET_ID,Ls as DEFAULT_EDITOR_SCENE_CAMERA,xs as DEFAULT_EDITOR_SCENE_ENVIRONMENT_LIGHT,Gs as DEFAULT_EDITOR_SCENE_SUN_LIGHT,Fs as DEFAULT_EDITOR_SCENE_TRANSFORM_TYPE_OPTIONS,Bs as DEFAULT_PBR_EDITOR_SCENE_MATERIAL_ASSET,zs as DEFAULT_PBR_EDITOR_SCENE_MATERIAL_ASSET_GUID,Us as DEFAULT_PBR_EDITOR_SCENE_MATERIAL_ASSET_ID,$s as DEFAULT_READONLY_EDITOR_SCENE_MATERIAL_ASSET_IDS,Hs as DEFAULT_STANDARD_EDITOR_SCENE_MATERIAL_ASSET,Vs as DEFAULT_STANDARD_EDITOR_SCENE_MATERIAL_ASSET_GUID,qs as DEFAULT_STANDARD_EDITOR_SCENE_MATERIAL_ASSET_ID,Ys as EDITOR_SCENE_BUILTIN_MATERIAL_SHADER_DEFINITIONS,Pn as EDITOR_SCENE_BUILTIN_MATERIAL_SHADER_DEFINITION_REGISTRY,Ws as EDITOR_SCENE_DEFAULT_DIRECTIONAL_LIGHT_DIRECTION,Ks as EDITOR_SCENE_DUPLICATE_MATERIAL_ASSET_VALUE_PREFIX,Js as EDITOR_SCENE_ENVIRONMENT_LIGHT_ID,Xs as EDITOR_SCENE_FIELD_SCHEMA,Zs as EDITOR_SCENE_LARGE_SELECTION_LIGHTWEIGHT_INSPECTOR_THRESHOLD,Or as EDITOR_SCENE_LIGHTING_DEBUG_LANGUAGE_STORAGE_KEY,la as EDITOR_SCENE_LIGHTING_DEBUG_NUMBER_FIELDS,Dr as EDITOR_SCENE_LIGHTING_DEBUG_STORAGE_KEY,er as EDITOR_SCENE_LIGHTING_DEBUG_TEXT,tr as EDITOR_SCENE_LIGHTING_DEBUG_TOOLTIPS,Qs as EDITOR_SCENE_LIGHT_DIRECTION_ELEVATION_ANGLE_PATH,rn as EDITOR_SCENE_LIGHT_DIRECTION_ELEVATION_MAX_DEG,nn as EDITOR_SCENE_LIGHT_DIRECTION_ELEVATION_MIN_DEG,ec as EDITOR_SCENE_LIGHT_DIRECTION_HORIZONTAL_ANGLE_PATH,tc as EDITOR_SCENE_LIGHT_DIRECTION_HORIZONTAL_MAX_DEG,rc as EDITOR_SCENE_LIGHT_DIRECTION_HORIZONTAL_MIN_DEG,nc as EDITOR_SCENE_LIGHT_INSPECTOR_LANGUAGE_OPTIONS,ac as EDITOR_SCENE_MAIN_CAMERA_ID,oc as EDITOR_SCENE_MATERIAL_ASSET_FIELD_PATH_PREFIX,ic as EDITOR_SCENE_MATERIAL_ASSET_ID_PREFIX,sc as EDITOR_SCENE_PREFAB_COMPOSITION_VERSION,cc as EDITOR_SCENE_PREFAB_DEFAULT_MODEL_NODE_ID,dc as EDITOR_SCENE_PREFAB_DEFAULT_ROOT_NODE_ID,lc as EDITOR_SCENE_RENDERING_PROFILE_ALLOWED_PATCH_PATHS,uc as EDITOR_SCENE_ROOT_ID,mc as EDITOR_SCENE_ROOT_TRANSFORM,fc as EDITOR_SCENE_RUNTIME_COLOR_SLOTS,gc as EDITOR_SCENE_RUNTIME_INTENSITY_SLOTS,pc as EDITOR_SCENE_RUNTIME_METALLIC_ROUGHNESS_SLOTS,hc as EDITOR_SCENE_RUNTIME_TEXTURE_SLOTS,Ec as EDITOR_SCENE_SCHEMA_VERSION,tn as EDITOR_SCENE_SOURCE_ID,qt as EDITOR_SCENE_SOURCE_TYPE,bc as EDITOR_SCENE_STATIC_SHADOW_BAKE_ACTION_PATH,Sc as EDITOR_SCENE_SUN_LIGHT_ID,yc as FPS_GAME_EDITOR_GROUND_DECAL_FEATURE_ID,Ic as FPS_GAME_EDITOR_GROUND_DECAL_PLUGIN_ID,Pc as FPS_GAME_EDITOR_GROUND_DECAL_PLUGIN_PACKAGE,zo as FPS_GAME_EDITOR_RUNTIME_DEBUG_AUTHORING_PATH,Ac as MATERIAL_LANGUAGE_OPTIONS,Tc as PLAYABLE_AUTHORING_API_BASE,Rc as PLAYABLE_BABYLON_DEFAULT_OUTLINE_OVERRIDE,ls as PLAYABLE_EDITOR_ASSET_CATALOG_KINDS,Ps as PLAYABLE_EDITOR_BUNDLED_ALIAS_PACKAGE_IDS,Ie as PLAYABLE_EDITOR_COMMAND_NAME,Po as PLAYABLE_EDITOR_DEFAULT_EXTENSIONS,Ai as PLAYABLE_EDITOR_ENTRY_IMMUTABLE_CACHE_CONTROL,Pi as PLAYABLE_EDITOR_ENTRY_MANIFEST_CACHE_CONTROL,Ii as PLAYABLE_EDITOR_ENTRY_MANIFEST_PATH,Vr as PLAYABLE_EDITOR_ENTRY_MANIFEST_SCHEMA_VERSION,Io as PLAYABLE_EDITOR_ENVIRONMENT_TEXTURE_EXTENSIONS,oe as PLAYABLE_EDITOR_EVENT_NAME,Fr as PLAYABLE_EDITOR_IMAGE_EXTENSIONS,Lt as PLAYABLE_EDITOR_MODEL_EXTENSIONS,Is as PLAYABLE_EDITOR_PACKAGE_IDS,Ye as PLAYABLE_EDITOR_PACKAGE_RESOLUTION_CONTRACT,Ss as PLAYABLE_EDITOR_POST_MESSAGE,As as PLAYABLE_EDITOR_PREBUNDLE_PACKAGE_IDS,vc as PLAYABLE_EDITOR_SCENE_COMPILER_ID,wc as PLAYABLE_EDITOR_SCENE_COMPILER_VERSION,Cc as PLAYABLE_EDITOR_SCENE_OUTLINE_DEFAULT_DISABLED_REASON,Gt as PLAYABLE_EDITOR_SOUND_EXTENSIONS,xt as PLAYABLE_EDITOR_TEXTURE_EXTENSIONS,Mc as PLAYABLE_FORGE_PLAY_BRIDGE_SOURCE,_c as PLAYABLE_FORGE_PLAY_COMMAND,Dc as PLAYABLE_FORGE_PLAY_COMMAND_ALIASES,Oc as PLAYABLE_FORGE_PLAY_EVENT,jc as PLAYABLE_FORGE_PLAY_EVENT_ALIASES,kc as PLAYABLE_FORGE_PLAY_HISTORY_COMMANDS,Nc as PLAYABLE_FORGE_PLAY_POST_MESSAGE,Lc as PLAYABLE_FORGE_PLAY_PROJECT_ASSET_COMMANDS,xc as PLAYABLE_GROUND_DECAL_TEXTURE_TINT,Gc as PLAYABLE_LOCAL_EDITOR_HOST_MANIFEST_VERSION,Fc as PLAYABLE_LOCAL_EDITOR_HOST_REQUIRED_CONTRACT,Bc as PLAYABLE_LOCAL_EDITOR_SAVE_CANCELLATION_CODE,ve as PlayableEditorEntryReloadRequiredError,Ae as PlayableEditorManagedAssetError,zc as SCENE_MAIN_SOURCE_RENDERING_COMPANION_CONFIG_KEY,Uc as SCENE_MAIN_SOURCE_STATIC_SHADOWS_COMPANION_CONFIG_KEY,$c as addAssetLibraryItemToEditorSceneDocument,Hc as addEditorSceneLightingPreviewColors,Vc as addEditorSceneMaterialAsset,qc as addEditorSceneMaterialAssetAndBind,Yc as addEditorSceneMaterialAssetAndBindPrefabOverride,Wc as addEditorScenePrefabAsset,Kc as addVec3,Jc as appendEditorSceneReadonlyInspectorProperty,Xc as appendEditorSceneRuntimeColorProperties,Zc as appendEditorSceneRuntimeInspectorProperty,Qc as appendEditorSceneRuntimeTextureProperties,ed as appendEditorSceneRuntimeVector3Properties,td as applyEditorSceneAuthoringHierarchyPatch,rd as applyEditorSceneDocumentMutationPatch,nd as applyEditorSceneJsonFieldPatch,ad as applyEditorSceneRenderingProfileAction,od as applyEditorSceneRenderingProfilePatch,id as applyEditorSceneSerializedPropertyPatch,sd as areMarkerGraphsEqual,cd as assertEditorSceneDocumentAssetCatalogCompleteness,dd as assertEditorSceneMarkerConfigContract,ld as assertEditorSceneMaterialAssetIntegrity,ud as assertEditorScenePrefabMarkerNodeContract,md as assertEditorSceneTransformComponentContract,fd as assertPlayableEditorSceneDocumentContract,gd as assertPlayableEditorScenePersistedSourceContract,Ot as buildPlayableEditorManagedAssetArgs,pd as bumpEditorSceneAuthoringSourceRevision,hd as callEditorSceneRuntimeMethod,Ed as canEditEditorSceneShadowSettings,bd as canEditorSceneGameObjectHaveChildren,Sd as canPatchPlayableEditorSceneGroundDecalMultiField,yd as canPatchPlayableGroundDecalLayerField,it as canSaveEditorSceneLightingDebugSnapshot,Id as canonicalizePlayableJsonNumbers,Pd as clampEditorSceneLightingPreview01,Ad as clampEditorSceneLightingPreviewNumber,Td as clampEditorSceneMaterialPreview01,Rd as cleanupEditorSceneGameObjectOverrides,vd as cleanupLegacyImportedEditorSceneMaterialBindings,wd as cloneBuiltInMarkerTypeDefinition,Cd as cloneEditorSceneDocument,Se as cloneEditorSceneLightingDebugSnapshot,Md as cloneEditorTransformMatrix,_d as cloneEditorTransformSnapshot,Dd as cloneMarker,Od as cloneMarkerGraphCommand,jd as cloneMarkerTypeDefinition,kd as cloneRelation,Nd as cloneVec3,jn as collectEditorSceneChildMaterialSlots,Ld as collectEditorSceneGameObjectSubtreeIds,xd as collectEditorSceneMaterialAssetBindingIds,kt as collectEditorSceneMaterialAssetReferences,Gd as collectEditorSceneMaterialAssetUsages,Fd as collectEditorSceneRenderingAlphaIndexMigrationTargetIds,Bd as collectEditorSceneRuntimeChildNodes,zd as collectEditorSceneRuntimeMeshes,Ud as collectEditorSceneSlotSourceMaterialIndices,$d as collectEditorSceneSubtreeIdList,Hd as collectEditorSceneSubtreeIds,Vd as collectEditorShadowReceiverCandidates,ws as collectMissingPlayableEditorPackageAliasFiles,aa as colorFromEditorSceneLightingHex,na as colorToEditorSceneLightingHex,qd as combineEditorTransforms,Yd as compareEditorSceneAssetLibraryItems,Wd as compileEditorSceneDocumentToSceneConfig,Ms as compilePlayableGroundDecalRuntimeConfig,Kd as composeEditorTransformMatrix,Jd as createArtistMaterialAssetInspectorProperties,Xd as createArtistMaterialBindingSummary,Zd as createArtistMaterialInspectorSections,Qd as createAuthoredMarkerTypeDefinition,el as createBabylonAssetContainerProjectionImporter,tl as createBabylonPrimitiveProjectionInstancingController,rl as createBoundsCenter,nl as createCameraInspectorProperties,al as createChildMaterialBindingInspectorProperties,ol as createChildMaterialBindingSummary,il as createDefaultEditorSceneCameraGameObject,sl as createDefaultEditorSceneEnvironmentLightGameObject,cl as createDefaultEditorSceneSunLightGameObject,es as createDefaultEditorSceneTransformPatchFromRuntimePatch,dl as createDefaultMarkerScaleForKind,ll as createDefaultPbrEditorSceneMaterialAsset,ul as createDefaultStandardEditorSceneMaterialAsset,ml as createEditorSceneAssetFromLibraryItem,fl as createEditorSceneAssetHydrationCatalog,gl as createEditorSceneAssetLibrary,pl as createEditorSceneAssetLibraryItem,hl as createEditorSceneAssetPlacementPatch,El as createEditorSceneAuthoringSourceDescriptor,bl as createEditorSceneCameraInspectorSection,Sl as createEditorSceneCommonInspectorProperties,yl as createEditorSceneCommonInspectorSection,Il as createEditorSceneComponentsInspectorProperties,Pl as createEditorSceneComponentsInspectorSection,Al as createEditorSceneComponentsInspectorSummary,Tl as createEditorSceneCreateGroupPatch,Rl as createEditorSceneCreatePrimitivePatch,vl as createEditorSceneDeleteSubtreePatch,on as createEditorSceneDirectionalLightDirectionFromAngles,wl as createEditorSceneDirectionalLightDirectionFromTransformRotation,Cl as createEditorSceneDirectionalLightShadowSummaryInspectorSection,Ml as createEditorSceneDocumentInspectorProperty,_l as createEditorSceneDocumentInspectorSections,Dl as createEditorSceneDuplicateMaterialAssetForBindingPatch,Ol as createEditorSceneDuplicateMaterialAssetValue,jl as createEditorSceneDuplicateSelectionPatch,kl as createEditorSceneDuplicatedMaterialAsset,Nl as createEditorSceneDuplicatedMaterialAssetCopy,Ll as createEditorSceneDuplicatedPrefabDefinition,xl as createEditorSceneFieldInspectorValidator,Gl as createEditorSceneGameObjectFieldPatch,Fl as createEditorSceneGameObjectGuid,Bl as createEditorSceneGameObjectsFieldPatch,zl as createEditorSceneGroupSelectionPatch,Ul as createEditorSceneHierarchyMovePatch,$l as createEditorSceneHierarchySourceInspectorProperties,Hl as createEditorSceneHierarchySourceInspectorSection,Vl as createEditorSceneHierarchySourceInspectorSummary,ql as createEditorSceneIdentityTransformComponent,Yl as createEditorSceneInspectorActionProperty,Wl as createEditorSceneLightInspectorProperties,Kl as createEditorSceneLightInspectorSections,Jl as createEditorSceneMarkerConfig,Xl as createEditorSceneMarkerGameObjectDocument,Zl as createEditorSceneMarkerGeometry,Ql as createEditorSceneMarkerGraphPatchLabel,eu as createEditorSceneMaterialActionPatch,tu as createEditorSceneMaterialAssetFieldInspectorPropertyInput,ru as createEditorSceneMaterialAssetFromShaderDefinition,nu as createEditorSceneMaterialAssetFromSourceProfile,au as createEditorSceneMaterialAssetGuid,ou as createEditorSceneMaterialAssetId,iu as createEditorSceneMaterialAssetInspectorObject,su as createEditorSceneMaterialAssetMeta,cu as createEditorSceneMaterialAssetOwnershipView,du as createEditorSceneMaterialAssetPreview,lu as createEditorSceneMaterialAssetSelectionId,uu as createEditorSceneMaterialBindingSummary,mu as createEditorSceneMaterialBrowserAssetItems,fu as createEditorSceneMaterialPickerControlOptions,gu as createEditorSceneMaterialShaderDefinitionRegistry,pu as createEditorSceneMetadataInspectorProperties,hu as createEditorSceneMetadataInspectorSection,Eu as createEditorSceneMetadataInspectorSummary,bu as createEditorSceneModelAssetInspectorObject,Su as createEditorSceneModelAssetSelectionId,yu as createEditorSceneModelGameObjectForAsset,Iu as createEditorScenePlacementWorldTransform,Hn as createEditorScenePlayableFieldInspectorExtraValidator,Pu as createEditorScenePrefabActionPatch,Au as createEditorScenePrefabAgentSummary,Tu as createEditorScenePrefabBrowserAssetItems,Ru as createEditorScenePrefabDefinitionFromAsset,vu as createEditorScenePrefabDefinitionFromGameObject,wu as createEditorScenePrefabDraftCommitInput,Cu as createEditorScenePrefabGameObjectForAsset,Mu as createEditorScenePrefabGroupNode,_u as createEditorScenePrefabGuid,Du as createEditorScenePrefabInstanceGameObject,Ou as createEditorScenePrefabInstanceScopedNodeId,ju as createEditorScenePrefabMarkerNode,ku as createEditorScenePrefabMaterialOverrideInspectorSection,Nu as createEditorScenePrefabNodeFromAsset,Lu as createEditorScenePrefabPrimitiveNode,xu as createEditorScenePrefabSourceStructureInspectorSection,Gu as createEditorScenePrefabStageCompositionProjectionNodes,Fu as createEditorScenePrefabStageContextLightProjectionNodes,Bu as createEditorScenePrefabStageInspectorObject,zu as createEditorScenePrefabStageMaterialSlotGroup,Uu as createEditorScenePrefabStageMaterialSlotItems,$u as createEditorScenePrefabStageModelProjectionNode,Hu as createEditorScenePrefabStageNodeFallbackLabel,Vu as createEditorScenePrefabStageNodeTransform,qu as createEditorScenePrefabStageNodeTreeItem,Yu as createEditorScenePrefabStageProjectionKind,Wu as createEditorScenePrefabStageProjectionNodeFromCompositionNode,Ku as createEditorScenePrefabStageProjectionNodeId,Ju as createEditorScenePrefabStageRuntimeGroups,Xu as createEditorScenePrefabStageRuntimeLeaf,Zu as createEditorScenePrefabStageRuntimeNodeTree,Qu as createEditorScenePrefabStageSourceItem,em as createEditorScenePrefabStageStableId,tm as createEditorScenePrimitiveInspectorProperties,rm as createEditorScenePrimitiveInspectorSection,nm as createEditorSceneReadonlyDocumentInspectorProperty,am as createEditorSceneReadonlyInspectorProperty,om as createEditorSceneReadonlyInspectorSection,im as createEditorSceneReadonlyVector3Properties,sm as createEditorSceneRenamePatch,cm as createEditorSceneRendererInspectorProperties,dm as createEditorSceneRendererInspectorSection,lm as createEditorSceneRendererInspectorSummary,um as createEditorSceneRenderingInspectorSection,mm as createEditorSceneRenderingPanelState,fm as createEditorSceneRenderingProfileDraftState,gm as createEditorSceneReparentPatch,pm as createEditorSceneRootTransformComponent,hm as createEditorSceneRuntimeAnimationSkeletonSection,Em as createEditorSceneRuntimeBindingSection,bm as createEditorSceneRuntimeCollisionsSection,Sm as createEditorSceneRuntimeGeometryBoxSection,ym as createEditorSceneRuntimeInspectorSection,Im as createEditorSceneRuntimeInspectorSections,Pm as createEditorSceneRuntimeInspectorSectionsForDocument,Am as createEditorSceneRuntimeInspectorSnapshot,Tm as createEditorSceneRuntimeIntensityPropertiesSection,Rm as createEditorSceneRuntimeMaterialColorsSection,vm as createEditorSceneRuntimeMaterialSection,wm as createEditorSceneRuntimeMaterialTexturesSection,Cm as createEditorSceneRuntimeMetallicRoughnessSection,Mm as createEditorSceneRuntimePhysicsSection,_m as createEditorSceneRuntimePreviewImageImportPlan,Dm as createEditorSceneRuntimePreviewImportPlan,Om as createEditorSceneRuntimePreviewMainCameraRig,jm as createEditorSceneRuntimePreviewMissingAssetUrlDiagnostic,km as createEditorSceneRuntimePreviewModelImportPlan,Nm as createEditorSceneRuntimePreviewNode,Lm as createEditorSceneRuntimePreviewNodes,xm as createEditorSceneRuntimeRawMiscSection,Gm as createEditorSceneRuntimeRenderingSection,Fm as createEditorSceneRuntimeShadowsSection,Bm as createEditorSceneSerializedMultiInspectorObject,zm as createEditorSceneSerializedMultiInspectorSections,Um as createEditorSceneSerializedMultiObject,$m as createEditorSceneSerializedMultiTransformPatch,Hm as createEditorSceneSerializedObject,Vm as createEditorSceneSerializedPropertyDescriptors,qm as createEditorSceneSourceAssetFromActionInput,Ym as createEditorSceneSourceMaterialAssetForBindingPatch,Wm as createEditorSceneStandardPrefabAssetFieldServices,Km as createEditorSceneStaticShadowArtifactDiagnostic,Jm as createEditorSceneStaticShadowArtifactDraftStore,Xm as createEditorSceneTextureAssetPreview,Zm as createEditorSceneTexturePickerControlOptions,Qm as createEditorSceneTransformBatchPatch,ef as createEditorSceneTransformFromSerializedPath,tf as createEditorSceneTransformInspectorProperties,rf as createEditorSceneTransformInspectorSection,nf as createEditorSceneTransformInspectorSummary,af as createEditorSceneTransformPatch,ca as createEditorSceneTransformPatchFromRuntimePatch,of as createEditorSceneTransformRotationFromDirectionalLightDirection,sf as createEditorTransformMatrixSnapshot,cf as createFpsGameEditorAdapter,df as createFpsGameEditorConfiguredGroundDecalSceneFeature,lf as createFpsGameEditorDeclarativeGroundDecalSceneFeature,uf as createFpsGameEditorGroundDecalSceneFeature,mf as createFpsGameEditorLocalEditorHost,ff as createFpsGameEditorLocalEditorHostManifest,hs as createFpsGameEditorManagedAssetServices,gf as createFpsGameEditorPlayableProjectHostAssembly,pf as createFpsGameEditorProductHostAssembly,hf as createFpsGameEditorProductProjectHostServices,Ef as createFpsGameEditorProductProjectionPreview,bf as createFpsGameEditorProductRenderingRuntime,Sf as createFpsGameEditorProductSceneHostOptions,Es as createFpsGameEditorRuntimeDebugAuthoringClient,yf as createFpsGameEditorSceneSourceServices,If as createFpsGameEditorStandardAssetActionPatch,Pf as createFpsGameEditorStandardProjectRuntime,Af as createFpsGameEditorStandardSceneAssembly,Tf as createIdentityEditorTransform,Rf as createMarkerGameObjectFromSpatialMarker,vf as createMarkerSemanticFrameFromTransform,wf as createMarkerType,Cf as createMaterialAlphaModeOptions,Mf as createMaterialAssetPickerControlOptions,_f as createMaterialAssetSelectorInspectorProperty,Df as createMaterialLightingModelOptions,Of as createObjectBoundSemanticFrame,jf as createPlayableAuthoringClient,$r as createPlayableAuthoringEmptyResponse,V as createPlayableAuthoringJsonResponse,kf as createPlayableBabylonEnvironmentTextureProfile,Nf as createPlayableBabylonOutlineInspectorSection,Lf as createPlayableBabylonOutlineInspectorSeedPatchValue,xf as createPlayableBabylonPlanarShadowPolicyInput,Gf as createPlayableBabylonPlanarShadowPreviewOptions,Ff as createPlayableBabylonRenderingAlphaIndexMigrationPatch,Bf as createPlayableBabylonRenderingCapability,zf as createPlayableBabylonRenderingCapabilityFacade,Uf as createPlayableBabylonRenderingDiagnostics,$f as createPlayableBabylonRenderingPanelState,Hf as createPlayableBabylonWorldRendering,li as createPlayableBridgeCommandAssetAdapter,di as createPlayableBridgeEventPayload,Ao as createPlayableEditorAssetGuid,To as createPlayableEditorAssetId,vs as createPlayableEditorBundledPackageAliasPlan,Rs as createPlayableEditorBundledPackageRoots,Vf as createPlayableEditorDoctorReport,ka as createPlayableEditorEntryController,Ti as createPlayableEditorEntryManifest,Ci as createPlayableEditorEntryModuleLoader,vi as createPlayableEditorEntryModuleUrl,Di as createPlayableEditorEntryPerformanceTracker,Go as createPlayableEditorManagedAssetFacade,Co as createPlayableEditorManagedAssetGuid,Mo as createPlayableEditorManagedAssetId,jt as createPlayableEditorManagedSceneAsset,qf as createPlayableEditorSceneFieldMutationOptions,Yf as createPlayableEditorSceneHierarchyFacade,Wf as createPlayableEditorSceneInspectorMultiObject,Kf as createPlayableEditorSceneInspectorObject,Jf as createPlayableEditorSceneInspectorPropertyPatch,Xf as createPlayableEditorSceneInspectorSections,Zf as createPlayableEditorSceneMarkerGraphFacade,Qf as createPlayableEditorSceneMarkerInspectorSection,eg as createPlayableEditorSceneObjectCommandFacade,tg as createPlayableEditorSceneOutlineInspectorSection,rg as createPlayableEditorSceneSessionFacade,pi as createPlayableEditorSourcePackageAliasPlan,Ts as createPlayableEditorSourceTsconfigPathsPlan,ng as createPlayableForgePlaySaveState,ag as createPlayableGroundDecalDocumentBridge,og as createPlayableGroundDecalDocumentServices,ig as createPlayableGroundDecalInspectorProperties,sg as createPlayableGroundDecalInspectorSection,cg as createPlayableGroundDecalInspectorServices,dg as createPlayableGroundDecalLayerLabel,lg as createPlayableGroundDecalMultiInspectorSection,ug as createPlayableLocalEditorHost,mg as createPlayableLocalEditorLoadingOverlay,ss as createPlayablePlatformAssetDropCache,fg as createPlayablePlatformAssetRegistrationPayload,gg as createPlayablePlatformAssetRegistrationTransportPlan,ys as createPlayableProjectAssetBridgeAdapter,pg as createPlayableProjectAssetCommandHandler,hg as createPrefabInstanceInspectorSection,Eg as createPrefabMaterialBindingPresentationImpact,bg as createPrefabStageEditableProperty,Sg as createPrefabStageShadowDefaultProperties,yg as createReadonlyMaterialSlotListInspectorProperties,Ig as createRuntimeSceneCompiledArtifact,Pg as createSceneMainSourceDriver,Ag as createSceneMainSourceSaveCompanionConfigPayload,Tg as createSceneMaterialBindingPresentationImpact,Rg as createSceneObjectMarkerTargetRef,vg as createSpatialMarkerFromGameObject,wg as createSpatialMarkerGeometryForPresentation,Cg as createSpatialMarkerGeometryForTargetPatch,Mg as createSpatialMarkerGeometryFromGameObject,_g as createSpatialMarkersFromGameObjects,Dg as createStableEditorSceneMaterialAssetGuid,Og as createTexturePickerControlOptions,jg as createUniqueEditorSceneGameObjectDisplayName,kg as createUniqueEditorSceneGameObjectId,Ng as createUniqueEditorSceneId,Lg as createUniqueEditorSceneMaterialAssetId,xg as createUniqueEditorScenePrefabAssetId,Gg as createUniqueMarkerGameObjectId,Fg as createVec3,Bg as defineFpsGameEditorFeature,zg as defineFpsGameEditorProject,ds as definePlayableEditorAssetDatabaseConfig,Ug as degreesToEditorSceneRadians,$g as dehydrateEditorSceneDocumentAssets,Hg as deleteDefaultEditorSceneMaterialAsset,Vg as deleteEditorSceneMarkerGameObject,qg as deleteEditorSceneMaterialAsset,Yg as deleteEditorScenePrefabNode,Wg as deleteMarkerType,Kg as describeEditorSceneRuntimeObject,Jg as detectEditorSceneDirectionalLightOrientationDrift,Qi as detectEditorSceneRuntimeInputDrift,Xg as editorSceneGuidToStableToken,Zg as encodeEditorScenePrefabInstanceIdentitySegment,Qg as enrichEditorSceneDocumentAssets,ep as ensureDefaultEditorSceneMaterialAssets,tp as ensureEditorSceneAuthoringSource,dn as ensureEditorSceneGameObjectGuids,rp as ensureEditorScenePrefabComposition,np as ensurePlayableEditorSceneEnvironmentDefaultsCore,Zn as executePlayableAssetTransportPlan,ap as findEditorSceneGameObject,op as findEditorSceneImageRenderer,ip as findEditorSceneInspectorTextureAsset,sp as findEditorSceneInspectorTextureAssetFromContext,Ee as findEditorSceneLightingDebugNumberFieldConfig,cp as findEditorSceneLightingPreviewLightObject,W as findEditorSceneMaterialAsset,dp as findEditorSceneModelRenderer,lp as findEditorScenePrefabAsset,up as findEditorScenePrefabNode,mp as findEditorScenePrefabStageInspectorItem,fp as findEditorScenePrefabStageStructureItem,Ra as findEditorSceneRuntimeLightTarget,gp as findEditorSceneTransform,pp as flattenEditorScenePrefabStageStructureItems,hp as formatEditorSceneBoundsSummary,he as formatEditorSceneLightingNumber,fa as formatEditorSceneLightingShadowMode,Ep as formatEditorSceneMaterialPreviewNumber,bp as formatEditorSceneMaterialSlotLabel,Sp as formatEditorScenePrefabStageMaterialSlotSummary,yp as formatPlayableEditorDoctorReport,Cs as formatPlayableEditorPackageAliasPlanError,Ip as formatPlayableLocalEditorHostCompatibilityReport,Pp as getArtistMaterialInspectorText,Ap as getBuiltInMarkerType,Tp as getCameraInspectorText,Rp as getDefaultEditorSceneMaterialPreset,wr as getEditorSceneAuthoringSourceRef,vp as getEditorSceneGameObjectWorldTransform,wp as getEditorSceneGameObjectWorldTrsTransform,Cp as getEditorSceneHierarchyItems,Mp as getEditorSceneLightInspectorLanguage,_p as getEditorSceneLightInspectorText,Dp as getEditorSceneMarkerGraphPatchSelection,Op as getEditorSceneMarkerTypeCatalogFromGraph,jp as getEditorSceneMaterialAssetDefaultPreset,kp as getEditorSceneMaterialAssetDisplayMeta,Np as getEditorSceneMaterialAssetDisplayName,Ln as getEditorSceneMaterialShaderDefinition,Lp as getEditorSceneMaterialSlotPrimaryOwnerPath,xp as getEditorScenePrefabStageDescriptor,Gp as getEditorScenePrefabStageProjectionNodeIdForNode,Fp as getEditorScenePrefabStageProjectionNodes,Bp as getEditorScenePrefabStageStructure,zp as getEditorSceneRelationTypeCatalog,Up as getEditorSceneSlotMaterialBinding,$p as getEditorSceneSlotMaterialBindingPath,Hp as getEditorSceneSlotSelectionKey,Vp as getEditorSceneSlotSourceMaterialName,qp as getEditorSceneSlotSourceMaterialProfile,Yp as getNextEditorSceneAssetPlacementPosition,gs as getPlayableEditorAssetKindExtensions,vo as getPlayableEditorAssetPathExtension,Wp as getPlayableForgePlayHistoryResultEventName,Kp as getTopLevelSceneGraphNodeIds,Jp as groundDecalFeature,Br as guidToPlayableEditorAssetStableToken,ps as guidToPlayableEditorManagedAssetStableToken,_s as handleEditorSceneRenderingProfileAuthoringRequest,bs as handlePlayableAuthoringServerRequest,Xp as hasDetectedModelMaterialSlots,Zp as hasEditorSceneAncestorDescendantPair,Qp as hasEditorSceneCamera,eh as hasEditorSceneDescendants,th as hasEditorSceneMaterialAsset,rh as hasEditorScenePrefabForSourceAsset,nh as hasEditorScenePrefabStageRuntimeStructure,ah as hasInvalidEditorSceneCameraRelationships,oh as hasReadonlyEditorSceneMaterialSlotReimportIssues,ih as hslToEditorSceneMaterialPreviewRgb,sh as inspectPlayableEditorHostCompatibilityReport,ch as inspectPlayableLocalEditorHostManifest,dh as installPlayableForgePlayModeBridge,lh as isBlockedPlayableEditorSceneSystemFieldPatch,uh as isBuiltInMarkerType,mh as isCompiledArtifactForSource,fh as isDefaultEditorSceneMaterialAsset,gh as isDefaultReadonlyEditorSceneMaterialAsset,ph as isDeletedRelationEndpoint,hh as isEditorProjectFilePreviewable,Eh as isEditorProjectMediaPreviewable,bh as isEditorSceneArtistMaterialPatchPath,Cn as isEditorSceneAssetPlaceable,Sh as isEditorSceneCameraGameObject,yh as isEditorSceneCameraProjection,Ih as isEditorSceneColor,Ph as isEditorSceneDuplicateMaterialAssetPickerValue,Ah as isEditorSceneFiniteNumber,Fn as isEditorSceneGameObjectShadowParticipationOwner,Th as isEditorSceneGroupLikeGameObject,Rh as isEditorSceneLightDirectionAnglePath,un as isEditorSceneLightGameObject,vh as isEditorSceneLightType,wh as isEditorSceneMarkerGameObject,Ch as isEditorSceneMarkerGraphCommandSupported,Mh as isEditorSceneMaterialAssetReadonlyForInspector,_h as isEditorSceneMaterialBindingNullableStringPath,Dh as isEditorSceneMaterialBindingPath,Oh as isEditorSceneMaterialColorRgb,jh as isEditorSceneMaterialColorRgba,kh as isEditorSceneMatrixTransformComponent,Nh as isEditorSceneNonNegativeFiniteNumber,Lh as isEditorSceneOptionalBoolean,xh as isEditorSceneOptionalNonEmptyString,Gh as isEditorSceneOptionalString,Fh as isEditorScenePositiveFiniteNumber,Bh as isEditorScenePositiveSize,zh as isEditorScenePrefabAsset,Uh as isEditorScenePrefabCoreMaterialOverridePath,$h as isEditorScenePrefabDefaultShadowPath,Hh as isEditorScenePrefabInstance,Vh as isEditorScenePrefabMaterialAssetIdOverridePath,qh as isEditorScenePrefabOverridePath,Yh as isEditorSceneProtectedSystemGameObject,Wh as isEditorSceneProtectedSystemGameObjectId,Kh as isEditorSceneRenderingProfileDraftDirty,Jh as isEditorSceneRenderingProfilePatchPath,Xh as isEditorSceneRootGameObject,Zh as isEditorSceneRootGameObjectId,Qh as isEditorSceneRootTransformPath,eE as isEditorSceneRuntimeMeshLike,tE as isEditorSceneScale,rE as isEditorSceneSelectableHierarchyId,nE as isEditorSceneStringArray,aE as isEditorSceneTextureAsset,oE as isEditorSceneTransformLike,iE as isEditorSceneTrsTransformComponent,sE as isEditorSceneUnitRangeNumber,cE as isEditorSceneVec2,dE as isEditorSceneVec3,lE as isEditorTransformMatrixSnapshot,uE as isEditorTransformTrsSnapshot,mE as isMarkerEndpoint,fE as isMarkerTypeDefinitionValid,gE as isObjectMarkerKind,pE as isPlayableBabylonOutlineInspectorPatchPath,hE as isPlayableBabylonRenderingEnvironmentTextureAsset,EE as isPlayableBabylonRenderingEnvironmentTextureResource,bE as isPlayableEditorSceneGroundDecalProjectionPath,SE as isPlayableGroundDecalEditableColorLayer,yE as isPlayableGroundDecalEditableTextLayer,IE as isPlayableGroundDecalEditableTextureLayer,PE as isPlayableGroundDecalInspectorPatchPath,AE as isPlayableGroundDecalLayerColorAlphaPath,TE as isPlayableGroundDecalLayerColorPath,RE as isPlayableGroundDecalLayerProgressPreviewPercentPath,vE as isPlayableGroundDecalLayerRectPath,wE as isPlayableGroundDecalLayerRotationPath,CE as isPlayableGroundDecalLayerTextColorAlphaPath,ME as isPlayableGroundDecalLayerTextColorPath,_E as isPlayableGroundDecalLayerTextFontSizePath,DE as isPlayableGroundDecalLayerTextValuePath,OE as isPlayableGroundDecalLayerTexturePath,jE as isPlayableGroundDecalLayerTextureTintAlphaPath,kE as isPlayableGroundDecalLayerTextureTintPath,NE as isPlayableGroundDecalLayoutEditableLayer,LE as isPlayableGroundDecalLayoutPatchCompatibleWithDecal,xE as isPlayableGroundDecalProjectEditableLayer,GE as isPlayableGroundDecalRenderingTextureDimensionPath,FE as isPlayableGroundDecalRotationEditableLayer,BE as isPlayableGroundDecalSerializedMultiFieldPath,zE as isPlayableLocalEditorSaveCancellation,UE as isReadonlyEditorSceneMaterialAsset,$E as isRegionMarkerKind,HE as isRelationEndpointValid,VE as isTargetRefValid,qE as isValidEditorAffineTransformMatrix,YE as isVec3ApproximatelyEqual,WE as isVec3Like,KE as loadEditorAssetLibrary,JE as loadEditorProjectFile,XE as loadEditorProjectFiles,Mi as loadPlayableEditorEntryManifest,ZE as loadSceneMainSource,QE as markEditorSceneInspectorPropertiesEffect,eb as markEditorSceneRenderingProfileDraftSaved,Vo as matchPlayableAuthoringRoute,tb as mergeEditorSceneAssetWithLibraryItem,rb as mergeEditorSceneCameraDefaults,nb as mergeEditorSceneLightDefaults,ab as mergeEditorSceneMaterialBindingOverrides,ob as mergeEditorScenePrefabOverrides,ib as mergeEditorSceneSourceMaterialProfile,sb as mergeMarkerTypeDefinition,cb as mergePlayableEditorDoctorReports,db as mergePlayableGroundDecalDefaults,lb as migrateEditorSceneDocumentRenderingAlphaIndex,ub as migrateEditorSceneGameObjectsRenderingAlphaIndex,mb as migrateEditorSceneMarkerGraphMarkersToGameObjects,fb as migrateEditorSceneMaterialAssetShader,gb as mixEditorSceneLightingPreviewColor,Bi as mountEditorRuntimeDebugPanelShell,Ds as mountEditorRuntimeLightingDebugPanel,Os as mountFpsGameEditorLocalEditorEntry,pb as mountFpsGameEditorProductLocalEditor,hb as mountFpsGameEditorProductLocalEditorFromEnvironmentModule,Eb as mountFpsGameEditorStandardLocalEditorFromEnvironmentModule,bb as mountFpsGameEditorStandardProject,Sb as normalizeCompiledArtifacts,yb as normalizeEditorSceneAssetBytesUrl,Ib as normalizeEditorSceneCameraAfterFieldPatch,Pb as normalizeEditorSceneCameraGameObject,Ab as normalizeEditorSceneFieldInspectorValue,Tb as normalizeEditorSceneGameObjectDisplayName,Rb as normalizeEditorSceneHierarchyDocument,vb as normalizeEditorSceneLightDirectionAngleValue,ln as normalizeEditorSceneLightDirectionVector,wb as normalizeEditorSceneLightingAngleDegrees,Cb as normalizeEditorSceneLightingPreviewVec3,Mb as normalizeEditorSceneMarkerGameObject,_b as normalizeEditorSceneMarkerGameObjects,Db as normalizeEditorSceneMarkerGraph,Ob as normalizeEditorSceneMarkerGraphCommand,jb as normalizeEditorSceneMarkerPresentation,kb as normalizeEditorSceneMaterialAssetValue,Nb as normalizeEditorSceneMaterialBindings,Lb as normalizeEditorSceneMaterialPreviewHue,xb as normalizeEditorSceneMaterialSlotOwnerPath,Gb as normalizeEditorScenePlainTransformGameObject,Bn as normalizeEditorScenePlayableInspectorValue,Fb as normalizeEditorScenePrefabAssetComposition,Bb as normalizeEditorScenePrefabAssetFieldValue,zb as normalizeEditorScenePrefabIdentifierPart,Ub as normalizeEditorScenePrefabStageOwnerNodePath,$b as normalizeEditorScenePrimitiveShape,Hb as normalizeEditorSceneRootGameObject,Vb as normalizeEditorSceneRootTransformDocument,ba as normalizeEditorSceneRuntimeLightBinding,qb as normalizeEditorSceneRuntimePreviewProjectUrlPath,Yb as normalizeEditorSceneShadowAuthoringSource,Wb as normalizeEditorSceneSystemLightGameObject,Kb as normalizeMarkerBoxSize,Jb as normalizeMarkerNodeKind,fs as normalizePlayableEditorAssetCodeKey,ms as normalizePlayableEditorAssetDisplayName,Ro as normalizePlayableEditorAssetKind,Xb as normalizePlayableEditorSceneGroundDecalGameObject,Zb as normalizePlayableForgePlayCommandName,Qb as normalizePlayableFsPath,eS as normalizePlayableGroundDecalAlphaValue,tS as normalizePlayableGroundDecalColorValue,rS as normalizePlayableGroundDecalFontSizeValue,nS as normalizePlayableGroundDecalInspectorFieldValue,aS as normalizePlayableGroundDecalLayoutLayerPatch,oS as normalizePlayableGroundDecalLayoutPatchValue,iS as normalizePlayableGroundDecalLayoutRect,sS as normalizePlayableGroundDecalProgressPreviewPercentValue,ta as normalizePlayableGroundDecalRotationDegrees,cS as normalizePlayableGroundDecalTextureDimension,dS as normalizePlayableGroundDecalUiScaleAfterFieldPatch,lS as normalizePlayableGroundDecalUiScales,uS as normalizePlayableGroundDecalUiScalesForCommand,ja as normalizePlayablePlatformAssetPayload,Wn as normalizePlayablePortableAssetPath,mS as parseEditorSceneDuplicateMaterialAssetValue,bt as parseEditorSceneLightingDebugNumberDraft,fS as parseEditorSceneMaterialAssetFieldPath,gS as parseEditorSceneMaterialAssetSelectionId,pS as parseEditorSceneModelAssetSelectionId,Ri as parsePlayableEditorEntryManifest,hS as parsePlayableGroundDecalLayerPatchPath,ES as patchEditorSceneDirectionalLightOrientationAngles,bS as patchEditorSceneGameObjectByField,mn as patchEditorSceneGameObjectField,SS as patchEditorSceneGameObjectFieldsMany,yS as patchEditorSceneGameObjectMaterialBinding,IS as patchEditorSceneGameObjectTransform,PS as patchEditorSceneGameObjectsField,AS as patchEditorSceneMaterialAsset,TS as patchEditorSceneMaterialAssetField,RS as patchEditorScenePrefabAsset,vS as patchEditorScenePrefabAssetField,wS as patchEditorScenePrefabOverride,is as patchEditorSceneRuntimeLights,CS as patchMarkerGameObjectFromSpatialMarker,MS as patchMarkerGameObjectTransformComponents,_S as patchPlayableEditorSceneDirectionalLightAngleField,DS as patchPlayableEditorSceneGameObjectFieldWithServices,OS as patchPlayableEditorSceneGameObjectsFieldWithServices,jS as patchPlayableEditorSceneGroundDecalInspectorField,kS as patchPlayableEditorSceneGroundDecalKind,NS as patchPlayableEditorSceneGroundDecalLayout,LS as patchPlayableEditorSceneGroundDecalRenderingDimension,xS as patchPlayableGroundDecalLayer,Do as planPlayableEditorAssetRegistrationCore,Oo as planPlayableEditorAssetUnregistrationCore,GS as playableGroundDecalColorsEqual,FS as playableGroundDecalRectsEqual,BS as postPlayableAuthoringJson,zS as postPlayableForgePlayEvent,US as preparePlayableEditorSceneDocument,$S as pruneEditorSceneArtistMaterialProfile,HS as radiansToEditorSceneDegrees,VS as readArtistMaterialInspectorLanguage,qS as readArtistMaterialTexturePickerValue,YS as readCompiledRuntimeSceneArtifact,WS as readEditorProjectFileContent,KS as readEditorProjectFileSnapshot,JS as readEditorSceneAssetMaterialSlots,Ct as readEditorSceneDirectionalLightAngles,Yt as readEditorSceneDirectionalLightAnglesExact,XS as readEditorSceneDirectionalLightOrientation,ZS as readEditorSceneGameObjectAlphaIndex,QS as readEditorSceneGameObjectLocalTransform,ey as readEditorSceneGameObjectRenderingGroupId,ty as readEditorSceneInspectorColor,ry as readEditorSceneInspectorShadowSettings,ny as readEditorSceneInspectorVec3,ay as readEditorSceneLightType,nr as readEditorSceneLightingDebugColorSnapshotField,Le as readEditorSceneLightingDebugNumberSnapshotField,ua as readEditorSceneLightingDebugText,ma as readEditorSceneLightingDebugTooltipText,oy as readEditorSceneLightingPreviewColor,iy as readEditorSceneLightingPreviewDirectionalLight,sy as readEditorSceneLightingPreviewFiniteNumber,cy as readEditorSceneLightingPreviewHemisphericLight,an as readEditorSceneLightingProjectedLengthMultiplier,dy as readEditorSceneMaterialBindingConfig,ly as readEditorSceneMaterialSlotBindingSlotId,Yn as readEditorSceneMaterialSlotDescriptor,_r as readEditorSceneNodeKind,uy as readEditorScenePhysicsParam,my as readEditorScenePrefabMaterialOverrideBinding,fy as readEditorScenePrefabNodeChildren,gy as readEditorScenePrefabNodes,py as readEditorScenePrefabOverrideMaterialPath,Nn as readEditorScenePrefabRootNodeId,hy as readEditorScenePrefabStageMaterialSlot,Ey as readEditorSceneRuntimeArrayLength,by as readEditorSceneRuntimeArrayLengthFromMethod,Sy as readEditorSceneRuntimeBoolean,yy as readEditorSceneRuntimeBounds,Iy as readEditorSceneRuntimeClassName,Py as readEditorSceneRuntimeIsEnabled,ts as readEditorSceneRuntimeLightBinding,Ay as readEditorSceneRuntimeNumber,Ty as readEditorSceneRuntimePreviewAssetId,Ry as readEditorSceneRuntimePreviewAssetKind,vy as readEditorSceneRuntimePreviewAssetMetadata,wy as readEditorSceneRuntimeProjectionAssetId,Cy as readEditorSceneRuntimeProjectionAssetMetadata,My as readEditorSceneRuntimeString,_y as readEditorSceneRuntimeValue,Dy as readEditorSceneTextureUrl,Oy as readEditorSceneTransformVector,jy as readEditorTransformPosition,ky as readFpsGameEditorPlatformAssetLookup,Ny as readMarkerConfigTarget,Ly as readMarkerGameObjectScale,xy as readMarkerTypeDefinition,Gy as readMarkerTypeOverrides,ai as readPlayableAssetImportInput,Hr as readPlayableAssetRegistrationPlanInput,Fy as readPlayableAssetRegistrationResultRecord,ni as readPlayableAssetUnregistrationPlanInput,Ko as readPlayableAuthoringPayloadPathFromCommand,qe as readPlayableBridgeRequestId,_o as readPlayableEditorManagedAssetScale,By as readPlayableForgePlayHistoryOperationOptions,zy as readPlayableForgePlayRequestId,Uy as readPlayableGroundDecalFiniteNumber,$y as readPlayableGroundDecalPositiveFiniteNumber,Mr as readPlayablePlatformAssetDropPoint,Hy as readPlayablePlatformAssetExternal,Vy as readPlayablePlatformAssetKind,qy as readPlayablePlatformAssetName,Yy as readPlayablePlatformAssetPath,Wy as readPlayablePlatformAssetPlacement,Cr as readPlayablePlatformAssetRecord,fn as readPlayablePlatformAssetRecords,Ky as readPlayablePlatformAssetUrl,Jy as readPlayablePlatformRawAssetId,oi as readPlayableSceneNodeCreateInput,ii as readPlayableSceneNodePatchInput,Er as readPlayableSceneNodeRemoveInput,Xy as readRawEditorSceneGameObjectLocalTransform,Zy as readSceneMainSourceRenderingConfig,Qy as readSceneMainSourceSaveCompanionConfigs,eI as readSceneMainSourceStaticShadowsArtifact,tI as readSpatialMarkerTransformPosition,rI as readSpatialMarkerTransformRotation,nI as readSpatialMarkerTransformScale,ha as readStoredEditorSceneLightingDebugLanguage,ga as readStoredEditorSceneLightingDebugOpen,aI as rebaseEditorScenePrefabMarkerConfig,oI as rebaseEditorScenePrefabMarkerTarget,iI as reconcileEditorSceneMaterialSlotReimportBindings,sI as reduceEditorSceneDocumentMutation,cI as reduceEditorSceneMarkerGameObjectCommand,dI as reduceEditorSceneMarkerGraph,lI as reducePlayableEditorSceneDocumentCore,cs as registerFpsGameEditorStandardAuthoringCommands,uI as registerPlayablePlatformAsset,mI as registerPlayablePlatformAssetIfNeeded,fI as renameEditorScenePrefabAsset,gI as renameEditorScenePrefabNode,pI as reparentEditorScenePrefabNode,hI as replaceEditorSceneMaterialAsset,EI as replaceEditorScenePrefabAsset,bI as replacePlayableEditorSceneGroundDecalUi,SI as resetEditorSceneRenderingProfileDraft,yI as resolveDefaultEditorSceneMaterialAssetDeleteState,II as resolveEditorProjectFileExtension,PI as resolveEditorProjectFileLanguage,AI as resolveEditorProjectMediaSource,TI as resolveEditorProjectMediaSupport,RI as resolveEditorRuntimeAssetFetchUrl,jr as resolveEditorSceneArtistMaterialBinding,ns as resolveEditorSceneArtistMaterialRuntimePreview,as as resolveEditorSceneArtistMaterialSlotProfiles,vI as resolveEditorSceneAssetAvailabilityKey,wI as resolveEditorSceneAssetLibraryItemRelativePath,CI as resolveEditorSceneEffectiveShadowMode,MI as resolveEditorSceneFieldSchema,_I as resolveEditorSceneGameObjectRendering,DI as resolveEditorSceneGameObjectRuntimeEntityIds,OI as resolveEditorSceneGameObjectShadowSettings,jI as resolveEditorSceneLightingPreviewProfile,kI as resolveEditorSceneMaterialAssetDeleteState,NI as resolveEditorSceneMaterialAssetIntegrity,LI as resolveEditorSceneMaterialRuntimeKind,xI as resolveEditorSceneMaterialSlotReimportDiff,kn as resolveEditorScenePrefabInstanceEffectiveOverrides,GI as resolveEditorScenePrefabInstanceMarkers,FI as resolveEditorScenePrefabInstanceRelation,BI as resolveEditorScenePrefabSourceAssetId,zI as resolveEditorScenePrefabSourceSessionState,UI as resolveEditorScenePrefabStageMarkers,$I as resolveEditorScenePrefabStageMaterialDropTarget,HI as resolveEditorScenePrefabStageMaterialOverrideTarget,VI as resolveEditorScenePrefabStagePreviewTarget,qI as resolveEditorSceneProjectedMaterialRuntimeKind,YI as resolveEditorSceneRenderingAlphaIndexPresetValueMigration,WI as resolveEditorSceneRootContainerId,KI as resolveEditorSceneRuntimePreviewAssetUrl,JI as resolveEditorSceneRuntimePreviewAssetUrlCandidate,XI as resolveEditorShadowPlan,ZI as resolveEditorTransformPreserveWorldPolicy,QI as resolveFpsGameEditorFeatureSceneContribution,eP as resolveFpsGameEditorGroundDecalFeatureConfig,tP as resolveFpsGameEditorStaticProject,rP as resolveMarkerGeometryKindForPresentation,nP as resolveMarkerNodeKindForType,aP as resolvePlayableBabylonPlanarShadowPolicy,oP as resolvePlayableBabylonRenderingEnvironmentTextureDiagnostic,iP as resolvePlayableBabylonRenderingEnvironmentTextureResource,zr as resolvePlayableEditorAssetIdentity,sP as resolvePlayableGroundDecalImageRect,cP as resolvePlayableGroundDecalMultiInspectorTargetIds,dP as resolvePlayableGroundDecalUiInspectorScale,lP as resolvePlayableGroundDecalUniformScaleFromVec3,Qn as resolvePlayablePlatformAssetRegistrationResult,uP as rewriteMarkerRelationEndpoint,mP as rewriteMarkerRelationIds,fP as rewriteMarkerTargetRef,gP as rewriteSpatialMarkerGeometryTargetRefs,pP as rewriteSpatialMarkerTargetRefs,hP as rgbToEditorSceneMaterialPreviewHsl,EP as rotateVec3ByEuler,bP as roundEditorSceneInspectorNumber,ra as roundEditorSceneLightingNumber,SP as roundPlayableGroundDecalFieldValue,yP as runPlayableAuthoringCommand,IP as sanitizeEditorSceneGameObjectId,PP as sanitizeEditorSceneId,AP as sanitizeEditorSceneMaterialAssetIdPart,Ca as sanitizeEditorSceneRuntimeDirectionalLight,wa as sanitizeEditorSceneRuntimeHemisphericLight,va as sanitizeEditorSceneRuntimeLightingPatch,TP as sanitizeMarkerGameObjectId,fr as sanitizePlayableEditorManagedAssetName,RP as saveSceneMainSource,vP as scaleEditorSceneLightingPreviewColor,wP as selectEditorScenePrefabNode,CP as serializeEditorSceneStaticShadowArtifact,Wo as serializePlayableAuthoringFileContent,MP as setEditorScenePrefabNodeMarker,_P as setEditorScenePrefabNodeTransform,DP as setEditorSceneRenderingProfileDraftConfig,OP as setEditorSceneRenderingProfileDraftError,jP as shallowEditorSceneGameObjectsEqual,kP as shouldApplyMarkerDefaultScaleForKind,NP as shouldApplyMarkerDefaultScaleOnPresentationChange,LP as shouldPreserveTransformForMarkerGeometry,xP as splitEditorSceneFieldPath,GP as splitMaterialSlotBindingFieldPath,FP as stripKnownPlayableAssetExtension,Ft as stripKnownPlayableEditorAssetExtension,BP as sumEditorSceneRuntimeMeshNumbers,zP as summarizeSaveResult,UP as syncEditorSceneDirectionalLightOrientationAfterTransformPatch,$P as syncEditorSceneDirectionalLightTransformRotationAfterDirectionPatch,HP as syncEditorSceneMarkerGraph,VP as syncEditorSceneMarkerGraphDocument,qP as syncEditorScenePrefabRootNodeFields,YP as toEditorLocalTransformFromWorld,WP as toEditorSceneInspectorLabel,KP as toEditorSceneInspectorSafeValue,JP as toEditorSceneLocalTransformForParent,XP as toEditorSceneLocalTransformFromWorld,ZP as toEditorSceneLocalTrsTransformForParent,QP as toEditorScenePreserveWorldLocalTransformForParent,rs as toEditorSceneRuntimeLightingPatches,eA as toEditorSceneTransformComponent,tA as toEditorSceneTransformSnapshot,ci as toPlayableBridgeCommandError,us as toPlayableEditorAssetImportName,rA as toneMapEditorSceneLightingPreviewColor,nA as toneMapEditorSceneLightingPreviewNumber,aA as transformEditorSceneMaterialPreviewBaseColor,oA as tryCreateEditorSceneTransformComponent,iA as tryCreateEditorSceneTransformSnapshot,ya as updateEditorSceneLightingDebugSnapshotColorField,Pa as updateEditorSceneLightingDebugSnapshotDirection,Ia as updateEditorSceneLightingDebugSnapshotEnabled,ar as updateEditorSceneLightingDebugSnapshotFromAngles,Sa as updateEditorSceneLightingDebugSnapshotNumberField,sA as updateEditorSceneMarkerGameObject,cA as updateMarkerType,dA as validateAndNormalizeEditorSceneMaterialAssetField,zn as validateEditorSceneFieldInspectorValue,lA as validateEditorSceneGroupSelection,uA as validateEditorSceneHierarchyMove,mA as validateEditorSceneMaterialAssetFieldValue,os as validateEditorSceneMaterialGlslColorBindings,fA as validateEditorScenePrefabAssetFieldValue,gA as validateEditorSceneReparent,pA as validatePlayableGroundDecalInspectorField,hA as validateSceneMainDocument,EA as waitForPlayableLocalEditorPaint,bA as waitForPlayableMilliseconds,SA as withEditorSceneMarkerGraph,yA as writeMarkerTypeOverrides,IA as writePlayableAuthoringFile,Ea as writeStoredEditorSceneLightingDebugLanguage,pa as writeStoredEditorSceneLightingDebugOpen};
|
|
Binary file
|
|
Binary file
|