@volter/game-editor 0.5.115 → 0.5.117
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/BUNDLED_NOTICES +22 -22
- package/catalog/entries/blender.json +2 -2
- package/catalog/entries/music.json +2 -2
- package/dist/.vite/manifest.json +2182 -2182
- package/dist/assets/{AssetBudgetPanel-B1D3FSip.js → AssetBudgetPanel-C3ktrntz.js} +3 -3
- package/dist/assets/{AudioViewer-B9UV_yI6.js → AudioViewer-DZdZAy4A.js} +1 -1
- package/dist/assets/{CanvasBoardDocument-CITYZW5X.js → CanvasBoardDocument-DsCSciSC.js} +1 -1
- package/dist/assets/{CanvasSceneViewport-DlPDejYi.js → CanvasSceneViewport-DP0dTNXv.js} +1 -1
- package/dist/assets/{ColorInput-Dm2qIpBf.js → ColorInput-BN6Sksjk.js} +1 -1
- package/dist/assets/{ColorPicker-B2pwoKdl.js → ColorPicker-B76LmE6h.js} +1 -1
- package/dist/assets/{EntityModelDocument-BeJlMgH9.js → EntityModelDocument-hrUqEuvd.js} +1 -1
- package/dist/assets/{EnvironmentAssetDocument-DsQk7rsJ.js → EnvironmentAssetDocument-BhAbBL9x.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-CiFteySa.js → GameplaySessionTimeline-O0K6MuzG.js} +1 -1
- package/dist/assets/{ImageViewer-Bc7mJQsD.js → ImageViewer-BBx46cOu.js} +1 -1
- package/dist/assets/InspectorObjectPreview-cEL6iskI.js +1 -0
- package/dist/assets/{JsonAssetDocument-1Wzq61nI.js → JsonAssetDocument-ZUCXmUBz.js} +1 -1
- package/dist/assets/{LiveModuleDocument-LG1GPVVk.js → LiveModuleDocument-DuY9SmFp.js} +1 -1
- package/dist/assets/{LutAssetDocument-BUxQZNdF.js → LutAssetDocument-DjxOl21m.js} +1 -1
- package/dist/assets/{ModelAssetDocument-c3FPG6mL.js → ModelAssetDocument-DwbuSNGD.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-3rKjb-KV.js → NonThreeAuthoringBootstrap-CYHVR-Hz.js} +1 -1
- package/dist/assets/{Object3DDocumentToolbar-DS9cX8iy.js → Object3DDocumentToolbar-BDHutCDl.js} +1 -1
- package/dist/assets/Object3DDocumentViewport-Dy6oCsqf.js +2 -0
- package/dist/assets/{Object3DPreview-CWatzqki.js → Object3DPreview-Dr9nj_z2.js} +1 -1
- package/dist/assets/{OnlineAssetDetail-C6CRSxnt.js → OnlineAssetDetail-BG5XJ3Un.js} +1 -1
- package/dist/assets/{PlayBar-C18rsyw9.js → PlayBar-DUI9-ZXC.js} +1 -1
- package/dist/assets/{QuarksAssetDocument-BZDOHzG0.js → QuarksAssetDocument-DTiRvQPL.js} +1 -1
- package/dist/assets/{ReactCanvasControls--KQb_SK3.js → ReactCanvasControls-XnnzrwCo.js} +1 -1
- package/dist/assets/{RootSelectionOverlay-BCU5GgQQ.js → RootSelectionOverlay-FMiu-poB.js} +1 -1
- package/dist/assets/{ShaderAssetDocument-oDIkdK7s.js → ShaderAssetDocument-4tRvE91q.js} +1 -1
- package/dist/assets/{ShadowEditor-WGB0tHPa.js → ShadowEditor-BpVAEirI.js} +1 -1
- package/dist/assets/{SourceAssetViewer-D_GE0rCS.js → SourceAssetViewer-3P0858z5.js} +1 -1
- package/dist/assets/{StageHost-NFV3WCDE.js → StageHost-7UErMg6u.js} +2 -2
- package/dist/assets/{StoryPreviewMount-DnMKMBSe.js → StoryPreviewMount-BBlVAlRY.js} +1 -1
- package/dist/assets/{ThreeBoardDocument-CuXapmaZ.js → ThreeBoardDocument-DK53_YAX.js} +2 -2
- package/dist/assets/{ThreeIsolationSceneContent-98z9Ag8g.js → ThreeIsolationSceneContent-qdUEzAND.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-DT8_iWYn.js → ToolObject3DPreview-DsWlZd8B.js} +1 -1
- package/dist/assets/{Toolbar-Bv21kwZW.js → Toolbar-whqYcmiS.js} +1 -1
- package/dist/assets/{TransientHint-CcZwHxss.js → TransientHint-BKaDeHXM.js} +1 -1
- package/dist/assets/{VideoViewer-DXWnZmX7.js → VideoViewer-CTEVUoaa.js} +1 -1
- package/dist/assets/{ViewportShadingMenu-B4jqMabt.js → ViewportShadingMenu-DtRQHmb8.js} +1 -1
- package/dist/assets/{active-ingest-DQnefOtw.js → active-ingest-DutfA1v2.js} +2 -2
- package/dist/assets/{animation-clock-DGRe_EBy.js → animation-clock-DdjDOr9_.js} +1 -1
- package/dist/assets/{animation-mixers.service-4_x2MyMy.js → animation-mixers.service-BowFSgLp.js} +1 -1
- package/dist/assets/{animation-timeline.utility-CzttcSld.js → animation-timeline.utility-CgUv6Sm7.js} +1 -1
- package/dist/assets/{asset-budget-asset.menu-B3svGVJy.js → asset-budget-asset.menu-BpfhGqPG.js} +1 -1
- package/dist/assets/{asset-budget.action-CIPp1Kbs.js → asset-budget.action-DhpViDZH.js} +1 -1
- package/dist/assets/{asset-budget.document-C0u6VPAs.js → asset-budget.document-d83SOYMm.js} +1 -1
- package/dist/assets/{asset-budget.menu-D5S1NFu_.js → asset-budget.menu-XBWaxw1e.js} +1 -1
- package/dist/assets/{asset-editor-persistence-1DuP68UZ.js → asset-editor-persistence-C57Ygr55.js} +1 -1
- package/dist/assets/{asset-loaders-BpBQ4S5E.js → asset-loaders-C84nx9Q-.js} +1 -1
- package/dist/assets/{asset-preview-DAM7CurX.js → asset-preview-CfITAp9I.js} +1 -1
- package/dist/assets/{audio-unlock.service-CYMbHTwY.js → audio-unlock.service-DnnTTLZ7.js} +1 -1
- package/dist/assets/{audio.utility-htR2ypYm.js → audio.utility-kVrU3d_Z.js} +1 -1
- package/dist/assets/autoplay.service-S6u51gjV.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-BqOw9TQM.js → babylon-authoring-adapter-CKIK8_RI.js} +1 -1
- package/dist/assets/{binding-resolver-BHrecg84.js → binding-resolver-Bw9NHH6D.js} +2 -2
- package/dist/assets/{blender-emscripten-engine-CRz1C2s0.js → blender-emscripten-engine-BYbXicWU.js} +1 -1
- package/dist/assets/{blender-node-editor.document-CuN522gu.js → blender-node-editor.document-CpmEWYqS.js} +1 -1
- package/dist/assets/{blender-properties-tab-BdAjZYR5.js → blender-properties-tab-BqzNQYYj.js} +1 -1
- package/dist/assets/blender-runtime-host-Ce-6lPKR.js +7 -0
- package/dist/assets/{blender-runtime-skin-Drd6uuSx.js → blender-runtime-skin-Bmj6NwqI.js} +47 -47
- package/dist/assets/{blender-runtime.document-Dewj97-q.js → blender-runtime.document-fQm8jfOR.js} +1 -1
- package/dist/assets/{blender-screenshot.menu-B8ta-oox.js → blender-screenshot.menu-D6z6gPx2.js} +1 -1
- package/dist/assets/{blender-timeline.document-CdEQhWMj.js → blender-timeline.document-COcMnV4P.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-B1INC-GV.js → blender-uv-editor.document-CCldDOrb.js} +1 -1
- package/dist/assets/{blender-version.status-BMADjyt_.js → blender-version.status-CQcek3bs.js} +1 -1
- package/dist/assets/{blender-wali-engine-BmVwcYs-.js → blender-wali-engine-DfoYluoA.js} +1 -1
- package/dist/assets/{blender.command-DnmqW8Bu.js → blender.command-nx7fbZaN.js} +1 -1
- package/dist/assets/{board-guides-kYCRVwEV.js → board-guides-CJhpaM4Y.js} +1 -1
- package/dist/assets/{bridge.command-D1r5-kar.js → bridge.command-CM2oB0DL.js} +3 -3
- package/dist/assets/{browserAll-CvWuiZn2.js → browserAll-YVE01_g6.js} +1 -1
- package/dist/assets/{build-player.document-OKnKqTGS.js → build-player.document-ZuyCnu8R.js} +1 -1
- package/dist/assets/{build-profiles.document-OXa0FsfK.js → build-profiles.document-DFsJ688E.js} +1 -1
- package/dist/assets/{build-progress.status-DAJq9ryc.js → build-progress.status-B5tu0uSU.js} +1 -1
- package/dist/assets/{build-session-DzAEpdAA.js → build-session-HBNiEqfG.js} +1 -1
- package/dist/assets/{build.action-bhovwspp.js → build.action-B1HcItm2.js} +1 -1
- package/dist/assets/{build.command-XnA4Bggv.js → build.command-JnzmVI1I.js} +1 -1
- package/dist/assets/{build.header-DpZysa4P.js → build.header-Scr4Om6R.js} +1 -1
- package/dist/assets/{build.menu-CTgYkbnj.js → build.menu-B27qwD29.js} +1 -1
- package/dist/assets/{build.service-BEQ9iSZl.js → build.service-j05ziYI4.js} +1 -1
- package/dist/assets/{camera-dXNbJ9es.js → camera-D7hXuRtx.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-XtZAlogF.js → camera-runtime.inspector-DaCMA860.js} +1 -1
- package/dist/assets/{canvas-design-mount-C_F7MPLN.js → canvas-design-mount-Bk-EnFSI.js} +3 -3
- package/dist/assets/{canvas-entry-runtime-CJ3DEkVJ.js → canvas-entry-runtime-BvUkzblV.js} +2 -2
- package/dist/assets/{canvas-preview-frames-CRuPvOnE.js → canvas-preview-frames-DxAJx35P.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-BUGiTZws.js → canvas-story-capture.service-Dcv8Ibb8.js} +2 -2
- package/dist/assets/{capability-coverage-Q2P1rSMp.js → capability-coverage-K_0BAIJU.js} +1 -1
- package/dist/assets/{collaboration-presence-BHBJ5oc2.js → collaboration-presence-CneIKoPa.js} +1 -1
- package/dist/assets/{collider-Bxv5_8oO.js → collider-BccZNdIw.js} +1 -1
- package/dist/assets/{component-board.service-DB9Yo5EQ.js → component-board.service-Cs4o_Pmv.js} +2 -2
- package/dist/assets/{component-board.service-BMdb3NdK.js → component-board.service-CvzV2CKA.js} +2 -2
- package/dist/assets/{component-board.service-CsbFO2-S.js → component-board.service-D1jNfabq.js} +2 -2
- package/dist/assets/{component-contracts.service-BNgAOg8r.js → component-contracts.service-V1W-u2S9.js} +1 -1
- package/dist/assets/{component-instance-root-mlam7I49.js → component-instance-root-h1Rflrqv.js} +1 -1
- package/dist/assets/{component-verbs.command-YfOFMYsC.js → component-verbs.command-xKxDnGqP.js} +1 -1
- package/dist/assets/{component-verbs.service-BVO2Cyzv.js → component-verbs.service-CWbkFEcM.js} +1 -1
- package/dist/assets/{config-C1oxBoOl.js → config-DX3-CpHt.js} +2 -2
- package/dist/assets/{configurations-B5NMntJY.js → configurations-Cs8SnMrq.js} +1 -1
- package/dist/assets/{connection.status-BiRm-ePl.js → connection.status-Dn0RTNEw.js} +1 -1
- package/dist/assets/{constraints.inspector-uI2zEX4p.js → constraints.inspector-Cpy5rhJS.js} +1 -1
- package/dist/assets/{content-bounds-BRxD4jMU.js → content-bounds-DVWAzm9f.js} +1 -1
- package/dist/assets/{contract-system-adapters-D0uU7TTW.js → contract-system-adapters-qNph3R6b.js} +1 -1
- package/dist/assets/{coverage.service-qJjMTH_v.js → coverage.service-ByfW9X4H.js} +1 -1
- package/dist/assets/{create-runtime-DlahVBnC.js → create-runtime-CWPvbU_l.js} +1 -1
- package/dist/assets/{curve-D26QfziO.js → curve-C3wndxn2.js} +1 -1
- package/dist/assets/{data-asset-D0VD9Tya.js → data-asset-C2Z6itFZ.js} +1 -1
- package/dist/assets/{data-ref-BCvMvvUH.js → data-ref-Ce8LtHGi.js} +1 -1
- package/dist/assets/{debug-bridge-BTc8Wu8X.js → debug-bridge-Bmj0Li8p.js} +1 -1
- package/dist/assets/{debug-registry-BVNyR7Oo.js → debug-registry-D-FgdH_H.js} +1 -1
- package/dist/assets/{deferred-ingest-play-Dsicru08.js → deferred-ingest-play-B2wgrovp.js} +2 -2
- package/dist/assets/{design-time-canvas-mount-BsqTyvp-.js → design-time-canvas-mount-DOkVlNVk.js} +2 -2
- package/dist/assets/{design-time-layers-EyMYc5cn.js → design-time-layers-M6o2CVXg.js} +1 -1
- package/dist/assets/{design-time-mount.service-CJZsf2x6.js → design-time-mount.service-CVFa4k-2.js} +2 -2
- package/dist/assets/{design-time-mount.service-BDPpLDWt.js → design-time-mount.service-DFHRGai1.js} +2 -2
- package/dist/assets/{design-time-react-mount-DuK9Qwiu.js → design-time-react-mount-BuIgYRLs.js} +1 -1
- package/dist/assets/{document-preview-three-BqVCMO2t.js → document-preview-three-CSJT6-30.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-DpekPTht.js → dom-authoring-adapter-BijfMbzl.js} +1 -1
- package/dist/assets/{draco3d-BYQB-3RT.js → draco3d-B69Ry2Se.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-CKwwpS_A.js → edit-mode-audio.service-DR6XWs99.js} +1 -1
- package/dist/assets/{edit-mode-authoring-C8rX2VgE.js → edit-mode-authoring-1VsqGvER.js} +1 -1
- package/dist/assets/{edit-mode-networking.service-BtnjAu0f.js → edit-mode-networking.service-Cc2mfOwp.js} +1 -1
- package/dist/assets/{editor-api-LYwgjP9l.js → editor-api-CcAdYERA.js} +1 -1
- package/dist/assets/{editor-layers-DZM820Rd.js → editor-layers-Bwn6K1Ky.js} +1 -1
- package/dist/assets/{editor-shell-store-CFlfnY8x.js → editor-shell-store-Bw3pK03h.js} +1 -1
- package/dist/assets/{entity-object-DfdMnbKr.js → entity-object-gqyR3fgx.js} +1 -1
- package/dist/assets/{extend-BfsWf5Gi.js → extend-CjPoJR18.js} +1 -1
- package/dist/assets/{fork-menu-apq3DLsr.js → fork-menu-YR2i30zs.js} +1 -1
- package/dist/assets/{frame-debugger-store-kdkRLYr1.js → frame-debugger-store-4_X7-Ujc.js} +1 -1
- package/dist/assets/{game-contract-seams-J9cSYLjV.js → game-contract-seams-Bx5G1BLD.js} +1 -1
- package/dist/assets/{game-css-scope-transform-B8bLFPEm.js → game-css-scope-transform-Drjn-mgv.js} +1 -1
- package/dist/assets/{game-document.service-D22hADmj.js → game-document.service-DBdUvKzX.js} +1 -1
- package/dist/assets/{game-eval.command-CG4H54H-.js → game-eval.command-D-na3sdH.js} +1 -1
- package/dist/assets/{game-module-access-CGRUl9Li.js → game-module-access-CSPO6YZ9.js} +1 -1
- package/dist/assets/{game-network-sY7WtOsz.js → game-network-CLJ7qTbE.js} +3 -3
- package/dist/assets/{gameplay-export-rmlLyzEe.js → gameplay-export-sJ3B_j4Z.js} +1 -1
- package/dist/assets/{gameplay-replay-cNxRDe_X.js → gameplay-replay-DZdbHEST.js} +1 -1
- package/dist/assets/{gameplay.command-CJ-GLH-C.js → gameplay.command-D9nckU6s.js} +1 -1
- package/dist/assets/{generation-jobs-BNJJLa5c.js → generation-jobs-DupRqWi-.js} +1 -1
- package/dist/assets/{generation.service-C0dZUNkB.js → generation.service-CQNhtOYa.js} +1 -1
- package/dist/assets/{generations-BjkkBJKH.js → generations-nBks8sue.js} +1 -1
- package/dist/assets/{generations.status-DUHCv39g.js → generations.status-DUTDEbmm.js} +1 -1
- package/dist/assets/{hierarchy-marks-DNv34RDe.js → hierarchy-marks-CO_ecrau.js} +1 -1
- package/dist/assets/{hosted-asset-materialization-_Q31okW0.js → hosted-asset-materialization-u30qTmDc.js} +1 -1
- package/dist/assets/{index-DJnAruk-.js → index-6bVz1BMz.js} +1 -1
- package/dist/assets/{index-DU1_x4Fy.js → index-B20JTxwn.js} +1 -1
- package/dist/assets/{index-Cz2M0Ewz.js → index-Bs-JJBoj.js} +2 -2
- package/dist/assets/{index-DIZt6p_N.js → index-D1uSj66l.js} +1 -1
- package/dist/assets/{index-Ca1csBI5.js → index-DhhhiiLJ.js} +1 -1
- package/dist/assets/{index-BBJS-iXi.js → index-Dt5jm3bx.js} +7 -7
- package/dist/assets/{index-C6M4Z2h1.js → index-cdOfmiK4.js} +1 -1
- package/dist/assets/{index-BLWywZyw.js → index-p2Kb3X1e.js} +1 -1
- package/dist/assets/{index-treuNUTo.js → index-ywphVnYA.js} +1 -1
- package/dist/assets/{inference-diagnostics-DTcvxJSE.js → inference-diagnostics-B32cN1KY.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-BjhjFoz2.js → ingest-boot-viewport-Bs2ZgRaJ.js} +1 -1
- package/dist/assets/{ingest-siblings-Dq8aepYm.js → ingest-siblings-DwzuubQ3.js} +1 -1
- package/dist/assets/{ingest-source-persistence-BU1UHwYR.js → ingest-source-persistence-CMpSUZnL.js} +1 -1
- package/dist/assets/{ingest.service-Cw84Vrna.js → ingest.service-BjmjdEXH.js} +1 -1
- package/dist/assets/{inspect-kgW5_-pM.js → inspect-Br6bvKYF.js} +1 -1
- package/dist/assets/instances.command-CS1LShqz.js +1 -0
- package/dist/assets/{json-history-resource-WyAPanbc.js → json-history-resource-_clmB965.js} +1 -1
- package/dist/assets/{layered-pick-c_oHJY1l.js → layered-pick-C_WeiIoE.js} +1 -1
- package/dist/assets/{light-COJ1PT9Z.js → light-WOrPHDb-.js} +1 -1
- package/dist/assets/{live-project-verbs-B5iguji-.js → live-project-verbs-C2jF4YJL.js} +1 -1
- package/dist/assets/{machine.document-CWkbBpzv.js → machine.document-DTbenFr7.js} +1 -1
- package/dist/assets/{machines.finder-hRfg-uyo.js → machines.finder-BS0dBMs1.js} +1 -1
- package/dist/assets/{material-vchFYCwN.js → material-CD2DR79m.js} +1 -1
- package/dist/assets/{material-factory-HnrpVpfS.js → material-factory-B4aM15jS.js} +1 -1
- package/dist/assets/{mesh-W1kJYjPu.js → mesh-DTofF_go.js} +1 -1
- package/dist/assets/{model-asset-sections.service-DFJBgYBp.js → model-asset-sections.service-BxEhl0ko.js} +1 -1
- package/dist/assets/{model-inspection-XlLvg6_6.js → model-inspection-BEPkYxZm.js} +1 -1
- package/dist/assets/{model-thumbnail-CjJiBCyG.js → model-thumbnail-BT7oIq1o.js} +1 -1
- package/dist/assets/{models.finder-y6pi3bxI.js → models.finder-DaMe1qYN.js} +1 -1
- package/dist/assets/{module-mode-BqGKFlLf.js → module-mode-BddTykwB.js} +2 -2
- package/dist/assets/{mount-canvas-ingest-root-C1oaJkxQ.js → mount-canvas-ingest-root-DXvGskTU.js} +2 -2
- package/dist/assets/{mount-dom-ingest-root-DJm-Lyg2.js → mount-dom-ingest-root-CKhZMS30.js} +2 -2
- package/dist/assets/{mount-ingest-root-gFsTFIZ-.js → mount-ingest-root-99LbxpVS.js} +2 -2
- package/dist/assets/{mount-manifest-B-PH3Uw1.js → mount-manifest-BSjGZJtM.js} +1 -1
- package/dist/assets/{mount-three-ingest-root-DdWqJcWA.js → mount-three-ingest-root-7ndKUA_v.js} +1 -1
- package/dist/assets/{mounted-authoring-CR7KlQE8.js → mounted-authoring-B7_F5jnJ.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-onztVjWx.js → mounted-story-viewport-source-DK5VrFqH.js} +1 -1
- package/dist/assets/{native-debug-module-cH9M-ECp.js → native-debug-module-739ES-Zm.js} +1 -1
- package/dist/assets/{navigation-DDM8Bkks.js → navigation-C6ZlGnSt.js} +1 -1
- package/dist/assets/{navmesh.menu-C07cxn0S.js → navmesh.menu-x5By6bBe.js} +1 -1
- package/dist/assets/{navmesh.service-C27DJ2t-.js → navmesh.service-Btopj44G.js} +1 -1
- package/dist/assets/network-observer.service-B_aXblWh.js +1 -0
- package/dist/assets/{network.utility-D2zA7FlT.js → network.utility-5MBcxgB_.js} +1 -1
- package/dist/assets/{object3d-document-session-registry-Dr6nlucg.js → object3d-document-session-registry-j6Y5JrzG.js} +2 -2
- package/dist/assets/{oid-transform-CSiJy6Ov.js → oid-transform-B7bZOfh0.js} +1 -1
- package/dist/assets/{particles-Csb1pIqs.js → particles-BcTfNklT.js} +1 -1
- package/dist/assets/{pixi-authoring-adapter-vYRQFYbe.js → pixi-authoring-adapter-CnYwoVLZ.js} +1 -1
- package/dist/assets/{pixi-live-write-target--ZVBuEoz.js → pixi-live-write-target-3Q4ukIef.js} +1 -1
- package/dist/assets/{play.command-Bph3FArD.js → play.command-CsXpcIJO.js} +2 -2
- package/dist/assets/{presentation-BUp3osX6.js → presentation-Dyo74fnC.js} +1 -1
- package/dist/assets/{product-BnPP5G1z.js → product-D_CEDap_.js} +1 -1
- package/dist/assets/{profiler.action-0bPKZV-4.js → profiler.action-4pakkT-I.js} +1 -1
- package/dist/assets/{profiler.menu-CgSqyR_f.js → profiler.menu-C3qMbQDL.js} +1 -1
- package/dist/assets/{profiler.utility-xn_B648c.js → profiler.utility-DopaGlcK.js} +1 -1
- package/dist/assets/{project-authoring-session-DzEQPxcT.js → project-authoring-session-BErT1Vxt.js} +2 -2
- package/dist/assets/{properties-bone-constraints.inspector-XN1Fn6kb.js → properties-bone-constraints.inspector-DrwOv8lP.js} +1 -1
- package/dist/assets/{properties-bone.inspector-B9ZwrAmz.js → properties-bone.inspector-Cgm5HNYg.js} +1 -1
- package/dist/assets/{properties-collection.inspector-CXYbOmqQ.js → properties-collection.inspector-BpRHp08N.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-g8rDgf9A.js → properties-constraints.inspector-Bcps7O7L.js} +1 -1
- package/dist/assets/{properties-data.inspector-B4pLwbfn.js → properties-data.inspector-Cbm0WQCb.js} +1 -1
- package/dist/assets/{properties-material.inspector-Zadm6uE2.js → properties-material.inspector-b2HVBeRi.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-4RygMJjp.js → properties-modifiers.inspector-bJ2xlb_E.js} +1 -1
- package/dist/assets/{properties-object.inspector-CLiXvIq9.js → properties-object.inspector-E1TqDSQi.js} +1 -1
- package/dist/assets/{properties-output.inspector-3kLv-Z9w.js → properties-output.inspector-DvWo2xp8.js} +1 -1
- package/dist/assets/{properties-particles.inspector-BmCwF7dC.js → properties-particles.inspector-D_QiAw0d.js} +1 -1
- package/dist/assets/{properties-physics.inspector-Ovy6voDB.js → properties-physics.inspector-BIh1EfkD.js} +1 -1
- package/dist/assets/{properties-render.inspector-BfdTv-xn.js → properties-render.inspector-CQ_T14za.js} +1 -1
- package/dist/assets/{properties-scene.inspector-8Cnb5z6J.js → properties-scene.inspector-d3xZpohF.js} +1 -1
- package/dist/assets/{properties-texture.inspector-CphKD4Ad.js → properties-texture.inspector-CiodVE2E.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-Cd4iGv8r.js → properties-view-layer.inspector-BTvjGbST.js} +1 -1
- package/dist/assets/{properties-world.inspector-CmwN0diq.js → properties-world.inspector-HjQ_XQWr.js} +1 -1
- package/dist/assets/{r3f-design-session-DNMj8nru.js → r3f-design-session-CgJHKbHk.js} +2 -2
- package/dist/assets/{r3f-physics-binding-CjH-3Qtw.js → r3f-physics-binding-Bs90cL2H.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-DQCcmFUP.js → r3f-source-authoring-adapter-Dz-2gR6C.js} +1 -1
- package/dist/assets/{react-canvas-navigation-CaS-tX17.js → react-canvas-navigation-BuUlk_hY.js} +1 -1
- package/dist/assets/{react-inspector.service-CdgzFlR8.js → react-inspector.service-he9nhYSF.js} +1 -1
- package/dist/assets/{react-story-board-DCQowhwH.js → react-story-board-DFX_3Eor.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-DVgTDGqE.js → react-three-rapier.esm-Cqb1QJsp.js} +1 -1
- package/dist/assets/{react-world-authoring-adapter-o8MIisir.js → react-world-authoring-adapter-4OOk2v75.js} +1 -1
- package/dist/assets/{realm-services-CpK0EhW0.js → realm-services-B51BueDW.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-CCr24-WH.js → reflection-probe-capture.inspector-Cibd2Skj.js} +1 -1
- package/dist/assets/{registry-DxPlKt7g.js → registry-BJ0P13Qw.js} +1 -1
- package/dist/assets/{relative-import-specifier-BNIBX4vp.js → relative-import-specifier-Bg1UDyTq.js} +1 -1
- package/dist/assets/{render-env-Ck6RGnXC.js → render-env-DClqJsug.js} +1 -1
- package/dist/assets/{render-features-1Oh23ztU.js → render-features-BgLAARMw.js} +1 -1
- package/dist/assets/{render-settings-CxVtqFoK.js → render-settings-TkRnwGvq.js} +1 -1
- package/dist/assets/{resolve-three-D0RrLzjb.js → resolve-three-DNMNH9g9.js} +3 -3
- package/dist/assets/{root-seam-contract-mzvZWeCg.js → root-seam-contract-BAI8C8KI.js} +1 -1
- package/dist/assets/{run-selection-BiHQvp3p.js → run-selection-C62JWX8Y.js} +1 -1
- package/dist/assets/{scene-capture-Kp6OXGCU.js → scene-capture-Csu-9Z3v.js} +1 -1
- package/dist/assets/{scene-document.service-QIYXj5ik.js → scene-document.service-CXu3hwi9.js} +2 -2
- package/dist/assets/{scene-framing-BEyDXv-l.js → scene-framing-DgQMZG99.js} +1 -1
- package/dist/assets/{seeded-random-C4aOVk3P.js → seeded-random-xhwosly5.js} +1 -1
- package/dist/assets/{setup-renderer-DVXJnNwP.js → setup-renderer-sNRGFHD3.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-DmAjSKBp.js → source-object3d-authoring-adapter-DiUz2ONX.js} +1 -1
- package/dist/assets/{source-persistence-backend-CLtPG9D6.js → source-persistence-backend-DKdo7qA1.js} +1 -1
- package/dist/assets/{stage-keyboard-XtIU2jBa.js → stage-keyboard-CCAEPBds.js} +1 -1
- package/dist/assets/{stage-overlay-set-BJpFrp2n.js → stage-overlay-set-BIT1H7YG.js} +1 -1
- package/dist/assets/{stage-presence-markers-C8GxAVsm.js → stage-presence-markers-Dde0uo4f.js} +1 -1
- package/dist/assets/{stage-transform-tools-B4kyKwI5.js → stage-transform-tools-C5xuzlvB.js} +1 -1
- package/dist/assets/{standard-viewport-dressing-DUATYft9.js → standard-viewport-dressing-4mM0Zr-0.js} +1 -1
- package/dist/assets/{state-watch.action-BYoFB5Hd.js → state-watch.action-BocmVXfv.js} +1 -1
- package/dist/assets/{state-watch.menu-BC8a3kkl.js → state-watch.menu-VacWy0Ty.js} +1 -1
- package/dist/assets/{state-watch.utility-Cc5OFQhK.js → state-watch.utility-f6mj3xS-.js} +1 -1
- package/dist/assets/{story-capture-D8vKBdSI.js → story-capture-D3oUwSdi.js} +1 -1
- package/dist/assets/{story-documents-D3PVr-dz.js → story-documents-BvxE0Jgp.js} +1 -1
- package/dist/assets/{story-documents.service-DBsH2KcO.js → story-documents.service-BPkgxZFz.js} +1 -1
- package/dist/assets/{story-documents.service-F1WmAMpx.js → story-documents.service-Ci9hEaEi.js} +1 -1
- package/dist/assets/{story-media-presence-CRKXCcnC.js → story-media-presence-nuojiKa3.js} +1 -1
- package/dist/assets/{story-pixi-preview-CroE6Aei.js → story-pixi-preview-MPFqGD8z.js} +1 -1
- package/dist/assets/{story-presentation-Cq9r4LSf.js → story-presentation-Bi6tUUJT.js} +1 -1
- package/dist/assets/{story-three-preview-CFHHDdG9.js → story-three-preview-CquJrBi1.js} +2 -2
- package/dist/assets/{studio-environment-C_N35mBk.js → studio-environment-PbtbyxPv.js} +1 -1
- package/dist/assets/{surface-state-ZUz1JXO3.js → surface-state-vm1S5q1D.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-CXRjRQ6e.js → syntactic-prop-specs-CRrIsekh.js} +1 -1
- package/dist/assets/{team-playtest.service-1zHUody2.js → team-playtest.service-gQVOEk6C.js} +1 -1
- package/dist/assets/{three-DhYM4vlJ.js → three-C_mp4XTZ.js} +1 -1
- package/dist/assets/{three-authoring-adapter-BH3GIXjI.js → three-authoring-adapter-D4_90yFr.js} +1 -1
- package/dist/assets/three-authoring.service-0XLcjtfj.js +2 -0
- package/dist/assets/{three-ingest-runtime-CWGzfEzB.js → three-ingest-runtime-BPcTsDxh.js} +1 -1
- package/dist/assets/{three-integration-Bk3H7QpJ.js → three-integration-CD3ATFnX.js} +2 -2
- package/dist/assets/three-integration.service-DjQ3BgqY.js +1 -0
- package/dist/assets/{three-projection-core-BcSX6zt9.js → three-projection-core-DbYmRPci.js} +1 -1
- package/dist/assets/{three-state-C415Xr4Q.js → three-state-BPIytwjV.js} +1 -1
- package/dist/assets/{three-story-capture.service-Cb7vMHU0.js → three-story-capture.service-CFKkQGtX.js} +2 -2
- package/dist/assets/{three-story-model-DskOuR3f.js → three-story-model-DJE_sYaC.js} +1 -1
- package/dist/assets/{three-viewport-presentation-CCm3SnCW.js → three-viewport-presentation-CNXPLHEX.js} +1 -1
- package/dist/assets/{transform-mode-request-D6ZvVMwT.js → transform-mode-request-B-gJ5g51.js} +1 -1
- package/dist/assets/{transport-strip-lWU2FY9B.js → transport-strip-B36KBNDz.js} +1 -1
- package/dist/assets/transport.header-CAIoNhnT.js +1 -0
- package/dist/assets/{tuples-rxhpQwdW.js → tuples-D_IQElzZ.js} +1 -1
- package/dist/assets/{ui-board-document-BoZP3w_3.js → ui-board-document-BL31txjD.js} +2 -2
- package/dist/assets/{user-data-C0atC9Sj.js → user-data-DZ8WeiSK.js} +1 -1
- package/dist/assets/{utility-view-state-DSMFJ6ir.js → utility-view-state-CJp6vkri.js} +1 -1
- package/dist/assets/{viewport-door-BIJ29zym.js → viewport-door-Bdlxiiu3.js} +1 -1
- package/dist/assets/{viewport-root-presentation-B0pGGdFv.js → viewport-root-presentation-lfnmV2dZ.js} +1 -1
- package/dist/assets/{viewport-surface-status-CiC20oF9.js → viewport-surface-status-BkWCfY-g.js} +1 -1
- package/dist/assets/{webworkerAll-2AtJzMEi.js → webworkerAll-DrO32SxK.js} +1 -1
- package/dist/assets/worker-D3-3vOkS.js +2 -0
- package/dist/assets/{workspace-arrangement-VoQDucQX.js → workspace-arrangement-9RRX0-sM.js} +1 -1
- package/dist/assets/{world-documents-BSL1t6Ik.js → world-documents-BjqjhIv6.js} +1 -1
- package/dist/assets/{world-root-stage-binding-D-eJASGQ.js → world-root-stage-binding-BGWAd6qi.js} +1 -1
- package/dist/assets/{xstate-animation-binding-C13KsQZp.js → xstate-animation-binding-qDvqsOQe.js} +1 -1
- package/dist/assets/{xstate-animation-meta-C9S-GXYo.js → xstate-animation-meta-DG39Stxz.js} +1 -1
- package/dist-node/cli.js +22 -21
- package/package.json +16 -16
- package/dist/assets/InspectorObjectPreview-phfzfTiM.js +0 -1
- package/dist/assets/Object3DDocumentViewport-DdbuaiNm.js +0 -2
- package/dist/assets/autoplay.service-MhRsT-mq.js +0 -1
- package/dist/assets/blender-runtime-host-DpW6tAzm.js +0 -7
- package/dist/assets/instances.command-C7MxJBiO.js +0 -1
- package/dist/assets/network-observer.service-WaQWp1_N.js +0 -1
- package/dist/assets/three-authoring.service-wAdk24pq.js +0 -2
- package/dist/assets/three-integration.service-B35FeZXR.js +0 -1
- package/dist/assets/transport.header-B1Uuh-zI.js +0 -1
- package/dist/assets/worker-BXLmYZTK.js +0 -2
package/dist/assets/{xstate-animation-binding-C13KsQZp.js → xstate-animation-binding-qDvqsOQe.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{collectMachineAnimationMeta as V,clipNamesOf as L,isBlendTreeAnimationMeta as S,asBlendTreeDef as z}from"./xstate-animation-meta-
|
|
1
|
+
import{collectMachineAnimationMeta as V,clipNamesOf as L,isBlendTreeAnimationMeta as S,asBlendTreeDef as z}from"./xstate-animation-meta-DG39Stxz.js";import{cW as J,p as Z,c as _,cQ as ee,l as te,dk as ne,cf as ie,cd as oe}from"./three.core-3arARmh6.js";import"./index-Dt5jm3bx.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";class M extends Error{constructor(i,c){super(i),this.stateId=c,this.name="AnimationBindingError"}}function ae(n){const i=n.logic;if(i?.root)return i;const c=n.getSnapshot();if(c?.machine?.root)return c.machine;throw new M("[bindXStateAnimation] the actor exposes no state machine — only a state-machine actor carries the `meta.animation` this binder reads")}const W=n=>n.layer??"base",B=n=>n.weight??1,I=n=>n.blendMode??"override";function T(n){try{return ne.parseTrackName(n.name).nodeName??""}catch{const i=n.name.indexOf(".");return i<0?n.name:n.name.slice(0,i)}}function C(n,i,c){const o=new Set,l=[];for(const f of i){let u=!1;n.traverse(m=>{m.name===f&&(u=!0,m.traverse(d=>{d.name&&o.add(d.name)}))}),c.has(f)&&(u=!0,o.add(f)),u||l.push(f)}return{names:o,missing:l}}function se(n,i,c,o){const l=new Set(n.tracks.map(T)),f=i.include?C(c,i.include,l):void 0,u=i.exclude?C(c,i.exclude,l):void 0,m=[...f?.missing??[],...u?.missing??[]];if(m.length)throw new M(`[bindXStateAnimation] state "${o}" boneMask names unknown bones/objects: ${m.join(", ")}`,o);const d=n.tracks.filter(p=>{const w=T(p);return(!f||f.names.has(w))&&!u?.names.has(w)});if(d.length===0)throw new M(`[bindXStateAnimation] state "${o}" boneMask removes every track from clip "${n.name}"`,o);return new te(n.name,n.duration,d.map(p=>p.clone()))}function re(n){return n.reduce((i,c)=>c.weight>i.weight?c:i,n[0])}function Se(n,i,c,o={}){const l=i.getRoot(),f=o.root??(l instanceof J?l:void 0);if(!f)throw new M("[bindXStateAnimation] a THREE.Object3D `root` option is required when the mixer uses AnimationObjectGroup");const u=ae(n).root,m=V(u),d=new Map(m.map(t=>[t.stateId,t.meta]));for(const t of m)for(const e of L(t.meta))if(!c.has(e))throw new M(`[bindXStateAnimation] state "${t.stateId}" references clip "${e}", which is not present in the supplied clips map. Known clips: ${[...c.keys()].join(", ")||"(none)"}`,t.stateId);const p=new Map;function w(t,e,s){return W(e)!=="base"||!!e.boneMask||I(e)==="additive"?`${t}\0${s}`:s}for(const{stateId:t,meta:e}of m)for(const s of L(e)){const a=w(t,e,s);if(p.has(a))continue;const r=c.get(s);let h=e.boneMask?se(r,e.boneMask,f,t):r;(h!==r||a!==s)&&(h===r&&(h=r.clone()),h.name=`${r.name}@${W(e)}:${t}`),I(e)==="additive"?(Z.makeClipAdditive(h),h.blendMode=_):h.blendMode=ee,p.set(a,h)}const g=new Map;function K(t,e,s,a){let r=g.get(t);if(!r){const h=p.get(t);if(!h)throw new M(`[bindXStateAnimation] prepared clip "${t}" not found`);const v=i.clipAction(h);v.setEffectiveWeight(0),v.play(),r={action:v,clip:h},g.set(t,r)}return r.action.setLoop(e?ie:oe,1/0),r.action.clampWhenFinished=!e,r.action.timeScale=s,r.action.weight=a,r.action}function N(t){const e=o.selectParameters?o.selectParameters(t):t;return new Map(Object.entries(e??{}))}function D(t,e,s){return(S(e)?ce(z(e.blendTree),N(s)):[{clip:e.clip,weight:1}]).map(({clip:r,weight:h})=>({clip:r,weight:h,actionKey:w(t,e,r)}))}const y=new Map;let O=!1;function R(t,e,s){for(const a of t){if(a.actionKey===e)continue;const r=g.get(a.actionKey)?.action;r&&(s>0?r.fadeOut(s):r.setEffectiveWeight(0))}}function k(t,e){if(!S(t.meta))return;t.natural=D(t.stateId,t.meta,e);const s=B(t.meta);for(const a of t.natural)g.get(a.actionKey)?.action.setEffectiveWeight(a.weight*s)}function P(t,e,s){const a=W(e),r=y.get(a)??null,h=D(t,e,s),v=re(h),H=S(e)?!0:e.loop,Q=S(e)?1:e.speed,x=B(e);for(const b of h)K(b.actionKey,H,Q,x);const $=g.get(v.actionKey).action;$.reset().setEffectiveWeight(x);for(const b of h)b.actionKey!==v.actionKey&&g.get(b.actionKey).action.reset().setEffectiveWeight(0);const A=e.crossfade?.duration??0,U=e.crossfade?.warp??!1;if(!r)A>0&&$.fadeIn(A);else{R(r.natural,r.dominantActionKey,A);const b=g.get(r.dominantActionKey)?.action;b&&A>0?b.crossFadeTo($,A,U):(b?.setEffectiveWeight(0),$.setEffectiveWeight(x))}const j={layer:a,stateId:t,meta:e,natural:h,dominantActionKey:v.actionKey,crossfadeRemaining:A};y.set(a,j),S(e)&&A<=0&&k(j,s)}function q(t){return Object.keys(t.getMeta()).filter(e=>d.has(e))}function X(t){const e=new Map;for(const s of q(t)){const a=d.get(s),r=W(a),h=e.get(r);if(h)throw new M(`[bindXStateAnimation] animated states "${h}" and "${s}" are both active on layer "${r}". Give parallel regions distinct meta.animation.layer names.`,s);e.set(r,s)}for(const[s,a]of y)e.has(s)||(R(a.natural,void 0,0),y.delete(s));for(const[s,a]of e)y.get(s)?.stateId!==a&&P(a,d.get(a),t.context)}const F=n.getSnapshot();X(F);const G=n.subscribe(t=>{O||X(t)});function E(t){if(O)return;const e=t,s=n.getSnapshot().context;for(const a of y.values())a.crossfadeRemaining>0?(a.crossfadeRemaining=Math.max(0,a.crossfadeRemaining-e),a.crossfadeRemaining<=0&&k(a,s)):k(a,s);i.update(e)}const Y={tick:E,actor:n,getParameters:()=>N(n.getSnapshot().context),getActiveLayers:()=>[...y.values()].map(t=>({layer:t.layer,stateId:t.stateId,clips:t.natural.map(e=>e.clip),clipWeights:t.natural.map(e=>({clip:e.clip,weight:g.get(e.actionKey)?.action.getEffectiveWeight()??0})),weight:B(t.meta),blendMode:I(t.meta),...t.meta.boneMask?{boneMask:t.meta.boneMask}:{}})),dispose(){if(!O){O=!0,o.systems?.remove("animation",E),G.unsubscribe();for(const{action:t,clip:e}of g.values())t.stop(),i.uncacheAction(e,t.getRoot());g.clear(),y.clear()}}};return o.systems?.add("animation",E),Y}function ce(n,i){switch(n.type){case"1D":return le(n,i);case"2D":return fe(n,i);case"direct":return de(n);default:return n.children.map(c=>({clip:c.clip,weight:1/n.children.length}))}}function le(n,i){const c=Number(i.get(n.parameter)??0),o=[...n.children].sort((f,u)=>f.threshold-u.threshold),l=o.map(f=>({clip:f.clip,weight:0}));if(o.length===0)return l;if(o.length===1||c<=o[0].threshold)return l[0].weight=1,l;if(c>=o[o.length-1].threshold)return l[l.length-1].weight=1,l;for(let f=0;f<o.length-1;f++){const u=o[f],m=o[f+1];if(c>=u.threshold&&c<=m.threshold){const d=m.threshold-u.threshold,p=d>0?(c-u.threshold)/d:0;return l[f].weight=1-p,l[f+1].weight=p,l}}return l}function fe(n,i){const c=Number(i.get(n.parameter)??0),o=Number(i.get(n.parameterY??"")??0),l=n.children,f=l.map(d=>({clip:d.clip,weight:0}));let u=0;const m=[];for(const d of l){const p=c-d.threshold,w=o-(d.thresholdY??0),g=Math.sqrt(p*p+w*w),K=g<.001?1e3:1/g;m.push(K),u+=K}if(u>0)for(let d=0;d<f.length;d++)f[d].weight=m[d]/u;return f}function de(n){const i=n.children.map(o=>({clip:o.clip,weight:o.weight??0})),c=i.reduce((o,l)=>o+l.weight,0);if(c>0)for(const o of i)o.weight/=c;return i}export{M as AnimationBindingError,Se as bindXStateAnimation,ce as evaluateBlendTree,ae as machineOfXStateActor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{dZ as b,d_ as u,u as o,v as c,w as n,x as l,c6 as r,c5 as m,c4 as f}from"./index-
|
|
1
|
+
import{dZ as b,d_ as u,u as o,v as c,w as n,x as l,c6 as r,c5 as m,c4 as f}from"./index-Dt5jm3bx.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";const d=o({clip:n().min(1).describe("Animation clip name this child plays"),threshold:r().describe("1D/2D blend position on the primary parameter axis"),thresholdY:r().optional().describe("2D blend position on the secondary parameter axis (2D blend trees only)"),weight:r().min(0).optional().describe('Explicit weight for "direct" blend trees (ignored by 1D/2D)')}).strict(),y=o({type:l("1D").describe("Interpolates linearly between sorted children by threshold"),parameter:n().min(1).describe("Context/selector value driving the blend"),children:c(d).min(2,"1D blend tree needs at least 2 children to interpolate between")}).strict(),v=o({type:l("2D").describe("Inverse-distance-weights children by (parameter, parameterY) position"),parameter:n().min(1).describe("Primary axis context/selector value"),parameterY:n().min(1).describe("Secondary axis context/selector value"),children:c(d.extend({thresholdY:r()})).min(1,"2D blend tree needs at least 1 child")}).strict(),g=o({type:l("direct").describe("Each child has an explicit weight, normalized to sum to 1"),parameter:n().default(""),children:c(d.extend({weight:r().min(0)})).min(1,"direct blend tree needs at least 1 child")}).strict(),A=b("type",[y,v,g]);function Y(e){return e}const p=o({duration:r().min(0).default(0).describe("Seconds to blend from the previously active clip into this state on entry, applied via native `AnimationAction.crossFadeTo`/`fadeIn` (E2). 0 = instant activation, no fade."),warp:m().default(!1).describe("Passed through to AnimationAction.crossFadeTo's `warp` param — linearly warps timeScale across the two clips during the blend so differing clip lengths line up. Default false.")}).strict().describe("Blend-in/out/crossfade timing for entering this state"),x=o({include:c(n().min(1)).min(1).optional().describe("Bone/object names whose complete descendant subtrees are retained"),exclude:c(n().min(1)).min(1).optional().describe("Bone/object names whose complete descendant subtrees are removed")}).strict().refine(e=>!!(e.include?.length||e.exclude?.length),{message:"boneMask needs at least one include or exclude bone name"}).describe("Filters animation tracks by named Object3D/Bone subtrees"),h={layer:n().min(1).optional().describe("Composition layer name; omitted means the single base layer"),weight:r().min(0).max(1).optional().describe("Layer weight multiplier from 0 to 1; defaults to 1"),blendMode:f(["override","additive"]).optional().describe("Native Three normal/override or additive action blending; defaults to override"),boneMask:x.optional().describe("Optional include/exclude filter applied to every clip track in this state")},w=o({clip:n().min(1).describe("Single clip to play while this XState state is active"),loop:m().default(!0).describe("Loop the clip (THREE.LoopRepeat) vs play once (THREE.LoopOnce, clamped on last frame)"),speed:r().positive().default(1).describe("Playback speed multiplier (AnimationAction.timeScale)"),crossfade:p.optional(),...h}).strict(),S=o({blendTree:A.describe("Multiple clips blended by a live context/selector-driven parameter"),crossfade:p.optional(),...h}).strict(),D=u([w,S]);function M(e){return"clip"in e}function $(e){return"blendTree"in e}class T extends Error{constructor(a,i,t){super(a),this.stateId=i,this.issues=t,this.name="AnimationMetaValidationError"}}function B(e,a){const i=D.safeParse(a);if(!i.success){const t=i.error.issues.map(s=>`${s.path.length?s.path.join("."):"(root)"}: ${s.message}`).join("; ");throw new T(`[xstate-animation] invalid meta.animation for state "${e}": ${t}`,e,i.error.issues)}return i.data}function R(e){const a=[],i=t=>{t.meta&&"animation"in t.meta&&t.meta.animation!==void 0&&a.push({stateId:t.id,meta:B(t.id,t.meta.animation)});for(const s of Object.values(t.states??{}))i(s)};return i(e),a}function H(e){return M(e)?[e.clip]:e.blendTree.children.map(a=>a.clip)}export{A as AnimationBlendTreeSchema,T as AnimationMetaValidationError,D as StateAnimationMetaSchema,Y as asBlendTreeDef,H as clipNamesOf,R as collectMachineAnimationMeta,$ as isBlendTreeAnimationMeta,M as isClipAnimationMeta,B as parseStateAnimationMeta};
|
package/dist-node/cli.js
CHANGED
|
@@ -2317,7 +2317,7 @@ import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
|
2317
2317
|
var package_default = {
|
|
2318
2318
|
name: "@volter/game-editor",
|
|
2319
2319
|
author: "Volter AI, Inc.",
|
|
2320
|
-
version: "0.5.
|
|
2320
|
+
version: "0.5.117",
|
|
2321
2321
|
publishConfig: {
|
|
2322
2322
|
access: "public"
|
|
2323
2323
|
},
|
|
@@ -2366,22 +2366,22 @@ var package_default = {
|
|
|
2366
2366
|
}
|
|
2367
2367
|
},
|
|
2368
2368
|
dependencies: {
|
|
2369
|
-
"@volter/editor-core": "0.5.
|
|
2370
|
-
"@volter/editor-game": "0.5.
|
|
2371
|
-
"@volter/editor-react": "0.5.
|
|
2372
|
-
"@volter/editor-threejs": "0.5.
|
|
2373
|
-
"@volter/editor-xstate": "0.5.
|
|
2374
|
-
"@volter/editor-blender": "0.1.
|
|
2375
|
-
"@volter/dawproject": "0.5.
|
|
2376
|
-
"@volter/editor-dawproject": "0.5.
|
|
2377
|
-
"@volter/blender-engine": "0.1.
|
|
2378
|
-
"@volter/editor-project": "0.5.
|
|
2379
|
-
"@volter/editor-sdk": "0.5.
|
|
2380
|
-
"@volter/editor-live": "0.5.
|
|
2381
|
-
"@volter/game-live": "0.5.
|
|
2369
|
+
"@volter/editor-core": "0.5.117",
|
|
2370
|
+
"@volter/editor-game": "0.5.117",
|
|
2371
|
+
"@volter/editor-react": "0.5.117",
|
|
2372
|
+
"@volter/editor-threejs": "0.5.117",
|
|
2373
|
+
"@volter/editor-xstate": "0.5.117",
|
|
2374
|
+
"@volter/editor-blender": "0.1.57",
|
|
2375
|
+
"@volter/dawproject": "0.5.117",
|
|
2376
|
+
"@volter/editor-dawproject": "0.5.117",
|
|
2377
|
+
"@volter/blender-engine": "0.1.55",
|
|
2378
|
+
"@volter/editor-project": "0.5.117",
|
|
2379
|
+
"@volter/editor-sdk": "0.5.117",
|
|
2380
|
+
"@volter/editor-live": "0.5.117",
|
|
2381
|
+
"@volter/game-live": "0.5.117",
|
|
2382
2382
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
2383
|
-
"@volter/game-runtime": "0.5.
|
|
2384
|
-
"@volter/threejs-runtime": "0.5.
|
|
2383
|
+
"@volter/game-runtime": "0.5.117",
|
|
2384
|
+
"@volter/threejs-runtime": "0.5.117",
|
|
2385
2385
|
undici: "7.29.1",
|
|
2386
2386
|
typescript: "5.9.3",
|
|
2387
2387
|
"@colyseus/schema": "^4.0.14",
|
|
@@ -7470,7 +7470,7 @@ async function currentPageErrors(serverUrl) {
|
|
|
7470
7470
|
}
|
|
7471
7471
|
}
|
|
7472
7472
|
|
|
7473
|
-
// ../editor-core/dist/server/chunk-
|
|
7473
|
+
// ../editor-core/dist/server/chunk-IIXG6LQK.js
|
|
7474
7474
|
var HOSTED_ATTACHMENT_PATH = "/__editor-hosted";
|
|
7475
7475
|
var HOSTED_ATTACHMENT_FRAGMENT = "volter-editor-attach";
|
|
7476
7476
|
var HOSTED_MESSAGE_BYTES = 32 * 1024 * 1024;
|
|
@@ -8909,7 +8909,7 @@ function openBrowserUrl(browserUrl, options) {
|
|
|
8909
8909
|
}
|
|
8910
8910
|
}
|
|
8911
8911
|
|
|
8912
|
-
// ../editor-core/dist/server/chunk-
|
|
8912
|
+
// ../editor-core/dist/server/chunk-Z73D7UHN.js
|
|
8913
8913
|
import { createHash as createHash4 } from "node:crypto";
|
|
8914
8914
|
import { mkdirSync as mkdirSync7, readFileSync as readFileSync9, writeFileSync as writeFileSync7, rmSync as rmSync4, existsSync as existsSync8 } from "node:fs";
|
|
8915
8915
|
import { homedir as homedir4 } from "node:os";
|
|
@@ -9066,7 +9066,7 @@ async function control(command, verb, argument, reason, scope, attachment) {
|
|
|
9066
9066
|
const consoleState = await client.getUnresolvedConsole();
|
|
9067
9067
|
if (consoleState.entries?.length) {
|
|
9068
9068
|
console.error(JSON.stringify(consoleState, null, 2));
|
|
9069
|
-
process.exitCode = 1;
|
|
9069
|
+
if (attachment?.consolePolicy !== "report") process.exitCode = 1;
|
|
9070
9070
|
}
|
|
9071
9071
|
}
|
|
9072
9072
|
var HOSTED_USAGE = "hosted attach <https-url> | hosted status | hosted eval <JavaScript> | hosted screenshot <file.png> | hosted detach";
|
|
@@ -9099,7 +9099,8 @@ async function hostedControl(command, args) {
|
|
|
9099
9099
|
writeFileSync7(file, JSON.stringify({ ...common, token: created.clientToken }), { mode: 384, flag: "wx" });
|
|
9100
9100
|
page.hash = new URLSearchParams({ [HOSTED_ATTACHMENT_FRAGMENT]: JSON.stringify({ ...common, token: created.workerToken }) }).toString();
|
|
9101
9101
|
openBrowserUrl(page.href, { background: true });
|
|
9102
|
-
console.log(`
|
|
9102
|
+
console.log(`Attaching to hosted editor: ${created.page}
|
|
9103
|
+
If this page is already open, its existing tab receives the attachment.
|
|
9103
9104
|
Use ${command} hosted status from this directory. Attachment expires ${new Date(created.expiresAt).toISOString()}.`);
|
|
9104
9105
|
return;
|
|
9105
9106
|
}
|
|
@@ -9148,7 +9149,7 @@ Use ${command} hosted status from this directory. Attachment expires ${new Date(
|
|
|
9148
9149
|
if (shot.mimeType !== "image/png") throw new Error("Editor did not return a PNG of the active document.");
|
|
9149
9150
|
writeFileSync7(resolve8(argument), Buffer.from(shot.base64, "base64"));
|
|
9150
9151
|
console.log(resolve8(argument));
|
|
9151
|
-
} else await control(command, verb, argument, void 0, void 0, { live, client });
|
|
9152
|
+
} else await control(command, verb, argument, void 0, void 0, { live, client, consolePolicy: "report" });
|
|
9152
9153
|
} finally {
|
|
9153
9154
|
remote.close();
|
|
9154
9155
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volter/game-editor",
|
|
3
3
|
"author": "Volter AI, Inc.",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.117",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -50,22 +50,22 @@
|
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@volter/editor-core": "0.5.
|
|
54
|
-
"@volter/editor-game": "0.5.
|
|
55
|
-
"@volter/editor-react": "0.5.
|
|
56
|
-
"@volter/editor-threejs": "0.5.
|
|
57
|
-
"@volter/editor-xstate": "0.5.
|
|
58
|
-
"@volter/editor-blender": "0.1.
|
|
59
|
-
"@volter/dawproject": "0.5.
|
|
60
|
-
"@volter/editor-dawproject": "0.5.
|
|
61
|
-
"@volter/blender-engine": "0.1.
|
|
62
|
-
"@volter/editor-project": "0.5.
|
|
63
|
-
"@volter/editor-sdk": "0.5.
|
|
64
|
-
"@volter/editor-live": "0.5.
|
|
65
|
-
"@volter/game-live": "0.5.
|
|
53
|
+
"@volter/editor-core": "0.5.117",
|
|
54
|
+
"@volter/editor-game": "0.5.117",
|
|
55
|
+
"@volter/editor-react": "0.5.117",
|
|
56
|
+
"@volter/editor-threejs": "0.5.117",
|
|
57
|
+
"@volter/editor-xstate": "0.5.117",
|
|
58
|
+
"@volter/editor-blender": "0.1.57",
|
|
59
|
+
"@volter/dawproject": "0.5.117",
|
|
60
|
+
"@volter/editor-dawproject": "0.5.117",
|
|
61
|
+
"@volter/blender-engine": "0.1.55",
|
|
62
|
+
"@volter/editor-project": "0.5.117",
|
|
63
|
+
"@volter/editor-sdk": "0.5.117",
|
|
64
|
+
"@volter/editor-live": "0.5.117",
|
|
65
|
+
"@volter/game-live": "0.5.117",
|
|
66
66
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
67
|
-
"@volter/game-runtime": "0.5.
|
|
68
|
-
"@volter/threejs-runtime": "0.5.
|
|
67
|
+
"@volter/game-runtime": "0.5.117",
|
|
68
|
+
"@volter/threejs-runtime": "0.5.117",
|
|
69
69
|
"undici": "7.29.1",
|
|
70
70
|
"typescript": "5.9.3",
|
|
71
71
|
"@colyseus/schema": "^4.0.14",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as t}from"./jsx-runtime-DPjLkJKQ.js";import{Object3DSnapshotDocument as m}from"./EntityModelDocument-BeJlMgH9.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./editor-shell-store-CFlfnY8x.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./Pass-D1MRT672.js";import"./editor-layers-DZM820Rd.js";import"./workspace-arrangement-VoQDucQX.js";import"./index-BBJS-iXi.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./user-data-C0atC9Sj.js";import"./entity-object-DfdMnbKr.js";import"./three-contract-Dkt6PmWY.js";import"./live-mixers-B-bwLZ7c.js";import"./asset-preview-DAM7CurX.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-DNv34RDe.js";import"./studio-environment-C_N35mBk.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./bitmap-label-Ct4k6ehY.js";import"./StageHost-NFV3WCDE.js";import"./three-state-C415Xr4Q.js";import"./standard-viewport-dressing-DUATYft9.js";import"./content-bounds-BRxD4jMU.js";import"./preview-renderer-BrYNFV1p.js";import"./live-gesture-lock-DJbrjOqf.js";import"./three-integration-Bk3H7QpJ.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-c_oHJY1l.js";import"./root-stacking-BEd9ZvxC.js";import"./model-thumbnail-CjJiBCyG.js";import"./object3d-document-session-registry-Dr6nlucg.js";import"./component-instance-root-mlam7I49.js";import"./viewport-door-BIJ29zym.js";import"./model-inspection-XlLvg6_6.js";import"./three-viewport-presentation-CCm3SnCW.js";import"./clip-planes-CnAI6DZn.js";import"./three-DhYM4vlJ.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./scene-framing-BEyDXv-l.js";import"./source-object3d-authoring-adapter-DmAjSKBp.js";import"./three-projection-core-BcSX6zt9.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-lWU2FY9B.js";import"./viewport-surface-status-CiC20oF9.js";function ut({previewKey:o,object:r,displayName:i,fill:p=!1}){return t.jsx("div",{"data-testid":"inspector-object-preview",style:p?{position:"absolute",inset:0,overflow:"hidden"}:{width:"100%",height:220,minHeight:220,borderBottom:"1px solid var(--volter-structural-divider)",overflow:"hidden",position:"relative"},children:t.jsx(m,{documentId:`inspector-preview:${o}`,source:r,displayName:i,active:!0,chromeless:!0})})}export{ut as InspectorObjectPreview};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/StageHost-NFV3WCDE.js","assets/index-BBJS-iXi.js","assets/index-nmcBqr7Y.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-D_NuPfjr.js","assets/jsx-runtime-DPjLkJKQ.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/three-state-C415Xr4Q.js","assets/editor-shell-store-CFlfnY8x.js","assets/output-pass-HurwNl0G.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/Pass-D1MRT672.js","assets/editor-layers-DZM820Rd.js","assets/workspace-arrangement-VoQDucQX.js","assets/user-data-C0atC9Sj.js","assets/entity-object-DfdMnbKr.js","assets/three-contract-Dkt6PmWY.js","assets/standard-viewport-dressing-DUATYft9.js","assets/content-bounds-BRxD4jMU.js","assets/hierarchy-marks-DNv34RDe.js","assets/environment-Dg-YaLsA.js","assets/RoomEnvironment-BkknvS_I.js","assets/EXRLoader-CITMBvGd.js","assets/HDRLoader-BTGuGhVo.js","assets/preview-renderer-BrYNFV1p.js","assets/renderer-ownership-BovSEcLv.js","assets/live-mixers-B-bwLZ7c.js","assets/live-gesture-lock-DJbrjOqf.js","assets/three-integration-Bk3H7QpJ.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/layered-pick-c_oHJY1l.js","assets/root-stacking-BEd9ZvxC.js","assets/model-thumbnail-CjJiBCyG.js","assets/studio-environment-C_N35mBk.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/object3d-document-session-registry-Dr6nlucg.js","assets/component-instance-root-mlam7I49.js","assets/viewport-door-BIJ29zym.js","assets/asset-preview-DAM7CurX.js","assets/bitmap-label-Ct4k6ehY.js","assets/model-inspection-XlLvg6_6.js","assets/three-viewport-presentation-CCm3SnCW.js","assets/clip-planes-CnAI6DZn.js","assets/three-DhYM4vlJ.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/OrbitControls-B13MKuwC.js","assets/LineSegments2-DN9pUfWA.js","assets/three.quarks.esm-C_HmSKXo.js","assets/scene-framing-BEyDXv-l.js","assets/source-object3d-authoring-adapter-DmAjSKBp.js","assets/three-projection-core-BcSX6zt9.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/transport-strip-lWU2FY9B.js","assets/viewport-surface-status-CiC20oF9.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{ak as r,_ as a}from"./index-BBJS-iXi.js";import{a as o}from"./jsx-runtime-DPjLkJKQ.js";import{r as n}from"./index-nmcBqr7Y.js";import{V as c,O as u}from"./viewport-surface-status-CiC20oF9.js";const s=n.lazy(async()=>({default:(await a(()=>import("./StageHost-NFV3WCDE.js").then(e=>e.S),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60]))).Object3DDocumentViewport}));function l(t){return i(t.documentId,t.chromeless),o.jsx(n.Suspense,{fallback:o.jsx(c,{testId:"object3d-document-loading",children:u}),children:o.jsx(s,{...t})})}function i(t,e=!1){n.useEffect(()=>{if(!e)return r(t)},[t,e])}export{l as O};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{T as i,r as m}from"./index-BBJS-iXi.js";import{e as p}from"./game-network-sY7WtOsz.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-cH9M-ECp.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BVNyR7Oo.js";import"./contract-system-adapters-D0uU7TTW.js";import"./game-contract-seams-J9cSYLjV.js";import"./seeded-random-C4aOVk3P.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-B5iguji-.js";import"./capability-coverage-Q2P1rSMp.js";import"./edit-mode-authoring-C8rX2VgE.js";import"./json-history-resource-WyAPanbc.js";import"./binding-resolver-BHrecg84.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-CpK0EhW0.js";import"./canvas-entry-runtime-CJ3DEkVJ.js";import"./three-ingest-runtime-CWGzfEzB.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-DQnefOtw.js";import"./ingest-source-persistence-BU1UHwYR.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-B0pGGdFv.js";import"./mounted-authoring-CR7KlQE8.js";import"./entity-object-DfdMnbKr.js";import"./user-data-C0atC9Sj.js";import"./workspace-arrangement-VoQDucQX.js";import"./three-contract-Dkt6PmWY.js";import"./three-DhYM4vlJ.js";import"./editor-layers-DZM820Rd.js";import"./component-instance-root-mlam7I49.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-BH3GIXjI.js";import"./source-persistence-backend-CLtPG9D6.js";import"./three-projection-core-BcSX6zt9.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-CjH-3Qtw.js";import"./deferred-ingest-play-Dsicru08.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-o8MIisir.js";import"./board-guides-kYCRVwEV.js";import"./relative-import-specifier-BNIBX4vp.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-kgW5_-pM.js";import"./inference-diagnostics-DTcvxJSE.js";import"./writer-tw6EcuVO.js";import"./three-state-C415Xr4Q.js";import"./editor-shell-store-CFlfnY8x.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BIJ29zym.js";import"./game-surface-defaults-D8S4cRxi.js";const Ut="workspace.service";function e(o){p().catch(t=>{m().console.error(`${o}: ${t instanceof Error?t.message:String(t)}`,"play")})}function bt(){let o,t=!1;const r=i(()=>{t||new URLSearchParams(window.location.search).get("play")==="1"&&(t=!0,o=window.setTimeout(()=>e("Could not enter requested Play mode"),0))});return()=>{o!==void 0&&window.clearTimeout(o),r()}}export{Ut as point,bt as start};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{r as k,li as wt}from"./index-BBJS-iXi.js";import{a as gt}from"./preview-renderer-BrYNFV1p.js";import{v as mt}from"./output-pass-HurwNl0G.js";import{_ as yt,fx as Ne,bi as De,aC as bt,d7 as Mt,ej as vt,cP as ge,el as xt,cm as kt,cl as Pe,fo as ie,ex as Et,d5 as St,d9 as Bt,cJ as Ct,e as Ve}from"./three.core-3arARmh6.js";import{f as At}from"./clip-planes-CnAI6DZn.js";import{a as jt}from"./content-bounds-BRxD4jMU.js";const Ue=4096;class It{#r;#i;#a=[];#n=new Map;#E=0;#d=null;#s=null;#h=!1;#b=!1;#M=t=>{!this.#b&&this.#n.size===0||(t.preventDefault(),t.returnValue="")};#f=new Map;#g=new Map;#p=null;#m=0;#v=0;#x=0;#l=null;#k=null;#c=null;constructor(t){this.#i=t,this.#r=new Worker(new URL("/assets/worker-BXLmYZTK.js",import.meta.url),{type:"module",name:"blender"}),globalThis.addEventListener?.("beforeunload",this.#M),this.#r.onmessage=n=>void this.#S(n.data),this.#r.onerror=n=>{const r=n.error,a=n.filename?` at ${n.filename}:${n.lineno}:${n.colno}`:"",o=r?.stack??r?.message??n.message,s=this.#a.length>0?`
|
|
2
|
-
Blender's last output:
|
|
3
|
-
${this.#a.join(`
|
|
4
|
-
`)}`:"",l=this.#c===null?null:Math.round(this.#c/1048576),c=l!==null&&l>=Ue-16?`Blender ran out of memory: its heap reached ${l} MB of the in-tab engine's ${Ue} MB, and this scene needs more. `:"",d=new Error(`${c}Blender worker failed: ${o||"the worker script did not load"}${a}${s}`);console.error(d.message);for(const i of[...this.#n.keys()])this.#w(i);for(const i of this.#n.values())i.reject(d);this.#n.clear()}}#o=null;#u=null;get project(){return this.#o}get document(){return this.#u}get lastOutput(){return[...this.#a]}start(t,n){return this.#o!==null&&this.#o!==t?Promise.reject(new Error(`The Blender session is bound to ${this.#o}, not ${t}`)):n!==void 0&&this.#u!==null&&this.#u!==n?Promise.reject(new Error(`Blender resource conflict: the session holds ${this.#u}; cannot open ${n}`)):(this.#o=t,this.#u??=n??"models/model.blend",this.#d??=this.#e({op:"start",project:t,...n===void 0?{}:{document:n}}),this.#d)}#t(){return this.#o===null?Promise.reject(new Error("The Blender session has not been started with a project (blender-start)")):this.start(this.#o)}async execute(t,n=!0,r="Blender Python"){return await this.#t(),await this.#e({op:"execute",code:t,history:n,label:r})}async historyGesture(t){await this.#t(),await this.#e({op:t})}async historyStep(t,n){return await this.#t(),(await this.#e({op:"history-step",token:t,direction:n})).moved}async sceneInfo(){return await this.#t(),await this.#e({op:"scene-info"})}async objectInfo(t){return await this.#t(),await this.#e({op:"object-info",name:t})}async rna(t,n){return await this.#t(),await this.#e({op:"rna",path:t,...n===void 0?{}:{names:n}})}async rnaContext(t,n){return await this.#t(),await this.#e({op:"rna-context",...t===void 0?{}:{object:t},...n===void 0?{}:{collection:n}})}async rnaSet(t,n,r,a,o=!0){return await this.#t(),await this.#e({op:"rna-set",history:o,path:t,property:n,value:r,...a===void 0?{}:{index:a}})}async viewShading(t){await this.#t(),await this.#e({op:"view-shading",shading:t})}async outliner(t){return await this.#t(),await this.#e({op:"outliner",...t===void 0?{}:{selected:t}})}async nodeTree(t){return await this.#t(),await this.#e({op:"node-tree",...t?.path===void 0?{}:{path:t.path},...t?.material===void 0?{}:{material:t.material}})}async uvLayout(t){return await this.#t(),await this.#e({op:"uv-layout",...t?.object===void 0?{}:{object:t.object},...t?.uvLayer===void 0?{}:{uvLayer:t.uvLayer}})}async rig(t){return await this.#t(),await this.#e({op:"rig",...t?.object===void 0?{}:{object:t.object}})}async actionClip(t){return await this.#t(),await this.#e({op:"action-clip",...t?.object===void 0?{}:{object:t.object},...t?.bake===void 0?{}:{bake:t.bake}})}async outlinerSet(t,n,r){return await this.#t(),await this.#e({op:"outliner-set",path:t,column:n,value:r})}async present(){await this.#t(),await this.#e({op:"present"})}async screenshotView(t){return await this.#t(),await this.#e({op:"screenshot-view",maxSize:t})}async readFile(t){return await this.#t(),await this.#e({op:"read-file",path:t})}async writeFile(t,n){await this.#t(),await this.#e({op:"write-file",path:t,bytes:n})}async listFiles(t){return await this.#t(),await this.#e({op:"list-files",path:t})}get presented(){return this.#k}stop(){return this.#h?Promise.resolve():this.#s?this.#s:(this.#s=(async()=>{(this.#d?await this.#d.then(()=>!0,()=>!1):!1)&&await this.#e({op:"flush-document"},!0),this.terminate()})().catch(t=>{throw this.#s=null,t}),this.#s)}terminate(){if(this.#h)return;this.#h=!0,globalThis.removeEventListener?.("beforeunload",this.#M);const t=this.#y("terminating worker");try{this.#r.terminate()}finally{t()}const n=new Error("The Blender session was terminated");for(const r of[...this.#n.keys()])this.#w(r);for(const r of this.#n.values())r.reject(n);this.#n.clear()}metrics(t=performance.now()){let n=null,r=this.#m,a=this.#v,o=this.#x;for(const s of this.#f.values()){const l=t-s;(n===null||l>n)&&(n=l),l>r&&(r=l),l>=5e3&&(a+=1),l>=3e4&&(o+=1)}return{inFlightMs:n===null?null:Math.round(n),lastCallMs:this.#p===null?null:Math.round(this.#p),maxCallMs:this.#p===null&&n===null?null:Math.round(r),callsOver5s:a,callsOver30s:o,lastCallWindow:this.#l,wasmMemoryMB:this.#c===null?null:Math.round(this.#c/1048576)}}#w(t){this.#g.get(t)?.(),this.#g.delete(t);const n=this.#f.get(t);if(n===void 0)return;this.#f.delete(t);const r=performance.now()-n;this.#p=r,r>this.#m&&(this.#m=r),r>=5e3&&(this.#v+=1),r>=3e4&&(this.#x+=1),this.#l!==null&&this.#l.start===n&&(this.#l={start:n,end:n+r})}#e(t,n=!1){if(this.#h||this.#s&&!n)return Promise.reject(new Error("The Blender session is stopping or terminated"));const r=++this.#E;return new Promise((a,o)=>{this.#n.set(r,{resolve:a,reject:o});const s=performance.now();this.#f.set(r,s),this.#l={start:s,end:null},this.#g.set(r,this.#y(`waiting for worker ${t.op}`));try{this.#r.postMessage({...t,id:r})}catch(l){this.#n.delete(r),this.#w(r),o(l instanceof Error?l:new Error(String(l)))}})}#y(t){try{const n=this.#i.work?.(t);return()=>{try{n?.()}catch{}}}catch{return()=>{}}}async#S(t){if("op"in t){if(t.op==="document-dirty"){this.#b=t.dirty;return}if(t.op==="history"){this.#i.history?.(t.entries);return}if(t.op==="log"){this.#a.push(t.text),this.#a.length>12&&this.#a.shift(),this.#i.log?.(t.level,t.text);return}if(t.op==="memory"){this.#c=t.bytes;return}const r=t.frame;typeof r?.session=="string"&&typeof r.revision=="number"&&(this.#k={session:r.session,revision:r.revision});const a=this.#y("presenting worker frame");try{const o=await this.#i.present(t.frame,t.description,t.capture);this.#r.postMessage({op:"present-result",id:t.id,...o?.capture===void 0?{}:{capture:o.capture},...o!=null&&"held"in o?{held:o.held}:{}})}catch(o){this.#r.postMessage({op:"present-result",id:t.id,error:o instanceof Error?o.message:String(o)})}finally{a()}return}const n=this.#n.get(t.id);n&&(this.#n.delete(t.id),this.#w(t.id),"error"in t?n.reject(new Error(t.error)):n.resolve(t.result))}}const Tt="/assets/agx-base-srgb-BjWZJgrZ.lut",_t="/assets/agx-look-medium-high-contrast-D5F_ob1L.lut",Lt="/assets/agx-look-punchy-dxsnycNs.lut",$t="/assets/filmic-srgb-Ct35FIH6.lut",T=new Float64Array(12),We=[0,0,0],O=new Float64Array(3),q=new Float64Array(3),_=new Int8Array([1,0,0,1,1,0,0,1,2,1,0,0,1,0,1,0,2,1,0,0,1,1,0,1,2,0,1,0,0,1,0,1,1,2,1,0,0,1,0,0,1,1,1,2,0,0,1,0,1,1,0,1,0,2]);function Ft(e,t,n){return e>t?t>n?0:e>n?1:2:n>t?3:n>e?4:5}function Ze(e,t,n,r,a){const o=t*t,s=Math.min(1,Math.max(0,n))*(t-1),l=Math.min(1,Math.max(0,r))*(t-1),c=Math.min(1,Math.max(0,a))*(t-1),d=Math.min(Math.floor(s),t-2),i=Math.min(Math.floor(l),t-2),h=Math.min(Math.floor(c),t-2),b=s-d,M=l-i,B=c-h,w=(u,p,C,A)=>{const y=(d+p+(i+C)*t+(h+A)*o)*3;T[u]=e[y]/65535,T[u+1]=e[y+1]/65535,T[u+2]=e[y+2]/65535};w(0,0,0,0),w(9,1,1,1),O[0]=b,O[1]=M,O[2]=B;const g=Ft(b,M,B)*9;w(3,_[g],_[g+1],_[g+2]),w(6,_[g+3],_[g+4],_[g+5]);const E=O[_[g+6]],f=O[_[g+7]],m=O[_[g+8]];for(let u=0;u<3;u++){const p=T[u];We[u]=p+E*(T[3+u]-p)+f*(T[6+u]-T[3+u])+m*(T[9+u]-T[6+u])}return We}function H(e){const t=e&32768?-1:1,n=e>>10&31,r=e&1023;return n===0?t*2**-24*r:n===31?r?Number.NaN:t*Number.POSITIVE_INFINITY:t*2**(n-15)*(1+r/1024)}function Ae(e,t,n,r){const a=new Uint8ClampedArray(t*4);for(let o=0;o<t;o++){const s=o*4,l=H(e[s+3]),c=l===0?n:n/l;q[0]=H(e[s])*c,q[1]=H(e[s+1])*c,q[2]=H(e[s+2])*c;const d=r(q);a[s]=Math.round(d[0]*255),a[s+1]=Math.round(d[1]*255),a[s+2]=Math.round(d[2]*255),a[s+3]=Math.round(Math.min(1,Math.max(0,l))*255)}return a}function Rt(e){return new URL(Object.assign({"./agx-base-srgb.lut":Tt,"./agx-look-medium-high-contrast.lut":_t,"./agx-look-punchy.lut":Lt,"./filmic-srgb.lut":$t})[`./${e.replace(/\.lut$/,"")}.lut`],import.meta.url)}const Ot=57,$=-12.47393,Ke=12.5260688117,Nt=[[.4123908,.3575843,.1804808],[.212639,.7151687,.0721923],[.0193308,.1191948,.9505322]],Dt=[[1.5250528,-.3159135,-.1226583],[-.5091526,1.3333274,.1382844],[.0957153,.0508974,.7879558]];function Ge(e,t,n){const r=t[0],a=t[1],o=t[2];n[0]=e[0][0]*r+e[0][1]*a+e[0][2]*o,n[1]=e[1][0]*r+e[1][1]*a+e[1][2]*o,n[2]=e[2][0]*r+e[2][1]*a+e[2][2]*o}const X=new Float64Array(3),ze=new Float64Array(3),Z=[0,0,0];function le(e){const t=Math.min(1,Math.max(0,e));return t<=.0031308?12.92*t:1.055*t**(1/2.4)-.055}function Ye(e,t,n,r){return Ze(e,Ot,t,n,r)}function Pt(e,t){Ge(Nt,t,ze),Ge(Dt,ze,X);const n=Ke-$,r=Ye(e,(Math.log2(Math.max(X[0],1e-10))-$)/n,(Math.log2(Math.max(X[1],1e-10))-$)/n,(Math.log2(Math.max(X[2],1e-10))-$)/n);return Z[0]=le(Math.max(0,r[0])**2.4),Z[1]=le(Math.max(0,r[1])**2.4),Z[2]=le(Math.max(0,r[2])**2.4),Z}const Vt={"AgX - Medium High Contrast":"agx-look-medium-high-contrast.lut","AgX - Punchy":"agx-look-punchy.lut"};function Ut(e,t){const n=Ke-$;return Ye(e,(Math.log2(Math.max(t[0],1e-10))-$)/n,(Math.log2(Math.max(t[1],1e-10))-$)/n,(Math.log2(Math.max(t[2],1e-10))-$)/n)}function Wt(e,t,n,r={}){const a=r.exposure??1,o=r.composedLook===!0?Ut:Pt;return Ae(t,n,a,s=>o(e,s))}const Je=33,me=Je**3*3,ye=4096,ce=-12.473931188,ue=25;function de(e,t){const n=Math.min(1,Math.max(0,t))*(ye-1),r=Math.min(Math.floor(n),ye-2),a=n-r;return((1-a)*e[me+r]+a*e[me+r+1])/65535}const K=[0,0,0];function Gt(e,t){const n=Ze(e,Je,(Math.log2(Math.max(t[0],1e-10))-ce)/ue,(Math.log2(Math.max(t[1],1e-10))-ce)/ue,(Math.log2(Math.max(t[2],1e-10))-ce)/ue);return K[0]=de(e,n[0]/.66),K[1]=de(e,n[1]/.66),K[2]=de(e,n[2]/.66),K}function zt(e,t,n,r){if(e.length!==me+ye)throw new Error("Invalid Blender Filmic display table");return Ae(t,n,r,a=>Gt(e,a))}const W=2.4,F=.055,Qe=F/(W-1),qt=1/(W/(1+F)*((Qe+F)/(1+F))**(W-1)),Ht=((Qe+F)/(1+F))**W;function he(e){return e>0?e<Ht?e*qt:(1+F)*e**(1/W)-F:0}const Y=[0,0,0];function Xt(e){return Y[0]=he(e[0]),Y[1]=he(e[1]),Y[2]=he(e[2]),Y}function Zt(e,t,n){return Ae(e,t,n,Xt)}function et(e,t,n,r){if(!Number.isFinite(n.width)||!Number.isFinite(n.height)||n.width<1||n.height<1)throw new Error("Scene capture requires finite positive dimensions");const a=Math.min(2048,Math.round(n.width)),o=Math.min(2048,Math.round(n.height)),s=r?1:2,l=a*s,c=o*s,d=gt(),i=d.renderer,h={target:i.getRenderTarget(),toneMapping:i.toneMapping,exposure:i.toneMappingExposure,colorSpace:i.outputColorSpace,shadows:i.shadowMap.enabled,shadowType:i.shadowMap.type,clearColor:i.getClearColor(new yt),clearAlpha:i.getClearAlpha(),background:e.background};let b,M,B=!1;try{b=new Ne(l,c,{type:De}),n.effect&&(b.depthTexture=new bt(l,c)),i.shadowMap.enabled=!0,i.shadowMap.type=Mt,i.outputColorSpace=vt,i.toneMapping=n.toneMapping??ge,i.toneMappingExposure=n.exposure??1,i.setClearColor(0,n.transparent?0:1),n.transparent&&(e.background=null),i.setRenderTarget(b),i.clear(),i.render(e,t);const w=n.effect?.render(i,b,e,t)??b;if(w.texture.type!==De||w.width!==l||w.height!==c)throw new Error("Scene capture effect must return a same-size half-float target");if(r){const y=new Uint16Array(l*c*4);return i.readRenderTargetPixels(w,0,0,l,c,y),B=!0,{pixels:y,width:a,height:o}}M=new Ne(l,c),mt(n.transparent===!0).render(i,M,w,0,!1);const g=new Uint8Array(l*c*4);i.readRenderTargetPixels(M,0,0,l,c,g);const E=document.createElement("canvas");E.width=l,E.height=c;const f=E.getContext("2d");if(!f)throw new Error("Scene capture could not create an image canvas");const m=f.createImageData(l,c),u=l*4;for(let y=0;y<c;y++)m.data.set(g.subarray((c-1-y)*u,(c-y)*u),y*u);f.putImageData(m,0,0);const p=document.createElement("canvas");p.width=a,p.height=o;const C=p.getContext("2d");if(!C)throw new Error("Scene capture could not create an output canvas");C.drawImage(E,0,0,a,o);const A=p.toDataURL("image/png");return B=!0,A}finally{e.background=h.background,i.setRenderTarget(h.target),i.toneMapping=h.toneMapping,i.toneMappingExposure=h.exposure,i.outputColorSpace=h.colorSpace,i.shadowMap.enabled=h.shadows,i.shadowMap.type=h.shadowType,i.setClearColor(h.clearColor,h.clearAlpha),M?.dispose(),b?.dispose(),d.release({discard:!B})}}function Kt(e,t,n){return et(e,t,n,!0)}function Yt(e,t,n){return et(e,t,n,!1)}const Jt=e=>typeof e=="object"&&e!==null&&typeof e.subscribeFrames=="function"&&typeof e.objectForBlenderName=="function"&&typeof e.blenderObjectName=="function"&&typeof e.blenderSelection=="function"&&typeof e.setStageMode=="function";function je(){const e=k().documents.context(st());return Jt(e)?e:null}function Qt(){return je()?.blenderSelection()??{selected:[],active:null}}const en={tree:null,byId:new Map,parentOf:new Map,error:null,loading:!1};let be=en,tt=0;const Me=new Set;let P=null,re=null,Ie="",V=null;function tn(e){const t=new Map,n=new Map,r=(a,o)=>{t.set(a.id,a),n.set(a.id,o);for(const s of a.children)r(s,a.id)};for(const a of e?.rows??[])r(a,null);return{byId:t,parentOf:n}}function Q(e){be={...be,...e},tt+=1;for(const t of[...Me])t()}function Cn(e){return Me.add(e),()=>{Me.delete(e)}}function An(){return tt}function jn(){return be}function Te(e){V!==e&&(V=e,setTimeout(()=>{V===e&&(V=null,nt(e===""?[]:e.split("\0")))},0))}let fe=0,ve=Promise.resolve();function nt(e){const t=nn(e);return ve=t,t}async function nn(e){const t=e.join("\0"),n=++fe;re=t,Ie=t,Q({loading:!0});try{const r=await pn(e);if(n!==fe)return;je()?.setStageMode(r?.mode??null),Q({tree:r,...tn(r),loading:!1,error:null})}catch(r){if(n!==fe)return;Q({loading:!1,error:rt(r)})}}function rn(){re=null,Te(Ie);for(const e of[...xe])e()}const xe=new Set;function In(e){return _e(),xe.add(e),()=>{xe.delete(e)}}let J=!1,pe=null;function _e(){const e=je();if(P!==null&&pe===e)return;P!==null&&(P(),P=null,pe=null);const t=e;if(t!==null){P=t.subscribeFrames(rn),pe=t;return}J||(J=!0,k().documents.waitForContext(st()).then(()=>{J=!1,_e()}).catch(()=>{J=!1}))}function Tn(e){if(!I())return;_e();const t=[...e].sort().join("\0");re!==t&&Te(t)}async function on(e){if(!I())return;V=null;let t=nt([...e].sort());for(;;){if(await t,ve===t)return;t=ve}}async function _n(e,t,n){try{return await lt(e,t,n),re=null,Te(Ie),!0}catch(r){return Q({error:rt(r)}),!1}}function rt(e){return e instanceof Error?e.message:String(e)}const an={transform:{cx:0,cy:0,zoom:1},looked:null,refusal:null,size:{w:0,h:0},framedAt:0,drawn:[]};let ke=an,Le=0;const ne=new Set;let ot=0;function we(){return ke}function Ln(){return Le}function $n(e){return ne.add(e),()=>{ne.delete(e)}}function U(e){ke={...ke,...e},Le+=1;for(const t of[...ne])t()}function sn(){ot+=1,Le+=1;for(const e of[...ne])e()}function Fn(){return ot}function N(e){U({refusal:e})}const qe=new Map;function ln(e){let t=qe.get(e);return t||(t=fetch(Rt(e)).then(async n=>{if(!n.ok)throw new Error(`Blender display table ${e}: ${n.status} ${n.statusText}`);return new Uint16Array(await n.arrayBuffer())}),qe.set(e,t)),t}function cn(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return new Uint16Array(n.buffer,n.byteOffset,n.byteLength>>1)}async function at(e,t){const n=t.look??"None",r=t.toneMapping==="filmic",a=t.toneMapping==="none";if(!a&&t.toneMapping!=="agx"&&!r)throw new Error("Blender's Khronos PBR Neutral view transform has no scene-linear implementation in the browser, so it cannot resolve a composited or scene-referred frame (implemented: Standard, AgX, Filmic)");const o=a?null:r?"filmic-srgb.lut":n==="None"?"agx-base-srgb.lut":Vt[n];if(o===void 0)throw new Error(`Blender display transform has no table for look ${n}`);const s=o?await ln(o):null,l=t.linearInput,c=l?{pixels:cn(l.base64),width:l.width,height:l.height}:e;if(!c)throw new Error("Blender display transform requires a linear capture");const{pixels:d,width:i,height:h}=c,b=a?Zt(d,i*h,t.exposure):r?zt(s,d,i*h,t.exposure):Wt(s,d,i*h,{exposure:t.exposure,composedLook:n!=="None"}),M=document.createElement("canvas");M.width=i,M.height=h;const B=M.getContext("2d");if(!B)throw new Error("Blender display transform could not create its image canvas");const w=B.createImageData(i,h),g=i*4;for(let m=0;m<h;m++){const u=(h-1-m)*g;w.data.set(b.subarray(u,u+g),m*g)}B.putImageData(w,0,0);const E=M.toDataURL("image/png"),f={base64:E.slice(E.indexOf(",")+1),mimeType:"image/png"};if(t.linear===!0){const m=new Uint8Array(d.buffer,d.byteOffset,d.byteLength);let u="";for(let p=0;p<m.length;p+=32768)u+=String.fromCharCode(...m.subarray(p,p+32768));f.linearBase64=btoa(u),f.linearWidth=i,f.linearHeight=h}return f}async function un(e,t,n,r,a=()=>{}){const o={none:ge,agx:Ve,neutral:Ct,filmic:ge};await n.prepare(t),a();const s={effect:n.effect,width:r.width,height:r.height,transparent:r.transparent===!0,toneMapping:o[r.toneMapping]??Ve,exposure:r.exposure},l=r.toneMapping==="agx"||r.toneMapping==="filmic"||r.linear===!0?await at(Kt(e,t,s),r):null;if(a(),l)return l;const c=Yt(e,t,s);if(!c)throw new Error("Blender render could not capture its image");return{base64:c.slice(c.indexOf(",")+1),mimeType:"image/png"}}const dn="document:blender:runtime";let j=null,He=0;function Rn(e){const t=++He;return j=e,D(),()=>{He===t&&(j=null,D())}}function Ee(){const e=v?.document,t=k().documents.activeId(),n=t?.startsWith("document:model:")?t.slice(15):j?.blend;return!n||!e||n===e?null:`Blender is editing ${e}; ${n} is not open. Return to ${e} before editing.`}function L(){return j?.documentId??dn}function st(){return L()}async function On(e,t){const n=k();if(!n.session.open())throw new Error("Opening a model requires an open project session.");const r=n.projectLocalState.projectRootPath();if(r===null)throw new Error("Opening a model requires a project path.");if(j!==e||n.documents.activeId()!==e.documentId)return!1;const a=x(),o=a.start(r,e.blend);return t(),await o,j!==e?!1:(await a.present(),j===e)}function I(){return v?.project!=null&&Ee()===null}let it=0;const Se=new Set;function Nn(){return it}function Dn(e){return Se.add(e),()=>{Se.delete(e)}}function D(){it+=1;for(const e of[...Se])e()}async function Pn(e,t){return I()?x().rna(e,t):null}async function Vn(e,t){return I()?x().rnaContext(e,t):null}async function hn(e,t,n,r,a=!0){if(!I())return null;const o=await x().rnaSet(e,t,n,r,a);return D(),o}async function Un(e){I()&&await x().viewShading(e)}async function fn(e,t=!0,n="Blender Python"){const r=await x().execute(e,t,n);D();const a=/^Error executing code:/.exec(r);return{text:r,executed:a===null,result:a===null?r.replace(/^Code executed successfully: ?/,""):"",error:a===null?null:r.replace(/^Error executing code: ?/,"")}}function Wn(){x().historyGesture("history-begin").catch(e=>k().console.error(`Could not begin Blender undo gesture: ${String(e)}`,"blender-history"))}async function Gn(){await x().historyGesture("history-end")}async function pn(e){return I()?x().outliner(e):null}async function zn(e){return I()?x().nodeTree(e):null}async function qn(e){return I()?x().uvLayout(e):null}async function Hn(e){return I()?x().rig(e):null}async function Xn(e){return I()?x().actionClip(e):null}async function lt(e,t,n){if(!I())return null;const r=await x().outlinerSet(e,t,n);return D(),r}const wn={view:"blender-node-view",title:"Node Editor",verbs:[["state",void 0],["look",void 0],["view-all","Node Editor: Frame All"],["zoom",void 0],["pan",void 0],["move",void 0],["link",void 0],["set-value",void 0],["use-nodes",void 0],["collapse-panel",void 0]].map(([e,t])=>({id:e,...t?{title:t}:{},run:n=>ct({...n,action:e})}))};function ct(e){const t=typeof e.action=="string"?e.action:"state";switch(t){case"state":break;case"look":U({looked:typeof e.node=="string"?e.node:null,refusal:null});break;case"view-all":sn(),U({refusal:null});break;case"zoom":{const n=typeof e.zoom=="number"?e.zoom:1;U({transform:{...we().transform,zoom:n},refusal:null});break}case"pan":{const n=we().transform;U({transform:{...n,cx:typeof e.cx=="number"?e.cx:n.cx,cy:typeof e.cy=="number"?e.cy:n.cy},refusal:null});break}case"move":N(`Moving "${String(e.node??"a node")}" writes Node.location — editing parity is not the program.`);break;case"link":N("Dragging between sockets would make a link — editing parity is not the program.");break;case"set-value":N(`Changing "${String(e.socket??"a socket")}" writes the socket's default_value — editing parity is not the program.`);break;case"use-nodes":N("Use Nodes writes Material.use_nodes — editing parity is not the program.");break;case"collapse-panel":N(`Collapsing "${String(e.panel??"a panel")}" writes the panel's is_collapsed — editing parity is not the program.`);break;default:N(`blender-node-view: no action "${t}" — state, look, view-all, zoom, pan, and the refusals move, link, set-value, use-nodes, collapse-panel.`)}return we()}let v=null;const ee=new Set;function ut(){ee.size&&k().history.invalidate([...ee]),ee.clear()}let Be=null,Xe=!1;function te(e){try{const t=k().session.beginWork(`Blender: ${e}`);return()=>{try{t()}catch{}}}catch{return()=>{}}}function Ce(){const e=te("invalidating history and releasing runtime");try{ut(),Be?.abort(),Be=null,v?.terminate(),v=null,dt=null}finally{e()}}function gn(){Xe||(Xe=!0,k().session.onBeforeClose(async()=>{await v?.stop(),Ce()}),k().session.onEnded(Ce))}let dt=null;const mn=e=>typeof e=="object"&&e!==null&&typeof e.applyFrame=="function"&&typeof e.snapshot=="function"&&typeof e.captureSnapshot=="function"&&typeof e.recordPresentation=="function"&&typeof e.recordPhotograph=="function";async function yn(){const{documents:e}=k(),t=Date.now()+15e3;let n=L();for(;;){n=L();const r=await e.waitForContext(n,Math.max(0,Math.min(250,t-Date.now())));if(mn(r))return r;if(Date.now()>=t)break}throw new Error(`The Blender Model document is not open, or the open one is not a Model this engine can present to (it must answer applyFrame, captureSnapshot, recordPresentation and recordPhotograph): nothing published a presentable view as ${n} within 15 s (bound model: ${j?.documentId??"none"}). Open the Model document first (\`volter blender-mcp\` opens it before its first call).`)}function x(){const e=Ee();if(e)throw new Error(e);if(v!==null)return v;gn();const t=new AbortController;Be=t;let n=!1;v=new It({work:te,history:a=>{const o=v;if(!o)throw new Error("Blender history arrived before its runtime");for(const s of a){if("reset"in s){ut();continue}if(!s.resource)throw new Error("A Blender edit has no document resource");ee.add(s.resource);const l=async c=>{if(v!==o)throw new Error("This Blender history belongs to a closed worker");const d=await o.historyStep(s.id,c);return D(),await on(Qt().selected),d};k().history.record({id:s.id,label:s.label,resources:[s.resource],document:L(),undo:()=>l("undo"),redo:()=>l("redo")})}},present:async(a,o,s)=>{const l=Ee();if(l)throw new Error(l);if(j===null){if(s?.render)throw new Error("Rendering a Blender frame needs the Model document open; nothing is presenting.");return{}}const c=L(),d=te("waiting for Model presenter");let i;try{i=await yn()}finally{d()}if(t.signal.throwIfAborted(),L()!==c)throw new Error("Blender document changed before its frame could be presented");const h=te("applying frame to Model"),b=(()=>{try{return i.applyFrame(a)}finally{h()}})(),M=typeof b=="object"&&b!==null&&"held"in b,B=M?b.held:null,w=A=>({...A===void 0?{}:{capture:A},...M?{held:B}:{}});if(i.recordPresentation(o),!s||(dt=s,!s.render))return w(void 0);const g=i.snapshot(),E=()=>{if(t.signal.throwIfAborted(),L()!==c||i.snapshot()!==g)throw new Error("Blender capture document or source revision changed before completion")};if(s.render.linearInput){const A=await at(null,s.render);return E(),w(A)}const{render:f,position:m,target:u,up:p}=s;if(!m||!u||!p)throw new Error("A Blender render capture must carry the scene camera position, target and up");if(n)throw new Error("A Blender render capture is already in progress");const C=i.captureSnapshot();n=!0,t.signal.addEventListener("abort",C.dispose,{once:!0});try{E();const A=new xt;A.add(C.root),A.updateMatrixWorld(!0);const y=C.root.matrixWorld,oe=new kt().copy(y).invert(),ht=new Pe().setFromMatrix4(y),ft=new Pe().setFromMatrix4(oe),ae=new ie(m[0],m[1],m[2]).applyMatrix4(y),$e=new ie(u[0],u[1],u[2]).applyMatrix4(y),Fe=new ie(p[0],p[1],p[2]).applyMatrix3(ht),se=Math.min(2048,Math.round(f.width))/Math.min(2048,Math.round(f.height)),Re=jt(C.root).getBoundingSphere(new Et),G=At(ae.distanceTo(Re.center),Re.radius);let R;if(f.orthographic){const z=f.fov/2;R=new St(-z*se,z*se,z,-z,G.near,G.far)}else R=new Bt(f.fov,se,G.near,G.far);R.up.copy(Fe),R.position.copy(ae),R.lookAt($e),R.updateMatrixWorld(!0);const Oe={position:ae.clone().applyMatrix4(oe).toArray(),target:$e.clone().applyMatrix4(oe).toArray(),up:Fe.clone().applyMatrix3(ft).toArray()};i.recordPhotograph({sent:{position:m,target:u,up:p},photographed:Oe,render:{width:f.width,height:f.height,fov:f.fov,orthographic:f.orthographic}});const pt=await un(A,R,C,f,E);return w({...pt,camera:Oe})}finally{n=!1,t.signal.removeEventListener("abort",C.dispose),C.dispose()}},log:(a,o)=>console[a](`[blender] ${o}`)});const r=v;return k().session.reportWorkerCallMeter("Blender",()=>r.metrics()),v}const bn="models/model.blend",S=(e,t)=>{const n=e[t];if(typeof n!="string")throw new Error(`${String(e.type)} requires a string "${t}"`);return n};async function Mn(e){const t=k().projectLocalState.projectRootPath();if(t===null)return{};let n;try{n=await e.execute(`import bpy
|
|
5
|
-
print(bpy.data.filepath)
|
|
6
|
-
`,!1)}catch{return{}}if(/^Error executing code:/m.test(n))return{};const r=n.replace(/^Code executed successfully:/,"").split(`
|
|
7
|
-
`).map(o=>o.trim()).filter(o=>o.startsWith("/")).pop()??"";if(r==="")return{};const a=t.endsWith("/")?t:`${t}/`;return r.startsWith(a)?{document:r.slice(a.length)}:{}}async function Zn(e){const t=k();if(e.type==="blender-status")return{ok:!0,data:{started:v?.project!=null,document:t.documents.context(L())!==void 0,lastOutput:v?.lastOutput??[]}};if(!t.session.open())return{ok:!1,error:`${e.type} needs an open project session; this editor page has none.`};try{const n=e.type==="blender-start"?S(e,"project"):null;let r=typeof e.document=="string"?e.document:void 0;if((e.type==="blender-stop"||e.type==="blender-start"&&e.fresh===!0)&&(await v?.stop(),Ce(),e.type==="blender-stop"))return{ok:!0,data:{stopped:!0}};if(e.type==="blender-start"&&!t.documents.context(L())){const o=await t.project.documentTable(),s=o.entries.filter(i=>i.kind==="model"),l=r!==void 0?s.find(i=>i.source?.path===r):s.find(i=>i.id===(j?.entryId??o.default))??(s.length===1?s[0]:void 0);if(!l)return{ok:!1,error:r!==void 0?`No declared Model document names ${r}.`:`Choose a Model document before starting Blender. Available: ${s.map(i=>i.id).join(", ")||"(none)"}.`};const c=l.id;if(r=l.source?.path,!await t.workspace.open({kind:"document",id:c}))return{ok:!1,error:`blender-start could not open the Blender Model document ${c}: nothing in this editor opens that document (the Model document ships with @volter/editor-blender).`}}const a=x();switch(e.type){case"blender-start":{const o=r!==void 0?r:j?.blend??bn;return{ok:!0,data:{...await a.start(n,o)}}}case"blender-execute":return{ok:!0,data:{result:(await fn(S(e,"code"))).text}};case"blender-scene-info":return{ok:!0,data:{result:await a.sceneInfo()}};case"blender-object-info":return{ok:!0,data:{result:await a.objectInfo(S(e,"name"))}};case"blender-rna":{const o=typeof e.names=="number"?e.names:void 0;return{ok:!0,data:{result:await a.rna(S(e,"path"),o)}}}case"blender-rna-context":{const o=typeof e.object=="string"?e.object:void 0,s=typeof e.collection=="string"?e.collection:void 0;return{ok:!0,data:{result:await a.rnaContext(o,s)}}}case"blender-rna-set":{const o=typeof e.index=="number"?e.index:void 0;return{ok:!0,data:{result:await hn(S(e,"path"),S(e,"property"),e.value,o)}}}case"blender-outliner":{const o=Array.isArray(e.selected)?e.selected.filter(s=>typeof s=="string"):void 0;return{ok:!0,data:{result:await a.outliner(o)}}}case"blender-node-tree":return{ok:!0,data:{result:await a.nodeTree({...typeof e.path=="string"?{path:e.path}:{},...typeof e.material=="string"?{material:e.material}:{}})}};case"blender-uv-layout":return{ok:!0,data:{result:await a.uvLayout({...typeof e.object=="string"?{object:e.object}:{},...typeof e.uvLayer=="string"?{uvLayer:e.uvLayer}:{}})}};case"blender-rig":return{ok:!0,data:{result:await a.rig({...typeof e.object=="string"?{object:e.object}:{}})}};case"blender-action-clip":return{ok:!0,data:{result:await a.actionClip({...typeof e.object=="string"?{object:e.object}:{},...typeof e.bake=="boolean"?{bake:e.bake}:{}})}};case"blender-node-view":{const o=typeof e.action=="string"?e.action:"state";return{ok:!0,data:{result:wn.verbs.some(l=>l.id===o)?wt("blender-node-view",o,e):ct(e)}}}case"blender-outliner-set":return{ok:!0,data:{result:await lt(S(e,"path"),S(e,"column"),e.value!==!1)}};case"blender-screenshot-view":{const o=typeof e.maxSize=="number"?e.maxSize:1e3,s={kind:"document",id:j?.entryId??"blender:runtime"};return{ok:!0,data:{...await a.screenshotView(o),document:s}}}case"blender-read-file":{const o=await a.readFile(S(e,"path")),s=S(e,"transferId"),l=await fetch(`/__editor/blender-file?id=${encodeURIComponent(s)}`,{method:"POST",headers:{"content-type":"application/octet-stream"},body:new Blob([o])});return l.ok?{ok:!0,data:{bytes:o.length}}:{ok:!1,error:`Transfer ${s} was refused: ${l.status}`}}case"blender-write-file":{const o=atob(S(e,"base64")),s=Uint8Array.from(o,l=>l.charCodeAt(0));return await a.writeFile(S(e,"path"),s),{ok:!0,data:{written:s.length}}}case"blender-list-files":{const o=await a.listFiles(S(e,"path")),s=a.presented;return{ok:!0,data:{entries:o,...s?{session:s.session,revision:s.revision}:{},...await Mn(a)}}}}return{ok:!1,error:`Unknown Blender command ${e.type}`}}catch(n){return{ok:!1,error:n instanceof Error?n.message:String(n)}}}export{Wn as A,_n as B,Tn as C,fn as D,je as E,Rn as F,On as G,Un as H,wn as N,$n as a,Nn as b,U as c,we as d,zn as e,Fn as f,Xn as g,Zn as h,Hn as i,qn as j,jn as k,st as l,I as m,Ln as n,D as o,Vn as p,Pn as q,N as r,Dn as s,hn as t,In as u,Cn as v,on as w,Qt as x,An as y,Gn as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ah as m}from"./index-BBJS-iXi.js";import{b as p,a as e,c as n,s}from"./game-network-sY7WtOsz.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-cH9M-ECp.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BVNyR7Oo.js";import"./contract-system-adapters-D0uU7TTW.js";import"./game-contract-seams-J9cSYLjV.js";import"./seeded-random-C4aOVk3P.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-B5iguji-.js";import"./capability-coverage-Q2P1rSMp.js";import"./edit-mode-authoring-C8rX2VgE.js";import"./json-history-resource-WyAPanbc.js";import"./binding-resolver-BHrecg84.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-CpK0EhW0.js";import"./canvas-entry-runtime-CJ3DEkVJ.js";import"./three-ingest-runtime-CWGzfEzB.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-DQnefOtw.js";import"./ingest-source-persistence-BU1UHwYR.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-B0pGGdFv.js";import"./mounted-authoring-CR7KlQE8.js";import"./entity-object-DfdMnbKr.js";import"./user-data-C0atC9Sj.js";import"./workspace-arrangement-VoQDucQX.js";import"./three-contract-Dkt6PmWY.js";import"./three-DhYM4vlJ.js";import"./editor-layers-DZM820Rd.js";import"./component-instance-root-mlam7I49.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-BH3GIXjI.js";import"./source-persistence-backend-CLtPG9D6.js";import"./three-projection-core-BcSX6zt9.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-CjH-3Qtw.js";import"./deferred-ingest-play-Dsicru08.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-o8MIisir.js";import"./board-guides-kYCRVwEV.js";import"./relative-import-specifier-BNIBX4vp.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-kgW5_-pM.js";import"./inference-diagnostics-DTcvxJSE.js";import"./writer-tw6EcuVO.js";import"./three-state-C415Xr4Q.js";import"./editor-shell-store-CFlfnY8x.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BIJ29zym.js";import"./game-surface-defaults-D8S4cRxi.js";const zt="workspace.command",a=()=>({ok:!1,error:"not in play mode — start play before using the debug seam"}),Bt={"set-instance-count":{derivedRefresh:"always",handle:o=>{if(!e())return a();const r=o.names;if(Array.isArray(r)&&r.every(i=>typeof i=="string"))return r.length<1?{ok:!1,error:'set-instance-count "names" must have at least one entry.'}:(n(r),{ok:!0});const t=o.count;return typeof t!="number"||!Number.isFinite(t)||t<1?{ok:!1,error:`set-instance-count requires a whole "count" >= 1 (or a "names" array), got ${String(t)}.`}:(s(Math.floor(t)-1),{ok:!0})}},"list-instances":{derivedRefresh:"if-content-changed",handle:()=>({ok:!0,data:{instances:m(),named:p()}})}};export{Bt as commands,zt as point};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as t}from"./game-network-sY7WtOsz.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-BBJS-iXi.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./native-debug-module-cH9M-ECp.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BVNyR7Oo.js";import"./contract-system-adapters-D0uU7TTW.js";import"./game-contract-seams-J9cSYLjV.js";import"./seeded-random-C4aOVk3P.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-B5iguji-.js";import"./capability-coverage-Q2P1rSMp.js";import"./edit-mode-authoring-C8rX2VgE.js";import"./json-history-resource-WyAPanbc.js";import"./binding-resolver-BHrecg84.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-CpK0EhW0.js";import"./canvas-entry-runtime-CJ3DEkVJ.js";import"./three-ingest-runtime-CWGzfEzB.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-DQnefOtw.js";import"./ingest-source-persistence-BU1UHwYR.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-B0pGGdFv.js";import"./mounted-authoring-CR7KlQE8.js";import"./entity-object-DfdMnbKr.js";import"./user-data-C0atC9Sj.js";import"./workspace-arrangement-VoQDucQX.js";import"./three-contract-Dkt6PmWY.js";import"./three-DhYM4vlJ.js";import"./editor-layers-DZM820Rd.js";import"./component-instance-root-mlam7I49.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-BH3GIXjI.js";import"./source-persistence-backend-CLtPG9D6.js";import"./three-projection-core-BcSX6zt9.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-CjH-3Qtw.js";import"./deferred-ingest-play-Dsicru08.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-o8MIisir.js";import"./board-guides-kYCRVwEV.js";import"./relative-import-specifier-BNIBX4vp.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-kgW5_-pM.js";import"./inference-diagnostics-DTcvxJSE.js";import"./writer-tw6EcuVO.js";import"./three-state-C415Xr4Q.js";import"./editor-shell-store-CFlfnY8x.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BIJ29zym.js";import"./game-surface-defaults-D8S4cRxi.js";const zt="workspace.service";function At(){t()}export{zt as point,At as start};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/r3f-design-session-DNMj8nru.js","assets/index-BBJS-iXi.js","assets/index-nmcBqr7Y.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-D_NuPfjr.js","assets/jsx-runtime-DPjLkJKQ.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/edit-mode-authoring-C8rX2VgE.js","assets/game-network-sY7WtOsz.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-cH9M-ECp.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-BVNyR7Oo.js","assets/contract-system-adapters-D0uU7TTW.js","assets/game-contract-seams-J9cSYLjV.js","assets/seeded-random-C4aOVk3P.js","assets/game-audio-BeCyd0Ha.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-CYeuVCYr.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/index-bQE2NA0D.js","assets/live-project-verbs-B5iguji-.js","assets/capability-coverage-Q2P1rSMp.js","assets/json-history-resource-WyAPanbc.js","assets/binding-resolver-BHrecg84.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-CpK0EhW0.js","assets/canvas-entry-runtime-CJ3DEkVJ.js","assets/three-ingest-runtime-CWGzfEzB.js","assets/EffectComposer-BEAt0PtQ.js","assets/CopyShader-BzTUYzf6.js","assets/ShaderPass-DTnDQXm0.js","assets/Pass-D1MRT672.js","assets/CSS3DRenderer-BsAqfavI.js","assets/relative-path-guard-GiM7Lsz8.js","assets/react-root-BHA-cdrW.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/active-ingest-DQnefOtw.js","assets/ingest-source-persistence-BU1UHwYR.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-B0pGGdFv.js","assets/mounted-authoring-CR7KlQE8.js","assets/entity-object-DfdMnbKr.js","assets/user-data-C0atC9Sj.js","assets/workspace-arrangement-VoQDucQX.js","assets/three-contract-Dkt6PmWY.js","assets/three-DhYM4vlJ.js","assets/editor-layers-DZM820Rd.js","assets/component-instance-root-mlam7I49.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-BH3GIXjI.js","assets/source-persistence-backend-CLtPG9D6.js","assets/three-projection-core-BcSX6zt9.js","assets/body-marks-C1LxJtQb.js","assets/user-data-CODoGZqA.js","assets/object-marks-BnvSuCTt.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-CjH-3Qtw.js","assets/deferred-ingest-play-Dsicru08.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-o8MIisir.js","assets/board-guides-kYCRVwEV.js","assets/relative-import-specifier-BNIBX4vp.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-kgW5_-pM.js","assets/inference-diagnostics-DTcvxJSE.js","assets/writer-tw6EcuVO.js","assets/three-state-C415Xr4Q.js","assets/editor-shell-store-CFlfnY8x.js","assets/output-pass-HurwNl0G.js","assets/viewport-door-BIJ29zym.js","assets/game-surface-defaults-D8S4cRxi.js","assets/scene-framing-BEyDXv-l.js","assets/assets-BcrMQHRv.js","assets/loader-BTUKnX5Q.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/create-runtime-DlahVBnC.js","assets/binding-Bmxqznjk.js","assets/root-stacking-BEd9ZvxC.js","assets/setup-renderer-DVXJnNwP.js","assets/index-DHhMOs_s.js","assets/defaults-DKiBJCPN.js","assets/render-settings-CxVtqFoK.js","assets/render-features-1Oh23ztU.js","assets/loop-gate-report-N52EWFGD.js","assets/system-slot-E2mEdiih.js","assets/performance-profiler-CMbwGBuk.js","assets/live-gesture-lock-DJbrjOqf.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{_ as s,aF as n}from"./index-BBJS-iXi.js";import{r as a}from"./design-time-mount-registry-DUpXCg1U.js";import{q as c}from"./edit-mode-authoring-C8rX2VgE.js";import{a as u}from"./json-history-resource-WyAPanbc.js";import{o as h}from"./three-authoring-adapter-BH3GIXjI.js";import{t as i}from"./editor-shell-store-CFlfnY8x.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./component-instance-root-mlam7I49.js";import"./user-data-C0atC9Sj.js";import"./workspace-arrangement-VoQDucQX.js";import"./source-persistence-backend-CLtPG9D6.js";import"./ingest-source-persistence-BU1UHwYR.js";import"./three-projection-core-BcSX6zt9.js";import"./editor-layers-DZM820Rd.js";import"./three-DhYM4vlJ.js";import"./entity-object-DfdMnbKr.js";import"./three-contract-Dkt6PmWY.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three.core-3arARmh6.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./r3f-physics-binding-CjH-3Qtw.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./Pass-D1MRT672.js";const U="workspace.service";function X(){const r=s(()=>import("./r3f-design-session-DNMj8nru.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99]));r.catch(()=>{});const m=n("three",(t,o)=>h(i(t),()=>i(t).scene,o,u(o))),e=a({kind:"three",owner:"@volter/editor-game/three/three-authoring",async mountWorldRootSession(t){const o=t,{mountR3FDesignSession:p}=await r;return p(o.store,o.composite,o.renderer)}});return c(),()=>{e(),m()}}export{U as point,X as start};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as r}from"./three-integration-Bk3H7QpJ.js";import"./index-BBJS-iXi.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./renderer-ownership-BovSEcLv.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./preview-renderer-BrYNFV1p.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./layered-pick-c_oHJY1l.js";import"./root-stacking-BEd9ZvxC.js";import"./user-data-C0atC9Sj.js";import"./workspace-arrangement-VoQDucQX.js";import"./model-thumbnail-CjJiBCyG.js";import"./studio-environment-C_N35mBk.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./object3d-document-session-registry-Dr6nlucg.js";import"./three-state-C415Xr4Q.js";import"./editor-shell-store-CFlfnY8x.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./editor-layers-DZM820Rd.js";import"./entity-object-DfdMnbKr.js";import"./three-contract-Dkt6PmWY.js";import"./hierarchy-marks-DNv34RDe.js";import"./component-instance-root-mlam7I49.js";import"./viewport-door-BIJ29zym.js";import"./content-bounds-BRxD4jMU.js";import"./asset-preview-DAM7CurX.js";import"./bitmap-label-Ct4k6ehY.js";const Q="workspace.service";function R(){return r()}export{Q as point,R as start};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as o}from"./jsx-runtime-DPjLkJKQ.js";import{r as t}from"./index-BBJS-iXi.js";import{r as m}from"./index-nmcBqr7Y.js";import{P as p}from"./PlayBar-C18rsyw9.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-D_NuPfjr.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./configurations-B5NMntJY.js";import"./run-selection-BiHQvp3p.js";import"./game-network-sY7WtOsz.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-cH9M-ECp.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BVNyR7Oo.js";import"./contract-system-adapters-D0uU7TTW.js";import"./game-contract-seams-J9cSYLjV.js";import"./seeded-random-C4aOVk3P.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-B5iguji-.js";import"./capability-coverage-Q2P1rSMp.js";import"./edit-mode-authoring-C8rX2VgE.js";import"./json-history-resource-WyAPanbc.js";import"./binding-resolver-BHrecg84.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-CpK0EhW0.js";import"./canvas-entry-runtime-CJ3DEkVJ.js";import"./three-ingest-runtime-CWGzfEzB.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-DQnefOtw.js";import"./ingest-source-persistence-BU1UHwYR.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-B0pGGdFv.js";import"./mounted-authoring-CR7KlQE8.js";import"./entity-object-DfdMnbKr.js";import"./user-data-C0atC9Sj.js";import"./workspace-arrangement-VoQDucQX.js";import"./three-contract-Dkt6PmWY.js";import"./three-DhYM4vlJ.js";import"./editor-layers-DZM820Rd.js";import"./component-instance-root-mlam7I49.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-BH3GIXjI.js";import"./source-persistence-backend-CLtPG9D6.js";import"./three-projection-core-BcSX6zt9.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-CjH-3Qtw.js";import"./deferred-ingest-play-Dsicru08.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-o8MIisir.js";import"./board-guides-kYCRVwEV.js";import"./relative-import-specifier-BNIBX4vp.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-kgW5_-pM.js";import"./inference-diagnostics-DTcvxJSE.js";import"./writer-tw6EcuVO.js";import"./three-state-C415Xr4Q.js";import"./editor-shell-store-CFlfnY8x.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BIJ29zym.js";import"./game-surface-defaults-D8S4cRxi.js";const Dr="workspace.header",Fr=0;function Gr(){const{project:r}=t();return m.useSyncExternalStore(r.subscribe,r.mounts,r.mounts)?o.jsx(p,{}):null}export{Gr as default,Fr as order,Dr as point};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const w="/work/.volter-session",Ae=`${w}/session.py`,Oe=[`${w}/in`,`${w}/reply`],D="/__editor/blender-wasm";function Te(e){return e.startsWith("@@VOLTER-ERROR")?"error":e.startsWith("@@VOLTER-WARN")?"warn":"log"}function Q(e){return new URL(`${D}/${e}`,import.meta.url).href}async function Y(){const e=await fetch(Q("status"));return e.ok?await e.json():{available:!1,skew:null,dir:null,sizes:{},encoded:{},missing:[`${D}/status answered ${e.status}`]}}async function Z(e){const t=await Y();if(!t.available)throw new Error(`The headless Blender WebAssembly build is not served by this editor: ${t.missing.join("; ")}`);if(t.skew==="wali"){const{startWaliBlenderEngine:r}=await import("./blender-wali-engine-BmVwcYs-.js");return r(e,t)}const{startEmscriptenBlenderEngine:n}=await import("./blender-emscripten-engine-CRz1C2s0.js");return n(e,t)}function q(e){return e<200?1:e<5e3?5:25}const ee=e=>new Promise(t=>setTimeout(t,e)),_=new TextDecoder;function Be(e,t,n){let r=0,s=0;const o=new Set;async function i(l){for(const d of o)l.has(`${d}.done`)||(await e.unlink(`${w}/reply/${d}.json`),await e.unlink(`${w}/reply/${d}.done`),o.delete(d))}async function a(){let l;try{l=await e.readdir(`${w}/ask`)}catch{return}const d=new Set(l.filter(h=>h.endsWith(".done")));await i(d);for(const h of d){const f=h.slice(0,-5);if(Number(f)<=s)continue;s=Number(f);const p=JSON.parse(_.decode(await e.readFile(`${w}/ask/${f}.json`)));let u;try{u=await t.ask(p)}catch(y){u={error:y instanceof Error?y.message:String(y)}}await Promise.all([e.writeFile(`${w}/reply/${f}.json`,JSON.stringify(u??null)),e.writeFile(`${w}/reply/${f}.done`,"1")]),o.add(f)}}async function c(l){const d=String(++r);await Promise.all([e.writeFile(`${w}/in/${d}.json`,JSON.stringify(l)),e.writeFile(`${w}/in/${d}.done`,"1")]);const h=performance.now();for(;;){if(await a(),await e.stat(`${w}/out/${d}.done`)){const u=JSON.parse(_.decode(await e.readFile(`${w}/out/${d}.json`)));if(await e.unlink(`${w}/in/${d}.json`),await e.unlink(`${w}/in/${d}.done`),u.error)throw new Error(u.error);return u.result}const f=n?.();if(f)throw new Error(`Blender is gone, so this call will never be answered: ${f}. The session keeps its directory and its cached banner, so every later call would wait on the same missing answer; start a new program with \`blender-start {fresh: true}\` (\`VOLTER_BLENDER_FRESH_SESSION=1\` for the battery harness).`);const p=q(performance.now()-h);await(e.changed?e.changed(p):ee(p))}}return{request:c}}function te(e){const t=new Set,n=new Set,r=s=>{if(!(s===null||typeof s!="object"||n.has(s)))if(n.add(s),s instanceof ArrayBuffer)t.add(s);else if(ArrayBuffer.isView(s))s.buffer instanceof ArrayBuffer&&t.add(s.buffer);else for(const o of Object.values(s))r(o)};return r(e),[...t]}const ne=256*1024,re=4*1024*1024,oe=(1<<20)-1,se=(()=>{const e=new Uint32Array(256);let t=2654435769;for(let n=0;n<256;n+=1)t^=t<<13,t^=t>>>17,t^=t<<5,e[n]=t>>>0;return e})();function ie(e){const t=[];let n=0;for(;n<e.length;){const r=Math.min(e.length,n+re);let s=r,o=0;for(let i=n+Math.min(ne,r-n);i<r;i+=1)if(o=(o<<1)+se[e[i]]>>>0,(o&oe)===0){s=i+1;break}t.push(s),n=s}return t}async function ae(e){const t=[];let n=0;for(const r of ie(e)){const s=new Uint8Array(await crypto.subtle.digest("SHA-256",e.slice(n,r)));t.push({hash:Array.from(s,o=>o.toString(16).padStart(2,"0")).join(""),start:n,end:r}),n=r}return t}const T=e=>typeof e=="object"&&e!==null&&typeof e.offset=="number"&&typeof e.length=="number"&&typeof e.dtype=="string"&&typeof e.count=="number"&&typeof e.stride=="number",ce={f32:e=>new Float32Array(e.buffer,e.byteOffset,e.byteLength>>2),f64:e=>new Float64Array(e.buffer,e.byteOffset,e.byteLength>>3),u32:e=>new Uint32Array(e.buffer,e.byteOffset,e.byteLength>>2),i32:e=>new Int32Array(e.buffer,e.byteOffset,e.byteLength>>2),u16:e=>new Uint16Array(e.buffer,e.byteOffset,e.byteLength>>1),i16:e=>new Int16Array(e.buffer,e.byteOffset,e.byteLength>>1),u8:e=>e,i8:e=>new Int8Array(e.buffer,e.byteOffset,e.byteLength)};function de(e,t,n){const r=ce[n.dtype];if(!r)throw new Error(`Blender frame column ${t}: unknown dtype ${n.dtype}`);const{offset:s,length:o}=n;if(s<0||o<0||s+o>e.byteLength)throw new Error(`Blender frame column ${t}: bytes ${s}..${s+o} lie outside the ${e.byteLength}-byte export arena`);const i=e.subarray(s,s+o).slice(),a=r(i),c=n.count*n.stride;if(a.length!==c)throw new Error(`Blender frame column ${t}: ${a.length} values, ${c} declared (${n.count} x ${n.stride})`);return a}function v(e,t){const n=(r,s)=>{if(T(r)){const o=de(e,s,r);return s==="co"?Float64Array.from(o):o}if(Array.isArray(r))return r.map(o=>n(o,s));if(typeof r=="object"&&r!==null){const o={};for(const[i,a]of Object.entries(r))o[i]=n(a,i);return o}return r};return n(t,"")}async function P(e,t){const n=async(r,s)=>{if(T(r)){const{offset:o,length:i,dtype:a}=r;if(o<0||i<0||o+i>e.byteLength)throw new Error(`Blender frame column ${s}: bytes ${o}..${o+i} lie outside the ${e.byteLength}-byte export arena`);const c=e.subarray(o,o+i).slice(),l=await crypto.subtle.digest("SHA-256",c),d=[...new Uint8Array(l)].map(h=>h.toString(16).padStart(2,"0")).join("");return{dtype:a,length:i,sha256:d}}if(Array.isArray(r))return Promise.all(r.map(o=>n(o,s)));if(typeof r=="object"&&r!==null){const o={};for(const[i,a]of Object.entries(r))o[i]=await n(a,i);return o}return r};return n(t,"")}const S=e=>self.postMessage(e),N=(e,t)=>S({op:"log",level:e,text:t});let $=null,x=null,le=0;const A=new Map;function fe(e,t,n){const r=++le,s=te(e);return new Promise((o,i)=>{A.set(r,{resolve:o,reject:i});try{self.postMessage({op:"present",id:r,frame:e,description:t,...n?{capture:n}:{}},s)}catch(a){A.delete(r),i(a)}})}let m=null,O=null,L=!1,F=Promise.resolve();function ue(e){const t=F.then(e);return F=t.catch(()=>{}),t}let g=null;async function he(e,t){const n=new Map,r=async(s,o)=>{if(T(s)){n.set(s.offset,{typed:v(e,{[o]:s})[o],description:await P(e,s)});return}if(Array.isArray(s))for(const i of s)await r(i,o);else if(typeof s=="object"&&s!==null)for(const[i,a]of Object.entries(s))await r(a,i)};return await r(t,""),n}function we(e,t){const n=r=>{const s=(o,i)=>{if(T(o)){const c=e.columns.get(o.offset);if(!c)throw new Error(`Blender frame column ${i.join(".")}: not in the held frame`);return c[r]}if(Array.isArray(o))return o.map(c=>s(c,i));if(typeof o!="object"||o===null)return o;if(o.deferred===!0){const[c,l]=i.slice(-2),d=(c==="meshes"?e.meshes:e.images).get(l);if(!d)throw new Error(`Blender frame ${c} ${l}: deferred and never pulled`);return d[r]}const a={};for(const[c,l]of Object.entries(o))a[c]=s(l,[...i,c]);return a};return s(t,[])};return{typed:n("typed"),description:n("description")}}function J(e){L=e,S({op:"document-dirty",dirty:e})}async function W(){if(!m||O===null)return;const e=O,t={};let n=performance.now();const r=a=>{const c=performance.now();t[a]=Math.round(c-n),n=c};let s;try{s=await m.request({op:"save-document"}),r("save")}catch(a){throw new Error(`The Blender document ${e} could not be saved: ${k(a)}`)}if(!s?.saved||typeof s.path!="string")throw new Error(`Blender did not save the document ${e}`);let o;try{o=await m.files.readFile(s.path),r("read")}catch(a){throw new Error(`The Blender document ${e} could not be read back out of the engine: ${k(a)}`)}b.delete(s.path);let i=0;try{const a=await ae(o);r("chunk");const c=`path=${encodeURIComponent(e)}`,l=JSON.stringify({chunks:a.map(({hash:d,start:h,end:f})=>[d,f-h])});for(let d=0;;d+=1){const h=await fetch(`/__editor/blender-document?${c}`,{method:"POST",headers:{"content-type":"application/json"},body:l}),f=await h.json().catch(()=>null);if(r(`manifest${d}`),!h.ok)throw new Error(`HTTP ${h.status} ${f?.error??""}`);if(f?.ok){for(const[u,y]of Object.entries(f.ms??{}))t[`server.${u}`]=y;break}if(d===2||!Array.isArray(f?.missing))throw new Error(`the server still lacks ${f?.missing?.length??"?"} chunks`);const p=new Set(f.missing);for(const u of a){if(!p.delete(u.hash))continue;const y=await fetch(`/__editor/blender-document-chunk?${c}&hash=${u.hash}`,{method:"POST",headers:{"content-type":"application/octet-stream"},body:new Blob([o.subarray(u.start,u.end)])});if(!y.ok)throw new Error(`HTTP ${y.status} ${await y.text().catch(()=>"")}`);i+=u.end-u.start}r(`send${d}`)}}catch(a){throw new Error(`The Blender document ${e} was not written to the project: ${k(a)}`)}J(!1),N("log",`@@VOLTER-DOCUMENT ${JSON.stringify({path:e,bytes:o.length,sent:i,ms:t})}`)}async function ye(e,t){const n={engine:null},r=await Z({project:e,log:N,ask:async({frame:o,hold:i,mesh:a,image:c,piece:l,present:d,capture:h,saveDue:f})=>{if(!n.engine)throw new Error("The Blender session presented before it started");f&&O!==null&&J(!0);const p=await n.engine.readArena();if(i!==void 0)return g={columns:await he(p,i),meshes:new Map,images:new Map},{};if(a!==void 0||c!==void 0){if(!g)throw new Error(`The Blender session sent ${a??c} before its frame`);const I=l?.encodedPath;let j;if(c!==void 0&&typeof I=="string"){const{encodedPath:je,...M}=l,B=(await n.engine.files.readFile(I)).slice(),K=new Uint8Array(await crypto.subtle.digest("SHA-256",B)),G=Array.from(K,X=>X.toString(16).padStart(2,"0")).join("");j={typed:{...M,encoded:B},description:{...M,encoded:{dtype:"u8",length:B.length,sha256:G}}}}else j={typed:v(p,l),description:await P(p,l)};return a!==void 0?g.meshes.set(a,j):g.images.set(c,j),{}}let u,y;if(d){if(!g)throw new Error("The Blender session presented a frame it never sent");({typed:u,description:y}=we(g,o)),g=null}else u=v(p,o),y=await P(p,o);const E=await fe(u,y,h);return{...typeof E.capture=="object"&&E.capture!==null?E.capture:{},..."held"in E?{held:E.held}:{}}}});n.engine=r,m=r,t&&await H(r.files,e);const s=await r.request({op:"start",project:e,...t?{document:t}:{}});return t&&(O=t),$={start:async()=>s,execute:async o=>{const i=await r.request({op:"execute",code:o});return i.error?`Error executing code: ${i.error}`:`Code executed successfully: ${i.result}`},sceneInfo:async()=>JSON.stringify(await r.request({op:"scene-info"}),null,2),objectInfo:async o=>JSON.stringify(await r.request({op:"object-info",name:o}),null,2),screenshotView:async o=>(await r.request({op:"present",capture:{size:o}}),JSON.stringify({view:{size:o}}))},{...s,engine:"blender-wasm",skew:r.skew,bootMs:Math.round(r.bootMs),releasedPayloadMB:r.releasedPayloadBytes===null?null:Math.round(r.releasedPayloadBytes/1048576)}}async function pe(){try{const e=await fetch("/__editor/blender-wasm/status");return e.ok?await e.json():{available:!1,missing:[`status answered ${e.status}`]}}catch(e){return{available:!1,missing:[String(e)]}}}async function me(e,t){if($)throw new Error("The Blender session is already started");if(!e.startsWith("/"))throw new Error("The Blender session needs the project's absolute path");if(t!==void 0&&!be(t))throw new Error(`The Blender document must be a project-relative .blend path with no traversal (models/model.blend); got ${JSON.stringify(t)}`);const n=await pe();if(!n.available)throw new Error(`Headless Blender is not served by this editor, so there is no modeling engine: ${n.missing.join("; ")}. The engine is Blender compiled to WebAssembly (packages/blender-engine/wasm, or the directory VOLTER_BLENDER_WASM_DIR names); nothing stands in for it.`);return x=e,ye(e,t)}function be(e){return!e.endsWith(".blend")||e.startsWith("/")||e.includes("\\")?!1:e.split("/").every(n=>n!==""&&n!=="."&&n!=="..")}const U=new Set;function R(e){U.has(e)||(U.add(e),N("error",e))}async function ge(e){const t=i=>(R(`The project's files are not readable from Python: ${i}`),null);let n;try{n=await fetch("/__editor/blender-project-index")}catch(i){return t(String(i))}if(!n.ok)return t(`/__editor/blender-project-index answered ${n.status}`);let r;try{if(r=await n.json(),typeof r?.root!="string"||!Array.isArray(r.files))return t("invalid project index")}catch(i){return t(String(i))}const{root:s,files:o}=r;return s!==e&&R(`The editor serving this tab has ${s} open, not ${e}; its files are mounted at ${e}, which is where Python is looking.`),o}const b=new Map;async function $e(e,t){const n=await e.stat(t);return n?`${n.size}:${n.mtimeMs}`:""}async function H(e,t){const n=await ge(t);if(!n)return;const r=new Set(n.map(s=>`${t}/${s.path}`));for(const s of[...b.keys()])if(!r.has(s)){try{await e.unlink(s)}catch{}b.delete(s)}for(const s of n){const o=`${t}/${s.path}`,i=`${s.size}:${s.mtime}`;if(b.get(o)?.host===i||!b.has(o)&&await e.stat(o)!==null)continue;const a=await fetch(`/__editor/blender-project-file?path=${encodeURIComponent(s.path)}`);if(!a.ok){R(`${s.path}: HTTP ${a.status}`);continue}const c=o.slice(0,o.lastIndexOf("/"));c&&await e.mkdirTree(c),e.writeFileStream&&a.body?await e.writeFileStream(o,a.body,s.size):await e.writeFile(o,new Uint8Array(await a.arrayBuffer())),b.set(o,{host:i,engine:await $e(e,o)})}}async function Se(e,t){const n=[],r=async s=>{let o;try{o=await e.readdir(s)}catch{return}for(const i of o){if(i==="."||i==="..")continue;const a=`${s.replace(/\/$/,"")}/${i}`,c=await e.stat(a);if(c){if((c.mode&61440)===16384){await r(a);continue}b.get(a)?.engine!==`${c.size}:${c.mtimeMs}`&&n.push({path:a,size:c.size,mtime:c.mtimeMs})}}};return await r(t),n}async function z(e){switch(e.op){case"start":return me(e.project,e.document);case"present-result":{const r=A.get(e.id);A.delete(e.id),r&&(e.error?r.reject(new Error(e.error)):r.resolve({...e.capture===void 0?{}:{capture:e.capture},..."held"in e?{held:e.held}:{}}));return}}if(!$||!x||!m)throw new Error("The Blender session has not started");const t=m.files,n=m.request.bind(m);switch(e.op){case"flush-document":return L?(await W(),{saved:!0}):{saved:!1};case"history-begin":case"history-end":return n({op:e.op});case"history-step":return n({op:"history-step",token:e.token,direction:e.direction});case"execute":await H(t,x);{const r=await n({op:"execute",code:e.code,history:e.history??!0,label:e.label??"Blender Python"});return r.error?`Error executing code: ${r.error}`:`Code executed successfully: ${r.result}`}case"present":return n({op:"present"});case"scene-info":return $.sceneInfo();case"object-info":return $.objectInfo(e.name);case"rna":return n({op:"rna",path:e.path,...e.names===void 0?{}:{names:e.names}});case"rna-context":return n({op:"rna-context",...e.object===void 0?{}:{object:e.object},...e.collection===void 0?{}:{collection:e.collection}});case"view-shading":return n({op:"view-shading",shading:e.shading});case"rna-set":return n({op:"rna-set",history:e.history!==!1,path:e.path,property:e.property,value:e.value,...e.index===void 0?{}:{index:e.index}});case"outliner":return n({op:"outliner",...e.selected===void 0?{}:{selected:[...e.selected]}});case"node-tree":return n({op:"node-tree",...e.path===void 0?{}:{path:e.path},...e.material===void 0?{}:{material:e.material}});case"uv-layout":return n({op:"uv-layout",...e.object===void 0?{}:{object:e.object},...e.uvLayer===void 0?{}:{uvLayer:e.uvLayer}});case"rig":return n({op:"rig",...e.object===void 0?{}:{object:e.object}});case"action-clip":return n({op:"action-clip",...e.object===void 0?{}:{object:e.object},...e.bake===void 0?{}:{bake:e.bake}});case"outliner-set":return n({op:"outliner-set",path:e.path,column:e.column,value:e.value});case"screenshot-view":return JSON.parse(await $.screenshotView(e.maxSize));case"read-file":return t.readFile(e.path);case"write-file":{const r=e.path.slice(0,e.path.lastIndexOf("/"));r&&await t.mkdirTree(r),await t.writeFile(e.path,e.bytes),b.delete(e.path);return}case"list-files":return Se(t,e.path)}throw new Error(`Unknown Blender worker request ${e.op}`)}function k(e){if(e instanceof Error)return e.stack??`${e.name}: ${e.message}`;if(typeof e=="object"&&e!==null){const t=e;if(typeof t.message=="string")return typeof t.name=="string"?`${t.name}: ${t.message}`:t.message;try{return JSON.stringify(e)??Object.prototype.toString.call(e)}catch{return Object.prototype.toString.call(e)}}return String(e)}function V(){if(!m)return;const e=m.memoryBytes();e!==null&&S({op:"memory",bytes:e})}self.addEventListener("error",V);self.onmessage=e=>{const t=e.data;if(t.op==="present-result"){z(t);return}ue(()=>Ee(t))};async function Ee(e){try{const t=await z(e);L&&await W(),await C(),S({id:e.id,result:t})}catch(t){let n=k(t);try{await C()}catch(r){n+=`
|
|
2
|
-
Unable to deliver Blender history: ${k(r)}`}S({id:e.id,error:n})}V()}async function C(){if(!m||!$)return;const e=await m.request({op:"history-events"});e.length&&S({op:"history",entries:e})}export{D as A,Oe as P,w as S,Q as a,Ae as b,Te as c,Be as o,ee as s};
|