@volter/game-editor 0.5.69 → 0.5.71
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 +28 -44
- package/LICENSE +9 -10
- package/catalog/entries/blender.json +2 -2
- package/catalog/entries/music.json +2 -2
- package/catalog/project-source/LICENSE +5 -5
- package/dist/.vite/manifest.json +2176 -2176
- package/dist/assets/{AssetBudgetPanel-BMR3AQhc.js → AssetBudgetPanel-CbSEGrcI.js} +3 -3
- package/dist/assets/{AudioViewer-DESxi7pU.js → AudioViewer-DbO2vY3o.js} +1 -1
- package/dist/assets/{CanvasBoardDocument-Q_nrYFlB.js → CanvasBoardDocument-BWmMyiAX.js} +1 -1
- package/dist/assets/{CanvasSceneViewport-WZMoKy_F.js → CanvasSceneViewport-CrmQdonP.js} +1 -1
- package/dist/assets/{ColorInput-C2EK-OnD.js → ColorInput-BOPGcPsk.js} +1 -1
- package/dist/assets/{EntityModelDocument-B_4ENTCq.js → EntityModelDocument-DUZaNI2v.js} +1 -1
- package/dist/assets/{EnvironmentAssetDocument-BZBp6OFJ.js → EnvironmentAssetDocument-Bqsm2NLI.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-1ivaucpv.js → GameplaySessionTimeline-DmGEiHHD.js} +1 -1
- package/dist/assets/{ImageViewer-D16OExYu.js → ImageViewer-BXQ1dXgz.js} +1 -1
- package/dist/assets/InspectorObjectPreview-JE22P2KW.js +1 -0
- package/dist/assets/{JsonAssetDocument-CvjTlcdr.js → JsonAssetDocument-BPQR7OXc.js} +1 -1
- package/dist/assets/{LiveModuleDocument-ne1o9giX.js → LiveModuleDocument-DnlLSCZw.js} +1 -1
- package/dist/assets/{LutAssetDocument-Cp0v-O7q.js → LutAssetDocument-CMDB77UF.js} +1 -1
- package/dist/assets/{ModelAssetDocument-Ceu7OIN9.js → ModelAssetDocument-C7Su96Mo.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-DiElZf-e.js → NonThreeAuthoringBootstrap-BqY5ceef.js} +1 -1
- package/dist/assets/{Object3DDocumentToolbar-BLNamqii.js → Object3DDocumentToolbar-CDYwPpW6.js} +1 -1
- package/dist/assets/Object3DDocumentViewport-mDettU8s.js +2 -0
- package/dist/assets/{Object3DPreview-ZVokr044.js → Object3DPreview-B_3FCd_-.js} +1 -1
- package/dist/assets/{OnlineAssetDetail-Dnckd7zB.js → OnlineAssetDetail-BMAMYfaN.js} +1 -1
- package/dist/assets/{PlayBar-DsMitSgy.js → PlayBar-DvpDIJXg.js} +1 -1
- package/dist/assets/{QuarksAssetDocument-B5J8uHFM.js → QuarksAssetDocument-BbG3zMIR.js} +1 -1
- package/dist/assets/{ReactCanvasControls-CmfvxJYY.js → ReactCanvasControls-CnIJItuA.js} +1 -1
- package/dist/assets/{RootSelectionOverlay-BWsNiSuM.js → RootSelectionOverlay-47LRczuj.js} +1 -1
- package/dist/assets/{ShaderAssetDocument-CT7XzsZq.js → ShaderAssetDocument-KDN9ZgDF.js} +1 -1
- package/dist/assets/{ShadowEditor-YO5KEfnz.js → ShadowEditor-CBNfgpsF.js} +1 -1
- package/dist/assets/{SourceAssetViewer-FSLup2km.js → SourceAssetViewer-LGC-eTLS.js} +1 -1
- package/dist/assets/{StageHost-DYfGYwvq.js → StageHost-BOin7YcY.js} +2 -2
- package/dist/assets/{StoryPreviewMount-BhvT5QlB.js → StoryPreviewMount-CN-jnvnn.js} +1 -1
- package/dist/assets/{ThreeBoardDocument-B-z2nwnH.js → ThreeBoardDocument-DgC6xWZu.js} +2 -2
- package/dist/assets/{ThreeIsolationSceneContent-B5pU4Y6k.js → ThreeIsolationSceneContent-ieFf0WbO.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-VtraiQ4Q.js → ToolObject3DPreview-B15_D8MJ.js} +1 -1
- package/dist/assets/{Toolbar-M62Gob9T.js → Toolbar-CAnrijz7.js} +1 -1
- package/dist/assets/{TransientHint-Cc40mHWE.js → TransientHint-BiIz-7Hh.js} +1 -1
- package/dist/assets/{VideoViewer-BxcUwXQm.js → VideoViewer-CrP78U5w.js} +1 -1
- package/dist/assets/{ViewportShadingMenu-BoMPnTVh.js → ViewportShadingMenu-BfoDB2WO.js} +1 -1
- package/dist/assets/active-ingest-CHE8woWv.js +3 -0
- package/dist/assets/{animation-clock-BXEwUJtz.js → animation-clock-DWhLTlyc.js} +1 -1
- package/dist/assets/{animation-mixers.service-C-Ko4KzM.js → animation-mixers.service-xdiawk5y.js} +1 -1
- package/dist/assets/{animation-timeline.utility-Bl15-rYb.js → animation-timeline.utility-Czb7Ax-Z.js} +1 -1
- package/dist/assets/{asset-budget-asset.menu-BUa3g0Wy.js → asset-budget-asset.menu-CpHLTATf.js} +1 -1
- package/dist/assets/{asset-budget.action-Dl5eVPIo.js → asset-budget.action-C_ZI2rdN.js} +1 -1
- package/dist/assets/{asset-budget.document-DJylQ-0h.js → asset-budget.document-hmCS7sH2.js} +1 -1
- package/dist/assets/{asset-budget.menu-BJtvNMLj.js → asset-budget.menu-BZyzyVdk.js} +1 -1
- package/dist/assets/{asset-editor-persistence-BIbf5u0Q.js → asset-editor-persistence-BIFP2LgP.js} +1 -1
- package/dist/assets/{asset-loaders-DoNflsHL.js → asset-loaders-DqbPEavT.js} +1 -1
- package/dist/assets/{asset-preview-DxlSdRZn.js → asset-preview-BzDHm81_.js} +1 -1
- package/dist/assets/{audio-unlock.service-CTaiyXF9.js → audio-unlock.service-C2a8hsP0.js} +1 -1
- package/dist/assets/{audio.utility-CEmNc68t.js → audio.utility-VklURuQw.js} +1 -1
- package/dist/assets/autoplay.service-ap_sEfca.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-BZvV2bz_.js → babylon-authoring-adapter-DBBX2Hem.js} +1 -1
- package/dist/assets/{binding-resolver-DGbk9_XR.js → binding-resolver-aDFCbAcG.js} +2 -2
- package/dist/assets/{blender-emscripten-engine-B7lfg-RX.js → blender-emscripten-engine-Cd6az4pU.js} +1 -1
- package/dist/assets/{blender-node-editor.document-wXJobGNH.js → blender-node-editor.document-BdX0SCxH.js} +1 -1
- package/dist/assets/{blender-properties-tab-7GFf80ev.js → blender-properties-tab-BVdvAiLS.js} +1 -1
- package/dist/assets/{blender-runtime-host-CILxrx5T.js → blender-runtime-host-B1bjBV91.js} +2 -2
- package/dist/assets/{blender-runtime-skin-Cd5lQYsC.js → blender-runtime-skin-BEbT46i_.js} +1 -1
- package/dist/assets/{blender-runtime.document-C0r_R49S.js → blender-runtime.document-BAQTV4az.js} +1 -1
- package/dist/assets/{blender-timeline.document-BaISZMBc.js → blender-timeline.document-BTwdMhSn.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-CT_fsyyA.js → blender-uv-editor.document-CqxvqlSw.js} +1 -1
- package/dist/assets/{blender-version.status-DzEx7u7k.js → blender-version.status-D-kPKENT.js} +1 -1
- package/dist/assets/{blender-wali-engine-DOiQCBXH.js → blender-wali-engine-CZcS3eAd.js} +1 -1
- package/dist/assets/{blender.command-DdiKd8mZ.js → blender.command-BABpNHlJ.js} +1 -1
- package/dist/assets/{board-guides-CjHQ9Ynm.js → board-guides-BVkDJqat.js} +1 -1
- package/dist/assets/bridge.command-DNktKXNP.js +3 -0
- package/dist/assets/{browserAll-Dg46xT22.js → browserAll-DjSaXYpJ.js} +1 -1
- package/dist/assets/{build-player.document-BHwVV3K0.js → build-player.document-viLZOb6A.js} +1 -1
- package/dist/assets/{build-profiles.document-HkpS-Kxa.js → build-profiles.document-C9gM1NV6.js} +1 -1
- package/dist/assets/{build-progress.status-u1J0Rm1D.js → build-progress.status-DKw0YdnU.js} +1 -1
- package/dist/assets/{build-session-BLboUUbw.js → build-session-CpAT9iQU.js} +1 -1
- package/dist/assets/{build.action-C00DL83N.js → build.action-BrSZc3kA.js} +1 -1
- package/dist/assets/{build.command-Cjk_NY75.js → build.command-CVB-50ii.js} +1 -1
- package/dist/assets/{build.header-BWNmNWFT.js → build.header-BhOtTPyg.js} +1 -1
- package/dist/assets/{build.menu-BBYtqCIq.js → build.menu-BHIVHysW.js} +1 -1
- package/dist/assets/{build.service-DOU15tKN.js → build.service-C5awmXgd.js} +1 -1
- package/dist/assets/{camera-7DGyYW7Y.js → camera-B_ssMgXA.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-n-jiOR-3.js → camera-runtime.inspector-BAc2xnsF.js} +1 -1
- package/dist/assets/{canvas-design-mount-CSRHU-ag.js → canvas-design-mount-DW2RoIFP.js} +3 -3
- package/dist/assets/{canvas-entry-runtime-BST8yRuK.js → canvas-entry-runtime-BQdfSw1B.js} +2 -2
- package/dist/assets/{canvas-preview-frames-Cja32aW2.js → canvas-preview-frames-Bc44u87o.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-D5R5HJ8n.js → canvas-story-capture.service-DTLE6FK3.js} +2 -2
- package/dist/assets/{capability-coverage-ByWftxk4.js → capability-coverage-6I_iG0kk.js} +1 -1
- package/dist/assets/{collaboration-presence-D6MC9xJN.js → collaboration-presence-wD0oKl7P.js} +1 -1
- package/dist/assets/{collider-B78EcUc9.js → collider-BQKrXUbD.js} +1 -1
- package/dist/assets/{component-board.service-BaQI5Oas.js → component-board.service-BzZ2JQC8.js} +2 -2
- package/dist/assets/{component-board.service-Dvjz_g-x.js → component-board.service-Cnxftkv8.js} +2 -2
- package/dist/assets/{component-board.service-CkjrsD8x.js → component-board.service-DTH3BKq_.js} +2 -2
- package/dist/assets/{component-contracts.service-C3-AXQp7.js → component-contracts.service-BJ73JRuk.js} +1 -1
- package/dist/assets/{component-instance-root-DLI40MiB.js → component-instance-root-9MmHwMal.js} +1 -1
- package/dist/assets/{component-verbs.command-Brr_WcaR.js → component-verbs.command-_nUoLZ1s.js} +1 -1
- package/dist/assets/{component-verbs.service-DC2sC3j3.js → component-verbs.service-D9qvuexk.js} +1 -1
- package/dist/assets/{config-BI_7osdR.js → config-DabjxySF.js} +2 -2
- package/dist/assets/{configurations-XP9YLkrt.js → configurations-CACHqi7T.js} +1 -1
- package/dist/assets/{connection.status-BhRwcFx0.js → connection.status-CfFK9wti.js} +1 -1
- package/dist/assets/{constraints.inspector-Dm1cycK3.js → constraints.inspector-DvTTgVxM.js} +1 -1
- package/dist/assets/{content-bounds-DROIchTa.js → content-bounds-938XXJRy.js} +1 -1
- package/dist/assets/{contract-system-adapters-Cn7OW_ay.js → contract-system-adapters-D9Gcb7R7.js} +1 -1
- package/dist/assets/{coverage.service-l42ty7lr.js → coverage.service-CyWmmos8.js} +1 -1
- package/dist/assets/{create-runtime-B_uTwsmi.js → create-runtime-D3CS8u84.js} +1 -1
- package/dist/assets/{curve-THOUsg-j.js → curve-CzIvpvWX.js} +1 -1
- package/dist/assets/{data-asset-DAANayR6.js → data-asset-Dt3MP-sl.js} +1 -1
- package/dist/assets/{data-ref-CN34UeVw.js → data-ref-COkdIktX.js} +1 -1
- package/dist/assets/{debug-bridge-BD1XVAIB.js → debug-bridge-LaiaWRls.js} +1 -1
- package/dist/assets/{debug-registry-ggQWxtu-.js → debug-registry-BUPLu5EA.js} +1 -1
- package/dist/assets/{deferred-ingest-play-B2JUlwlT.js → deferred-ingest-play-DVLTxYCk.js} +2 -2
- package/dist/assets/{design-time-canvas-mount-as9cN9I6.js → design-time-canvas-mount-CkOQQvFW.js} +2 -2
- package/dist/assets/{design-time-layers-BRseeSmV.js → design-time-layers-Cv3txX_V.js} +1 -1
- package/dist/assets/{design-time-mount.service-BTVu3yKo.js → design-time-mount.service-C8VeEbCC.js} +2 -2
- package/dist/assets/{design-time-mount.service-DKvc7lVK.js → design-time-mount.service-DupCKL6-.js} +2 -2
- package/dist/assets/{design-time-react-mount-C7rB56QD.js → design-time-react-mount-CT8eihNN.js} +1 -1
- package/dist/assets/{document-preview-three-CxmRhCcV.js → document-preview-three-C8Pzyiai.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-L8OzXfmE.js → dom-authoring-adapter-71D70rVP.js} +1 -1
- package/dist/assets/{draco3d-BjNuXv66.js → draco3d-XOYD2Hke.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-BwI5u845.js → edit-mode-audio.service-OcRQ9Ozq.js} +1 -1
- package/dist/assets/{edit-mode-authoring-D5f7aHHl.js → edit-mode-authoring-Du1CaTkH.js} +1 -1
- package/dist/assets/{edit-mode-networking.service-DqP_4lbI.js → edit-mode-networking.service-BWz-nxiL.js} +1 -1
- package/dist/assets/{editor-api-BM7H_F4G.js → editor-api-BqS9NdSX.js} +1 -1
- package/dist/assets/{editor-layers-D-CTUqco.js → editor-layers-qlgroPbE.js} +1 -1
- package/dist/assets/{editor-shell-store-DHVWS8cE.js → editor-shell-store-Di0waLQj.js} +1 -1
- package/dist/assets/{entity-object-MKYemTFM.js → entity-object-BeRdaaqQ.js} +1 -1
- package/dist/assets/{extend-BrgqZiMY.js → extend-CFEzxGGP.js} +1 -1
- package/dist/assets/{fork-menu-DE2MK3Nq.js → fork-menu-Bujed-pM.js} +1 -1
- package/dist/assets/{frame-debugger-store-BXoLKTdZ.js → frame-debugger-store-CCm_jyhx.js} +1 -1
- package/dist/assets/{game-contract-seams-tyKDsfaP.js → game-contract-seams-DOwrbA13.js} +1 -1
- package/dist/assets/{game-css-scope-transform-DcjrwtVc.js → game-css-scope-transform-DuP554oX.js} +1 -1
- package/dist/assets/{game-document.service-CTb2itHQ.js → game-document.service-CW928hrj.js} +1 -1
- package/dist/assets/game-eval.command-D8ohGtA6.js +2 -0
- package/dist/assets/{game-module-access-BTInp2NG.js → game-module-access-gOlo85at.js} +1 -1
- package/dist/assets/{game-network-DW5ARz4R.js → game-network-CU3Yp0oN.js} +3 -3
- package/dist/assets/{gameplay-export-cHk3v9y-.js → gameplay-export-Clmlm922.js} +1 -1
- package/dist/assets/{gameplay-replay-HRenPTtU.js → gameplay-replay-Dxz93B2M.js} +1 -1
- package/dist/assets/{gameplay.command-DcY2lKKX.js → gameplay.command-b2D2rbZV.js} +1 -1
- package/dist/assets/{generation-jobs-CJBehuUp.js → generation-jobs-_kzxAnbI.js} +1 -1
- package/dist/assets/{generation.service-BMOc-C9i.js → generation.service-B533Kbco.js} +1 -1
- package/dist/assets/{generations-ssgVOe_6.js → generations-D5GcYf91.js} +1 -1
- package/dist/assets/{generations.status-B_SmPReI.js → generations.status-CDZ_eHJZ.js} +1 -1
- package/dist/assets/{hierarchy-marks-BuCO8Ke-.js → hierarchy-marks-BrmGekuT.js} +1 -1
- package/dist/assets/{hosted-asset-materialization-CiXZI85V.js → hosted-asset-materialization-DBLM2dtz.js} +1 -1
- package/dist/assets/{index-DgPDGGSV.js → index-BPUmREu0.js} +2 -2
- package/dist/assets/{index-Bm4_DmRO.js → index-BU93FMYM.js} +1 -1
- package/dist/assets/{index-B0S4fQQV.js → index-C8jugKW5.js} +1 -1
- package/dist/assets/{index-BvBlIRwM.js → index-CP1Fd1fP.js} +1 -1
- package/dist/assets/{index-CfpGZrbC.js → index-CiqSswEV.js} +1 -1
- package/dist/assets/{index-BweKDdi_.js → index-Q98tByQ2.js} +1 -1
- package/dist/assets/{index-C5ZAyrKq.js → index-iW3HFEJB.js} +232 -232
- package/dist/assets/{index-Czvj6whv.js → index-sTPbmuS8.js} +1 -1
- package/dist/assets/{index-B9bd4k-t.js → index-vjNaMgz6.js} +1 -1
- package/dist/assets/{inference-diagnostics-DLt9ql9I.js → inference-diagnostics-PcfFN6SD.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-BXVXjYpG.js → ingest-boot-viewport-CrnkiTcJ.js} +1 -1
- package/dist/assets/{ingest-siblings-DWJ7OGB_.js → ingest-siblings-CQ95u6JM.js} +1 -1
- package/dist/assets/{ingest-source-persistence-6ShMoSCa.js → ingest-source-persistence-2MRBPgo0.js} +1 -1
- package/dist/assets/{ingest.service-BBbX8ibg.js → ingest.service-DQqEvbsT.js} +1 -1
- package/dist/assets/{inspect-Cz3Zyx_1.js → inspect-CUNyIUii.js} +1 -1
- package/dist/assets/instances.command-wzs2BWwt.js +1 -0
- package/dist/assets/{json-history-resource-Uqrihfc8.js → json-history-resource-82d2z68R.js} +1 -1
- package/dist/assets/{layered-pick-CAVQMPI7.js → layered-pick-Db8YSlDp.js} +1 -1
- package/dist/assets/{light-CqzsCWeJ.js → light-PK9RLNmD.js} +1 -1
- package/dist/assets/{live-project-verbs-CdFmLYOo.js → live-project-verbs-CayyA6Tc.js} +1 -1
- package/dist/assets/{machine.document-DRIFOVaa.js → machine.document-CUO0RxDP.js} +1 -1
- package/dist/assets/{machines.finder-DPCT6few.js → machines.finder-B-DdPjby.js} +1 -1
- package/dist/assets/{material-BVApn1V_.js → material-C_mvE2lW.js} +1 -1
- package/dist/assets/{material-factory-B_75xxFD.js → material-factory-kKKe4-DN.js} +1 -1
- package/dist/assets/{mesh-DdA3mExo.js → mesh-fUiQLtsU.js} +1 -1
- package/dist/assets/{model-asset-sections.service-CJnSIckZ.js → model-asset-sections.service-Dfkzhu6Q.js} +1 -1
- package/dist/assets/{model-inspection-DvspbmJl.js → model-inspection-DgqjTy5z.js} +1 -1
- package/dist/assets/{model-thumbnail-BmQs-h6t.js → model-thumbnail-DORLbXyw.js} +1 -1
- package/dist/assets/{models.finder-Qv_Hsccy.js → models.finder-DzW1Sg26.js} +1 -1
- package/dist/assets/{module-mode-MJ4Gbsry.js → module-mode-BWoDD0oV.js} +2 -2
- package/dist/assets/{mount-canvas-ingest-root-BxtM8OaB.js → mount-canvas-ingest-root-nBqJPkbz.js} +2 -2
- package/dist/assets/{mount-dom-ingest-root-pGatqO46.js → mount-dom-ingest-root-BOEt11vp.js} +2 -2
- package/dist/assets/{mount-ingest-root-C7jb-mCl.js → mount-ingest-root-9KaA9ETn.js} +2 -2
- package/dist/assets/{mount-manifest-BfoHBuzn.js → mount-manifest-BOiv1Hix.js} +1 -1
- package/dist/assets/{mount-three-ingest-root-Boa5mcaF.js → mount-three-ingest-root-C_0Slh91.js} +1 -1
- package/dist/assets/{mounted-authoring-DxMISwvR.js → mounted-authoring-30zCcxeV.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-DfnLxI1f.js → mounted-story-viewport-source-N0xrUdtm.js} +1 -1
- package/dist/assets/{native-debug-module-BlrALjM3.js → native-debug-module-Cofo9dCU.js} +1 -1
- package/dist/assets/{navigation-CqG5o5AR.js → navigation-B9kSIhNu.js} +1 -1
- package/dist/assets/{navmesh.menu-D4TdVDhe.js → navmesh.menu-DPNQ2RCH.js} +1 -1
- package/dist/assets/{navmesh.service-DWKT5ruQ.js → navmesh.service-pffKX_Ht.js} +1 -1
- package/dist/assets/network-observer.service-D61Whg6t.js +1 -0
- package/dist/assets/{network.utility-DjeOEvAY.js → network.utility-Bw74dLIu.js} +1 -1
- package/dist/assets/{object3d-document-session-registry-CMRJdFp6.js → object3d-document-session-registry-DMhhDWnQ.js} +2 -2
- package/dist/assets/{oid-transform-DaA6yW6o.js → oid-transform-AHICFvQG.js} +1 -1
- package/dist/assets/{particles-DsQRcDBY.js → particles-DIMSkSIe.js} +1 -1
- package/dist/assets/{pixi-authoring-adapter-BoBt8bB5.js → pixi-authoring-adapter-DR6NNYrL.js} +1 -1
- package/dist/assets/{pixi-live-write-target-CYZgvC6U.js → pixi-live-write-target-CXDKS1kQ.js} +1 -1
- package/dist/assets/{play.command-D9JGJP-e.js → play.command-L6qPHLHh.js} +2 -2
- package/dist/assets/{presentation-COhHQdmR.js → presentation-DPddUHCg.js} +1 -1
- package/dist/assets/{product-CaRGoiIH.js → product-CEH3MVYt.js} +1 -1
- package/dist/assets/{profiler.action-Cz7HYWjh.js → profiler.action-qMarbw9x.js} +1 -1
- package/dist/assets/{profiler.menu-D5aR_FBy.js → profiler.menu-C52_wfu8.js} +1 -1
- package/dist/assets/{profiler.utility-KwxlIPKb.js → profiler.utility-DzfXG0cD.js} +1 -1
- package/dist/assets/{project-authoring-session-DKXHVwxO.js → project-authoring-session-sbmVUm3i.js} +2 -2
- package/dist/assets/{properties-bone-constraints.inspector-Bo-sU8eR.js → properties-bone-constraints.inspector-DEOxhp1W.js} +1 -1
- package/dist/assets/{properties-bone.inspector-BQiWplQv.js → properties-bone.inspector-CY8EEYZl.js} +1 -1
- package/dist/assets/{properties-collection.inspector-C5BnR-GE.js → properties-collection.inspector-rGoZwmsY.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-CyheU12R.js → properties-constraints.inspector-DJITSHiL.js} +1 -1
- package/dist/assets/{properties-data.inspector-CkycARja.js → properties-data.inspector-CNJ6cUzA.js} +1 -1
- package/dist/assets/{properties-material.inspector-Bl_PUmY-.js → properties-material.inspector-BkCUSFdM.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-j7SnOxQq.js → properties-modifiers.inspector-C9ij0UfE.js} +1 -1
- package/dist/assets/{properties-object.inspector-DcR3MGLK.js → properties-object.inspector-IvVsyikt.js} +1 -1
- package/dist/assets/{properties-output.inspector-BLjw6K4b.js → properties-output.inspector-Df-fx8vq.js} +1 -1
- package/dist/assets/{properties-particles.inspector-BUIm2-Jf.js → properties-particles.inspector-J3UOyWlz.js} +1 -1
- package/dist/assets/{properties-physics.inspector-DNvRcxb6.js → properties-physics.inspector-BmcTY5Q8.js} +1 -1
- package/dist/assets/{properties-render.inspector-8FMZ-qoZ.js → properties-render.inspector-DUB5qwIR.js} +1 -1
- package/dist/assets/{properties-scene.inspector-Dx7_z75k.js → properties-scene.inspector-DxBRs2ae.js} +1 -1
- package/dist/assets/{properties-texture.inspector-WT15951-.js → properties-texture.inspector-BqzPv1aS.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-P7VNTdqr.js → properties-view-layer.inspector-D1a1Dc1r.js} +1 -1
- package/dist/assets/{properties-world.inspector-B3t1q8TF.js → properties-world.inspector-CCwHv8ha.js} +1 -1
- package/dist/assets/{r3f-design-session-lsbFnoWH.js → r3f-design-session-By5arVMz.js} +2 -2
- package/dist/assets/{r3f-physics-binding-Cx8yhuwt.js → r3f-physics-binding-mLmXPi7n.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-jH3G0TeH.js → r3f-source-authoring-adapter-W1zVFNuZ.js} +1 -1
- package/dist/assets/{react-canvas-navigation-B_gOe3CI.js → react-canvas-navigation-IPhloKzi.js} +1 -1
- package/dist/assets/{react-inspector.service-CZf1vfdX.js → react-inspector.service-C7T_Pqud.js} +1 -1
- package/dist/assets/{react-story-board-CCm2Opwn.js → react-story-board-CPTQdOIn.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-CHXGG51p.js → react-three-rapier.esm-D43m0aj7.js} +1 -1
- package/dist/assets/{react-world-authoring-adapter-CnzxMtYz.js → react-world-authoring-adapter-DgsCzOTj.js} +1 -1
- package/dist/assets/{realm-services-Do9J6nsb.js → realm-services-C8OlRuJ5.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-BAjjIybz.js → reflection-probe-capture.inspector-DT1jvM_q.js} +1 -1
- package/dist/assets/{registry-Xnduk02T.js → registry-XvQ4sPew.js} +1 -1
- package/dist/assets/{relative-import-specifier-CPFTrxi4.js → relative-import-specifier-CPCtuEhc.js} +1 -1
- package/dist/assets/{render-env-YJlI8K0i.js → render-env-BYsqF2DQ.js} +1 -1
- package/dist/assets/{render-features-DMSV2qKJ.js → render-features-CL2D1X_X.js} +1 -1
- package/dist/assets/{render-settings-CRyDhHyz.js → render-settings-CsCXKLaq.js} +1 -1
- package/dist/assets/{resolve-three-D27rMc37.js → resolve-three-DRDYxBE9.js} +4 -4
- package/dist/assets/{root-seam-contract-gjWUd5uu.js → root-seam-contract-BNGi8m22.js} +1 -1
- package/dist/assets/{run-selection-B0jOdyYt.js → run-selection-8wjzFzVg.js} +1 -1
- package/dist/assets/{scene-capture-Di9cM1p4.js → scene-capture-aq3yUgox.js} +1 -1
- package/dist/assets/{scene-document.service-XxGs4HHE.js → scene-document.service-qnY16vPq.js} +2 -2
- package/dist/assets/{scene-framing-DkZKDwH3.js → scene-framing-BWGUKaVh.js} +1 -1
- package/dist/assets/{seeded-random-BJthDRMu.js → seeded-random-BIdiJ8w9.js} +1 -1
- package/dist/assets/{session-x8E_NJk2.js → session-CeyQA0Dv.js} +1 -1
- package/dist/assets/{setup-renderer-F9mG7t6r.js → setup-renderer-BI8Dltzx.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-CvmFpSUj.js → source-object3d-authoring-adapter-Des84Gk3.js} +1 -1
- package/dist/assets/{source-persistence-backend-au3WtEn6.js → source-persistence-backend-I5wxqQgh.js} +1 -1
- package/dist/assets/{stage-keyboard-BQkndG_D.js → stage-keyboard-Ckod5Y4M.js} +1 -1
- package/dist/assets/{stage-overlay-set-g6eWhuRv.js → stage-overlay-set-CLTmSTo9.js} +1 -1
- package/dist/assets/{stage-presence-markers-0CDfO5f4.js → stage-presence-markers-DOoDCC7Z.js} +1 -1
- package/dist/assets/{stage-transform-tools-BzPl7OIo.js → stage-transform-tools-DjYQ95b7.js} +1 -1
- package/dist/assets/{standard-viewport-dressing-BW-dM_1h.js → standard-viewport-dressing-DE9WE1Lv.js} +1 -1
- package/dist/assets/{state-watch.action-Z1nQ5awu.js → state-watch.action-D0rXmFVx.js} +1 -1
- package/dist/assets/{state-watch.menu-CQHGUF3W.js → state-watch.menu-DJyVHqNM.js} +1 -1
- package/dist/assets/{state-watch.utility-DCIg2i79.js → state-watch.utility-CHL55Pbn.js} +1 -1
- package/dist/assets/{story-capture-BIrjDKeY.js → story-capture-BGeBen-R.js} +1 -1
- package/dist/assets/{story-documents-BvG2xeaR.js → story-documents-B8TSr_CN.js} +1 -1
- package/dist/assets/{story-documents.service-DOSEa3ja.js → story-documents.service-B1hhvZad.js} +1 -1
- package/dist/assets/{story-documents.service-y1m7XGMJ.js → story-documents.service-C_Q58qZs.js} +1 -1
- package/dist/assets/{story-media-presence-HLV-KaMj.js → story-media-presence-CEwzSadX.js} +1 -1
- package/dist/assets/{story-pixi-preview-CMhho2gG.js → story-pixi-preview-rAub2W_H.js} +1 -1
- package/dist/assets/{story-presentation-CYhVv8Ku.js → story-presentation-CdJ6Ncu6.js} +1 -1
- package/dist/assets/{story-three-preview-CgcLF5lE.js → story-three-preview-Cp9kfSo0.js} +2 -2
- package/dist/assets/{studio-environment-R9qXUUcC.js → studio-environment-BCf09Sox.js} +1 -1
- package/dist/assets/{surface-state-D8Qnowo6.js → surface-state-BUmVXUJj.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-8gkBuc5j.js → syntactic-prop-specs-BHoShoI2.js} +1 -1
- package/dist/assets/{team-playtest.service-BBMZ2iyk.js → team-playtest.service-DErOWVaA.js} +1 -1
- package/dist/assets/{three-authoring-adapter-CkLR2zGf.js → three-authoring-adapter-DctJX96k.js} +1 -1
- package/dist/assets/three-authoring.service-B2LLPXyf.js +2 -0
- package/dist/assets/{three-ingest-runtime-CwTqAHgX.js → three-ingest-runtime-Bqwv-JsZ.js} +1 -1
- package/dist/assets/{three-integration-DXOFI88n.js → three-integration-C9bu5OXH.js} +2 -2
- package/dist/assets/three-integration.service-BXQuaWQ-.js +1 -0
- package/dist/assets/{three-projection-core-B7Lf8tOp.js → three-projection-core-rOK39WmJ.js} +1 -1
- package/dist/assets/{three-state-BCACvUtm.js → three-state-Cu8xEils.js} +1 -1
- package/dist/assets/{three-story-capture.service-rTFKNtHA.js → three-story-capture.service-DJaS21h9.js} +2 -2
- package/dist/assets/{three-story-model-BjKr7OMn.js → three-story-model-CE0vGtKW.js} +1 -1
- package/dist/assets/{three-viewport-presentation-CBzvc2v2.js → three-viewport-presentation-IVtG1zll.js} +1 -1
- package/dist/assets/{three-DiL6vMXq.js → three-wsMw8Ifj.js} +1 -1
- package/dist/assets/tools-BnE3UWVA.js +1 -0
- package/dist/assets/{transform-mode-request-DlEApNrA.js → transform-mode-request-C7qvcvEe.js} +1 -1
- package/dist/assets/{transport-strip-xCg94CuI.js → transport-strip-B6Hauzjh.js} +1 -1
- package/dist/assets/transport.header-CDivn20X.js +1 -0
- package/dist/assets/{tuples-BDz3wbQL.js → tuples-CP56GoRo.js} +1 -1
- package/dist/assets/{ui-board-document-DvbK_HVN.js → ui-board-document-B69iTbe5.js} +2 -2
- package/dist/assets/{user-data-C84W0V47.js → user-data-BGLBYiFw.js} +1 -1
- package/dist/assets/{utility-view-state-CDRxZSo-.js → utility-view-state-y2PTWZuT.js} +1 -1
- package/dist/assets/{viewport-door-BARIpMu-.js → viewport-door-B7DJhMPS.js} +1 -1
- package/dist/assets/{viewport-root-presentation-hRLF0BeO.js → viewport-root-presentation-DPtVohIT.js} +1 -1
- package/dist/assets/{viewport-surface-status-TUfhXKR9.js → viewport-surface-status-CleQnKBz.js} +1 -1
- package/dist/assets/{webworkerAll-PJtcQ1FD.js → webworkerAll-B8sqUYid.js} +1 -1
- package/dist/assets/{worker-BtXrsgFy.js → worker-jepHAPPr.js} +1 -1
- package/dist/assets/{workspace-arrangement-DqG5sUns.js → workspace-arrangement-6V8ZwB2d.js} +1 -1
- package/dist/assets/{world-documents-D69XaqUX.js → world-documents-CwxZ4xtW.js} +1 -1
- package/dist/assets/{world-root-stage-binding-BgZWZEuD.js → world-root-stage-binding-OOLit0lW.js} +1 -1
- package/dist/assets/{xstate-animation-binding-CIyLzGHs.js → xstate-animation-binding-KbfYItEZ.js} +1 -1
- package/dist/assets/{xstate-animation-meta-CbYWup3R.js → xstate-animation-meta-DM_K9jo1.js} +1 -1
- package/dist-node/cli.js +42 -42
- package/dist-node/create.js +5 -5
- package/package.json +16 -16
- package/template/.agents/references/project-manual.md +1 -2
- package/template/.agents/skills/editor/SKILL.md +2 -2
- package/template/.agents/skills/editor/agents/openai.yaml +3 -3
- package/template/.agents/skills/editor/references/editor-control.md +1 -1
- package/template/.agents/skills/volter-ingest-existing-game/SKILL.md +1 -1
- package/template/.agents/skills/volter-threejs-authoring/SKILL.md +4 -4
- package/template/.agents/skills/volter-threejs-authoring/agents/openai.yaml +1 -1
- package/template/.claude/skills/editor/SKILL.md +2 -2
- package/template/.claude/skills/editor/agents/openai.yaml +3 -3
- package/template/.claude/skills/editor/references/editor-control.md +1 -1
- package/template/.claude/skills/volter-ingest-existing-game/SKILL.md +1 -1
- package/template/.claude/skills/volter-threejs-authoring/SKILL.md +4 -4
- package/template/.claude/skills/volter-threejs-authoring/agents/openai.yaml +1 -1
- package/template/.github/copilot-instructions.md +1 -1
- package/template/.github/skills/editor/SKILL.md +2 -2
- package/template/.github/skills/editor/agents/openai.yaml +3 -3
- package/template/.github/skills/editor/references/editor-control.md +1 -1
- package/template/.github/skills/volter-ingest-existing-game/SKILL.md +1 -1
- package/template/.github/skills/volter-threejs-authoring/SKILL.md +4 -4
- package/template/.github/skills/volter-threejs-authoring/agents/openai.yaml +1 -1
- package/template/AGENTS.md +3 -4
- package/template/README.md +2 -6
- package/template/check-idioms.ts +26 -50
- package/template/package.json +10 -10
- package/template/server/colyseus-setup.ts +1 -9
- package/template/server/main.ts +0 -5
- package/template/server/rooms/arena-room.ts +2 -2
- package/template/server/rooms/game-room.ts +2 -2
- package/template/server/rooms.ts +1 -3
- package/template/src/net/NetworkedPlayers.tsx +3 -3
- package/template/vite.config.ts +1 -1
- package/template-dotfiles/gitignore +1 -1
- package/dist/assets/InspectorObjectPreview-CY5xVsPR.js +0 -1
- package/dist/assets/Object3DDocumentViewport-D6QoHfa_.js +0 -2
- package/dist/assets/active-ingest-0QjJWb7i.js +0 -3
- package/dist/assets/autoplay.service-BZLSUyL8.js +0 -1
- package/dist/assets/bridge.command-DXUeavn5.js +0 -3
- package/dist/assets/game-eval.command-CpDKXOQU.js +0 -2
- package/dist/assets/instances.command-BrdlngrL.js +0 -1
- package/dist/assets/network-observer.service-ZRAquNq4.js +0 -1
- package/dist/assets/three-authoring.service-CovhlCGx.js +0 -2
- package/dist/assets/three-integration.service-rCAqpqSp.js +0 -1
- package/dist/assets/tools-DfctM216.js +0 -1
- package/dist/assets/transport.header-BRtdky0x.js +0 -1
- package/template/server/loopback.ts +0 -76
|
@@ -3,7 +3,7 @@ name: volter-threejs-authoring
|
|
|
3
3
|
description: Build, rig, animate, diagnose, and visually refine polished native Three.js scenes and procedural assets with direct Object3D code, reusable construction helpers, geometry libraries, and an inspect-render-critique loop. Use for procedural models, rigid mechanical armatures, environments, static props, stylized materials, lighting, cameras, scene composition, or an agent-focused Blender-like workflow. Use volter-3d-models when the result should be a Blender source document with an exported GLB. Do not use for Blender bpy work or imported skeletal retargeting.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Volter Three.js Authoring
|
|
7
7
|
|
|
8
8
|
Author ordinary project source against Three.js. Treat the source module and
|
|
9
9
|
live `Object3D` graph as truth. Use helpers for leverage, not as a replacement
|
|
@@ -14,7 +14,7 @@ scene language.
|
|
|
14
14
|
1. Read the project instructions and architecture.
|
|
15
15
|
2. Locate the Three root or modeling build entry, existing helpers,
|
|
16
16
|
renderer setup, and verification commands.
|
|
17
|
-
3. Start or reuse the
|
|
17
|
+
3. Start or reuse the Volter editor immediately and keep it open.
|
|
18
18
|
4. Capture a fixed-camera visual baseline.
|
|
19
19
|
5. Inspect the live hierarchy, selected-object facts, renderer state, and
|
|
20
20
|
console before changing code.
|
|
@@ -67,7 +67,7 @@ Use raw Three.js whenever a helper becomes awkward.
|
|
|
67
67
|
Keep shader source in ordinary `.vert`, `.frag`, or `.glsl` files and bind it
|
|
68
68
|
with `THREE.ShaderMaterial` directly. A sibling `name.vert.glsl` +
|
|
69
69
|
`name.frag.glsl` pair is the portable convention Asset Lab recognizes; it is
|
|
70
|
-
not a
|
|
70
|
+
not a Volter format. Keep authored uniform defaults, defines, textures, and
|
|
71
71
|
material composition beside the owning material in TS/TSX, where the runtime
|
|
72
72
|
actually reads them. Never add a `.shader.json`, uniform sidecar, or generated
|
|
73
73
|
shader graph to duplicate those facts.
|
|
@@ -86,7 +86,7 @@ postprocessing, or the game's actual texture bindings.
|
|
|
86
86
|
## Compose postprocessing directly
|
|
87
87
|
|
|
88
88
|
When a game needs postprocessing, add `@react-three/postprocessing` to that
|
|
89
|
-
project and import its components directly. Do not create a
|
|
89
|
+
project and import its components directly. Do not create a Volter chain file,
|
|
90
90
|
effect registry, wrapper component, or JSON descriptor. The owning scene's JSX
|
|
91
91
|
is already the ordered chain; conditionally render one effect to bypass it and
|
|
92
92
|
move its JSX child to reorder it. Keep the finishing order restrained: render,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
|
-
display_name: "
|
|
2
|
+
display_name: "Volter Three.js Authoring"
|
|
3
3
|
short_description: "Build polished native Three.js scenes and assets"
|
|
4
4
|
default_prompt: "Use $volter-threejs-authoring to build and visually refine native Three.js source without introducing a parallel scene model."
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: editor
|
|
3
|
-
description: Launch, control, inspect, and verify a
|
|
3
|
+
description: Launch, control, inspect, and verify a Volter game through its live visual editor. Use for editor sessions, Play mode, selection, hierarchy or inspector work, screenshots, status, logs, restart after setup changes, or the live playtest loop.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Control the
|
|
6
|
+
# Control the Volter editor
|
|
7
7
|
|
|
8
8
|
## Open the observable session
|
|
9
9
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
|
-
display_name: "Control the
|
|
3
|
-
short_description: "Operate and inspect the live
|
|
4
|
-
default_prompt: "Use $editor to open, control, inspect, and verify this game in the
|
|
2
|
+
display_name: "Control the Volter Editor"
|
|
3
|
+
short_description: "Operate and inspect the live Volter editor"
|
|
4
|
+
default_prompt: "Use $editor to open, control, inspect, and verify this game in the Volter editor."
|
|
@@ -39,7 +39,7 @@ npm run --silent volter -- eval --list # Everything you can drive — ask t
|
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
**Port cross-talk:** the default editor port (5173) is shared across every
|
|
42
|
-
|
|
42
|
+
Volter project on the machine. `npm run --silent volter -- edit .` never silently retargets a
|
|
43
43
|
DIFFERENT project's already-running editor — if one is already open
|
|
44
44
|
elsewhere, this one starts a second instance on a fresh free port and prints
|
|
45
45
|
that URL instead (use `--switch` to retarget the existing one on purpose).
|
|
@@ -30,7 +30,7 @@ orders. Mounting the game is STEP ONE of seven, not the deliverable.
|
|
|
30
30
|
objects; the navigation slots show the host-computation form (host BFS
|
|
31
31
|
over the game's own public graph, labeled as the host's in so many
|
|
32
32
|
words).
|
|
33
|
-
- The contract shapes: `packages/project/src/adapter/ingest/game-contract.ts`
|
|
33
|
+
- The contract shapes: `packages/editor-project/src/adapter/ingest/game-contract.ts`
|
|
34
34
|
(root · lifecycle · systems.commands/state/hierarchy · systemAdapters) and
|
|
35
35
|
`contract-system-adapters.ts` (the projection that rejects malformed
|
|
36
36
|
claims — a `present` missing required members, or an `empty` without
|
|
@@ -3,7 +3,7 @@ name: volter-threejs-authoring
|
|
|
3
3
|
description: Build, rig, animate, diagnose, and visually refine polished native Three.js scenes and procedural assets with direct Object3D code, reusable construction helpers, geometry libraries, and an inspect-render-critique loop. Use for procedural models, rigid mechanical armatures, environments, static props, stylized materials, lighting, cameras, scene composition, or an agent-focused Blender-like workflow. Use volter-3d-models when the result should be a Blender source document with an exported GLB. Do not use for Blender bpy work or imported skeletal retargeting.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Volter Three.js Authoring
|
|
7
7
|
|
|
8
8
|
Author ordinary project source against Three.js. Treat the source module and
|
|
9
9
|
live `Object3D` graph as truth. Use helpers for leverage, not as a replacement
|
|
@@ -14,7 +14,7 @@ scene language.
|
|
|
14
14
|
1. Read the project instructions and architecture.
|
|
15
15
|
2. Locate the Three root or modeling build entry, existing helpers,
|
|
16
16
|
renderer setup, and verification commands.
|
|
17
|
-
3. Start or reuse the
|
|
17
|
+
3. Start or reuse the Volter editor immediately and keep it open.
|
|
18
18
|
4. Capture a fixed-camera visual baseline.
|
|
19
19
|
5. Inspect the live hierarchy, selected-object facts, renderer state, and
|
|
20
20
|
console before changing code.
|
|
@@ -67,7 +67,7 @@ Use raw Three.js whenever a helper becomes awkward.
|
|
|
67
67
|
Keep shader source in ordinary `.vert`, `.frag`, or `.glsl` files and bind it
|
|
68
68
|
with `THREE.ShaderMaterial` directly. A sibling `name.vert.glsl` +
|
|
69
69
|
`name.frag.glsl` pair is the portable convention Asset Lab recognizes; it is
|
|
70
|
-
not a
|
|
70
|
+
not a Volter format. Keep authored uniform defaults, defines, textures, and
|
|
71
71
|
material composition beside the owning material in TS/TSX, where the runtime
|
|
72
72
|
actually reads them. Never add a `.shader.json`, uniform sidecar, or generated
|
|
73
73
|
shader graph to duplicate those facts.
|
|
@@ -86,7 +86,7 @@ postprocessing, or the game's actual texture bindings.
|
|
|
86
86
|
## Compose postprocessing directly
|
|
87
87
|
|
|
88
88
|
When a game needs postprocessing, add `@react-three/postprocessing` to that
|
|
89
|
-
project and import its components directly. Do not create a
|
|
89
|
+
project and import its components directly. Do not create a Volter chain file,
|
|
90
90
|
effect registry, wrapper component, or JSON descriptor. The owning scene's JSX
|
|
91
91
|
is already the ordered chain; conditionally render one effect to bypass it and
|
|
92
92
|
move its JSX child to reorder it. Keep the finishing order restrained: render,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
|
-
display_name: "
|
|
2
|
+
display_name: "Volter Three.js Authoring"
|
|
3
3
|
short_description: "Build polished native Three.js scenes and assets"
|
|
4
4
|
default_prompt: "Use $volter-threejs-authoring to build and visually refine native Three.js source without introducing a parallel scene model."
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: editor
|
|
3
|
-
description: Launch, control, inspect, and verify a
|
|
3
|
+
description: Launch, control, inspect, and verify a Volter game through its live visual editor. Use for editor sessions, Play mode, selection, hierarchy or inspector work, screenshots, status, logs, restart after setup changes, or the live playtest loop.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Control the
|
|
6
|
+
# Control the Volter editor
|
|
7
7
|
|
|
8
8
|
## Open the observable session
|
|
9
9
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
|
-
display_name: "Control the
|
|
3
|
-
short_description: "Operate and inspect the live
|
|
4
|
-
default_prompt: "Use $editor to open, control, inspect, and verify this game in the
|
|
2
|
+
display_name: "Control the Volter Editor"
|
|
3
|
+
short_description: "Operate and inspect the live Volter editor"
|
|
4
|
+
default_prompt: "Use $editor to open, control, inspect, and verify this game in the Volter editor."
|
|
@@ -39,7 +39,7 @@ npm run --silent volter -- eval --list # Everything you can drive — ask t
|
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
**Port cross-talk:** the default editor port (5173) is shared across every
|
|
42
|
-
|
|
42
|
+
Volter project on the machine. `npm run --silent volter -- edit .` never silently retargets a
|
|
43
43
|
DIFFERENT project's already-running editor — if one is already open
|
|
44
44
|
elsewhere, this one starts a second instance on a fresh free port and prints
|
|
45
45
|
that URL instead (use `--switch` to retarget the existing one on purpose).
|
|
@@ -30,7 +30,7 @@ orders. Mounting the game is STEP ONE of seven, not the deliverable.
|
|
|
30
30
|
objects; the navigation slots show the host-computation form (host BFS
|
|
31
31
|
over the game's own public graph, labeled as the host's in so many
|
|
32
32
|
words).
|
|
33
|
-
- The contract shapes: `packages/project/src/adapter/ingest/game-contract.ts`
|
|
33
|
+
- The contract shapes: `packages/editor-project/src/adapter/ingest/game-contract.ts`
|
|
34
34
|
(root · lifecycle · systems.commands/state/hierarchy · systemAdapters) and
|
|
35
35
|
`contract-system-adapters.ts` (the projection that rejects malformed
|
|
36
36
|
claims — a `present` missing required members, or an `empty` without
|
|
@@ -3,7 +3,7 @@ name: volter-threejs-authoring
|
|
|
3
3
|
description: Build, rig, animate, diagnose, and visually refine polished native Three.js scenes and procedural assets with direct Object3D code, reusable construction helpers, geometry libraries, and an inspect-render-critique loop. Use for procedural models, rigid mechanical armatures, environments, static props, stylized materials, lighting, cameras, scene composition, or an agent-focused Blender-like workflow. Use volter-3d-models when the result should be a Blender source document with an exported GLB. Do not use for Blender bpy work or imported skeletal retargeting.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Volter Three.js Authoring
|
|
7
7
|
|
|
8
8
|
Author ordinary project source against Three.js. Treat the source module and
|
|
9
9
|
live `Object3D` graph as truth. Use helpers for leverage, not as a replacement
|
|
@@ -14,7 +14,7 @@ scene language.
|
|
|
14
14
|
1. Read the project instructions and architecture.
|
|
15
15
|
2. Locate the Three root or modeling build entry, existing helpers,
|
|
16
16
|
renderer setup, and verification commands.
|
|
17
|
-
3. Start or reuse the
|
|
17
|
+
3. Start or reuse the Volter editor immediately and keep it open.
|
|
18
18
|
4. Capture a fixed-camera visual baseline.
|
|
19
19
|
5. Inspect the live hierarchy, selected-object facts, renderer state, and
|
|
20
20
|
console before changing code.
|
|
@@ -67,7 +67,7 @@ Use raw Three.js whenever a helper becomes awkward.
|
|
|
67
67
|
Keep shader source in ordinary `.vert`, `.frag`, or `.glsl` files and bind it
|
|
68
68
|
with `THREE.ShaderMaterial` directly. A sibling `name.vert.glsl` +
|
|
69
69
|
`name.frag.glsl` pair is the portable convention Asset Lab recognizes; it is
|
|
70
|
-
not a
|
|
70
|
+
not a Volter format. Keep authored uniform defaults, defines, textures, and
|
|
71
71
|
material composition beside the owning material in TS/TSX, where the runtime
|
|
72
72
|
actually reads them. Never add a `.shader.json`, uniform sidecar, or generated
|
|
73
73
|
shader graph to duplicate those facts.
|
|
@@ -86,7 +86,7 @@ postprocessing, or the game's actual texture bindings.
|
|
|
86
86
|
## Compose postprocessing directly
|
|
87
87
|
|
|
88
88
|
When a game needs postprocessing, add `@react-three/postprocessing` to that
|
|
89
|
-
project and import its components directly. Do not create a
|
|
89
|
+
project and import its components directly. Do not create a Volter chain file,
|
|
90
90
|
effect registry, wrapper component, or JSON descriptor. The owning scene's JSX
|
|
91
91
|
is already the ordered chain; conditionally render one effect to bypass it and
|
|
92
92
|
move its JSX child to reorder it. Keep the finishing order restrained: render,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
|
-
display_name: "
|
|
2
|
+
display_name: "Volter Three.js Authoring"
|
|
3
3
|
short_description: "Build polished native Three.js scenes and assets"
|
|
4
4
|
default_prompt: "Use $volter-threejs-authoring to build and visually refine native Three.js source without introducing a parallel scene model."
|
package/template/AGENTS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# AGENTS.md —
|
|
1
|
+
# AGENTS.md — Volter Game Project
|
|
2
2
|
|
|
3
|
-
A standalone game built with
|
|
3
|
+
A standalone game built with Volter — work here, not in the engine repo.
|
|
4
4
|
The editor is the authoring and verification surface.
|
|
5
5
|
|
|
6
6
|
## Route the request first
|
|
@@ -134,7 +134,7 @@ request needs.
|
|
|
134
134
|
Games are fundamentally unpredictable; pre-written assertions enter an
|
|
135
135
|
endless rewrite cycle. Playtest live; the play log is the receipt.
|
|
136
136
|
|
|
137
|
-
1. Run `check-idioms`, `typecheck`,
|
|
137
|
+
1. Run `check-idioms`, `typecheck`, and `validate-manifest`.
|
|
138
138
|
**`npm run typecheck` is the gate, never bare `tsc`** (bare `tsc`
|
|
139
139
|
skips `src/tools`).
|
|
140
140
|
2. The ONLY approved slice test is LIVE: a REPL-style manual session in
|
|
@@ -170,7 +170,6 @@ npm run --silent volter -- restart # remount after init-time edits
|
|
|
170
170
|
npm run --silent volter -- screenshot # visible evidence
|
|
171
171
|
npm run --silent volter -- eval '<js>' # THE door onto the running game
|
|
172
172
|
npm run check-idioms # every slice
|
|
173
|
-
npm run validate # manifest/files + React design states
|
|
174
173
|
npm run typecheck # THE gate: src + src/tools + server
|
|
175
174
|
npm run dev:standalone # EXPORTED builds only
|
|
176
175
|
```
|
package/template/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Volter game project
|
|
2
2
|
|
|
3
|
-
This is a standalone game project created by
|
|
3
|
+
This is a standalone game project created by Volter. Describe the game you want
|
|
4
4
|
to a coding agent, or open the shared visual editor directly:
|
|
5
5
|
|
|
6
6
|
```bash
|
|
@@ -17,7 +17,6 @@ exported builds only.
|
|
|
17
17
|
npm run dev # open/reuse this project's editor
|
|
18
18
|
npm run check-idioms # project architecture and completion diagnostics
|
|
19
19
|
npm run typecheck # game, editor contributions, Node config, and server
|
|
20
|
-
npm run validate # project files and React design states
|
|
21
20
|
npm run validate-manifest # volter.project.json
|
|
22
21
|
npm run build # production game bundle
|
|
23
22
|
```
|
|
@@ -78,6 +77,3 @@ game is its own code. `package.json` still declares what the game uses, so
|
|
|
78
77
|
replacing the link with `npm install` gives a standalone installation.
|
|
79
78
|
`npm run volter -- status` reports the product serving the active session.
|
|
80
79
|
|
|
81
|
-
Learn and manual: https://volter-learn.pages.dev
|
|
82
|
-
|
|
83
|
-
Hosted editor: https://volter-editor.pages.dev
|
package/template/check-idioms.ts
CHANGED
|
@@ -104,12 +104,11 @@ import { fileURLToPath } from 'node:url';
|
|
|
104
104
|
//
|
|
105
105
|
// E9 is the one rule that does NOT answer its question from the file tree
|
|
106
106
|
// alone: the R3F00x codes come from the editor's own source analyzer
|
|
107
|
-
// (`
|
|
107
|
+
// (`@volter/editor-react`'s `src/source/r3f-project-contracts.ts`), the same pass validate-on-save and
|
|
108
108
|
// `volter-game-editor status` report from. It is loaded OFFLINE — the analyzer is a pure
|
|
109
109
|
// `(code, file) => diagnostics` function over `typescript`, with no dev
|
|
110
|
-
// server, browser or editor session anywhere in it —
|
|
111
|
-
//
|
|
112
|
-
// editor. See `loadR3fAnalyzer`.
|
|
110
|
+
// server, browser or editor session anywhere in it — from the installed
|
|
111
|
+
// package, so check-idioms never requires a running editor. See `loadR3fAnalyzer`.
|
|
113
112
|
//
|
|
114
113
|
// Suppression: put `// idioms-ignore <rule-id> <reason>` on the flagged
|
|
115
114
|
// line. The reason is REQUIRED — an empty/missing reason does not suppress
|
|
@@ -710,11 +709,6 @@ function checkTriggerNameIdentity(): void {
|
|
|
710
709
|
// ---------------------------------------------------------------------------
|
|
711
710
|
// git-history plumbing shared by slice-proxy rules (W9)
|
|
712
711
|
// ---------------------------------------------------------------------------
|
|
713
|
-
// The volter CLI mirrors this exact measurement (source path, gameplay
|
|
714
|
-
// pathspecs, threshold, silent-on-unaskable) as `volter-game-editor status`'s ambient
|
|
715
|
-
// bot-drift line — engine repo, packages/volter-cli/src/instrumentation-signal.ts.
|
|
716
|
-
// If you change any of the three constants below, change them there too, or
|
|
717
|
-
// the ambient signal and this rule will disagree about whether a bot drifted.
|
|
718
712
|
|
|
719
713
|
/** The files that ARE the game, for slice-proxy measurements (W9). Deliberately
|
|
720
714
|
* NOT all of src/ — churn in src/ui/, src/tools/ or src/data/ is not by
|
|
@@ -833,7 +827,7 @@ function checkUseFramePriority(): void {
|
|
|
833
827
|
|
|
834
828
|
/** The one way a project shows that Play has actually run: `logs/play-*.jsonl`
|
|
835
829
|
* — the editor server opens one per Play session
|
|
836
|
-
* (packages/editor/server/editor-server.ts, POST /__editor/log-session).
|
|
830
|
+
* (packages/editor-core/server/editor-server.ts, POST /__editor/log-session).
|
|
837
831
|
* A working-tree fact, not a git fact (`logs/` is gitignored), written by
|
|
838
832
|
* the tool itself, so it cannot be produced by intending to play. This
|
|
839
833
|
* receipt is also the playtest's proof (owner ruling 2026-08-21). */
|
|
@@ -848,7 +842,7 @@ function hasPlayEvidence(): boolean {
|
|
|
848
842
|
}
|
|
849
843
|
|
|
850
844
|
/** The scaffolder's own record of where this project came from
|
|
851
|
-
* (packages/
|
|
845
|
+
* (packages/game-editor/node/scaffold/baseline.ts). W9's history ANCHOR.
|
|
852
846
|
*
|
|
853
847
|
* W7 anchors its window on a file's last commit; W9 does the same, and this
|
|
854
848
|
* is the file that means "this project began here". Anchoring matters: an
|
|
@@ -1007,8 +1001,8 @@ type R3fAnalyzer = (
|
|
|
1007
1001
|
) => R3fDiagnostic[];
|
|
1008
1002
|
|
|
1009
1003
|
/**
|
|
1010
|
-
* The editor's OWN R3F source analyzer, resolved from
|
|
1011
|
-
* `@editor
|
|
1004
|
+
* The editor's OWN R3F source analyzer, resolved from the installed
|
|
1005
|
+
* `@volter/editor-react` package and loaded synchronously.
|
|
1012
1006
|
*
|
|
1013
1007
|
* Why not re-implement the codes here: they are a real TypeScript AST pass
|
|
1014
1008
|
* over the project's import graph (relative imports, re-exports, shared prop
|
|
@@ -1018,49 +1012,28 @@ type R3fAnalyzer = (
|
|
|
1018
1012
|
* pure (`(code, file) => diagnostics`, `typescript` + `node:fs` and nothing
|
|
1019
1013
|
* else), so nothing about reusing it needs a server or a session.
|
|
1020
1014
|
*
|
|
1021
|
-
* The
|
|
1022
|
-
*
|
|
1023
|
-
*
|
|
1024
|
-
* `packages/editor/src`, an installed one at
|
|
1025
|
-
* `node_modules/@volter/editor-core/src` (the published package ships `src/`).
|
|
1026
|
-
* Reading the alias means one code path serves both without knowing which.
|
|
1027
|
-
* A node_modules target uses Node's package resolution as a fallback so the
|
|
1028
|
-
* same mapping also works when a workspace manager hoists the package.
|
|
1015
|
+
* The published packages ship `src/`, so a module is found as
|
|
1016
|
+
* `node_modules/<package>/<file>` in the project or any directory above it
|
|
1017
|
+
* (a workspace manager may hoist the package).
|
|
1029
1018
|
*
|
|
1030
1019
|
* Returns null when the analyzer genuinely cannot be reached. E9 reports that
|
|
1031
1020
|
* as a finding of its own rather than passing silently — a floor rule that
|
|
1032
1021
|
* disappears when its instrument is missing reads as a clean bill of health,
|
|
1033
1022
|
* which is the one thing an analyzer must never produce.
|
|
1034
1023
|
*/
|
|
1035
|
-
function
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
const
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
const alias = raw.match(/"@editor\/\*"\s*:\s*\[\s*"([^"]+)"/);
|
|
1044
|
-
if (!alias) return null;
|
|
1045
|
-
const baseUrl = raw.match(/"baseUrl"\s*:\s*"([^"]+)"/)?.[1] ?? '.';
|
|
1046
|
-
const aliasTarget = alias[1]!.replace('*', relative);
|
|
1047
|
-
mapped = resolve(rootDir, baseUrl, aliasTarget);
|
|
1048
|
-
if (!existsSync(mapped)) {
|
|
1049
|
-
const nodeModulesMarker = 'node_modules/';
|
|
1050
|
-
const normalizedTarget = aliasTarget.replaceAll('\\', '/');
|
|
1051
|
-
const markerIndex = normalizedTarget.lastIndexOf(nodeModulesMarker);
|
|
1052
|
-
if (markerIndex < 0) return null;
|
|
1053
|
-
const packageTarget = normalizedTarget.slice(markerIndex + nodeModulesMarker.length);
|
|
1054
|
-
mapped = createRequire(join(rootDir, 'package.json')).resolve(packageTarget);
|
|
1055
|
-
}
|
|
1056
|
-
} catch {
|
|
1057
|
-
return null;
|
|
1024
|
+
function resolvePackageModule(packageName: string, relative: string): string | null {
|
|
1025
|
+
let dir = rootDir;
|
|
1026
|
+
for (;;) {
|
|
1027
|
+
const candidate = join(dir, 'node_modules', packageName, relative);
|
|
1028
|
+
if (existsSync(candidate)) return candidate;
|
|
1029
|
+
const parent = dirname(dir);
|
|
1030
|
+
if (parent === dir) return null;
|
|
1031
|
+
dir = parent;
|
|
1058
1032
|
}
|
|
1059
|
-
return existsSync(mapped) ? mapped : null;
|
|
1060
1033
|
}
|
|
1061
1034
|
|
|
1062
1035
|
function loadR3fAnalyzer(): R3fAnalyzer | null {
|
|
1063
|
-
const mapped =
|
|
1036
|
+
const mapped = resolvePackageModule('@volter/editor-react', 'src/source/r3f-project-contracts.ts');
|
|
1064
1037
|
if (!mapped) return null;
|
|
1065
1038
|
try {
|
|
1066
1039
|
const loaded = createRequire(import.meta.url)(mapped) as {
|
|
@@ -1096,7 +1069,10 @@ interface RegionSurfaces {
|
|
|
1096
1069
|
}
|
|
1097
1070
|
|
|
1098
1071
|
function loadRegionSurfaces(): RegionSurfaces | null {
|
|
1099
|
-
const mapped =
|
|
1072
|
+
const mapped = resolvePackageModule(
|
|
1073
|
+
'@volter/editor-sdk',
|
|
1074
|
+
'src/kit/asset-workflow/project-source-index.ts',
|
|
1075
|
+
);
|
|
1100
1076
|
if (!mapped) return null;
|
|
1101
1077
|
try {
|
|
1102
1078
|
const loaded = createRequire(import.meta.url)(mapped) as {
|
|
@@ -1151,8 +1127,8 @@ function checkAuthoringWarnings(): void {
|
|
|
1151
1127
|
'E9',
|
|
1152
1128
|
'warn',
|
|
1153
1129
|
'authoring-warnings-zero',
|
|
1154
|
-
'the R3F authoring analyzer could not be loaded, so authoring warnings were NOT checked — this run says nothing about them. It resolves
|
|
1155
|
-
'
|
|
1130
|
+
'the R3F authoring analyzer could not be loaded, so authoring warnings were NOT checked — this run says nothing about them. It resolves from the installed `@volter/editor-react` package.',
|
|
1131
|
+
'Install the project\'s dependencies (`npm install`): the analyzer is `@volter/editor-react`\'s source and the region resolver `@volter/editor-sdk`\'s. `npm run volter -- status` reports the same counts from the live editor meanwhile.',
|
|
1156
1132
|
);
|
|
1157
1133
|
return;
|
|
1158
1134
|
}
|
|
@@ -1165,7 +1141,7 @@ function checkAuthoringWarnings(): void {
|
|
|
1165
1141
|
'warn',
|
|
1166
1142
|
'authoring-warnings-zero',
|
|
1167
1143
|
"the region resolver could not be loaded, so no file could be attributed to this project's `three` region and authoring warnings were NOT checked — this run says nothing about them.",
|
|
1168
|
-
'
|
|
1144
|
+
'Install the project\'s dependencies (`npm install`): the analyzer is `@volter/editor-react`\'s source and the region resolver `@volter/editor-sdk`\'s. `npm run volter -- status` reports the same counts from the live editor meanwhile.',
|
|
1169
1145
|
);
|
|
1170
1146
|
return;
|
|
1171
1147
|
}
|
package/template/package.json
CHANGED
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"@colyseus/sdk": "^0.17.34",
|
|
25
25
|
"@react-three/drei": "^10.7.7",
|
|
26
26
|
"@react-three/fiber": "^9.6.1",
|
|
27
|
-
"@volter/editor-project": "^0.5.
|
|
28
|
-
"@volter/game-runtime": "^0.5.
|
|
29
|
-
"@volter/threejs-runtime": "^0.5.
|
|
27
|
+
"@volter/editor-project": "^0.5.71",
|
|
28
|
+
"@volter/game-runtime": "^0.5.71",
|
|
29
|
+
"@volter/threejs-runtime": "^0.5.71",
|
|
30
30
|
"react": "~19.2.4",
|
|
31
31
|
"react-dom": "~19.2.4",
|
|
32
32
|
"three": "^0.180.0",
|
|
@@ -40,13 +40,13 @@
|
|
|
40
40
|
"@types/react-dom": "^19.2.3",
|
|
41
41
|
"@types/three": "^0.180.0",
|
|
42
42
|
"@vitejs/plugin-react": "^5.1.4",
|
|
43
|
-
"@volter/editor-core": "^0.5.
|
|
44
|
-
"@volter/editor-game": "^0.5.
|
|
45
|
-
"@volter/editor-live": "^0.5.
|
|
46
|
-
"@volter/editor-sdk": "^0.5.
|
|
47
|
-
"@volter/editor-threejs": "^0.5.
|
|
48
|
-
"@volter/game-editor": "^0.5.
|
|
49
|
-
"@volter/game-live": "^0.5.
|
|
43
|
+
"@volter/editor-core": "^0.5.71",
|
|
44
|
+
"@volter/editor-game": "^0.5.71",
|
|
45
|
+
"@volter/editor-live": "^0.5.71",
|
|
46
|
+
"@volter/editor-sdk": "^0.5.71",
|
|
47
|
+
"@volter/editor-threejs": "^0.5.71",
|
|
48
|
+
"@volter/game-editor": "^0.5.71",
|
|
49
|
+
"@volter/game-live": "^0.5.71",
|
|
50
50
|
"colyseus": "^0.17.8",
|
|
51
51
|
"storybook": "10.6.0",
|
|
52
52
|
"tsx": "^4.23.0",
|
|
@@ -5,18 +5,10 @@
|
|
|
5
5
|
* via SSE.
|
|
6
6
|
*
|
|
7
7
|
* There is no auto-started Colyseus process — this is imported by the
|
|
8
|
-
* standalone `npm run server` entry (server/main.ts)
|
|
9
|
-
* harnesses: the e2e showcase's `startColyseusServer`
|
|
10
|
-
* (packages/editor/e2e/helpers/colyseus.ts, which esbuild-bundles this +
|
|
11
|
-
* rooms.ts to run against a real scaffolded project) and the unit-test
|
|
12
|
-
* in-process loopback server (packages/editor/test/helpers/colyseus-loopback.ts,
|
|
13
|
-
* which imports this directly for headless multiplayer tests).
|
|
8
|
+
* standalone `npm run server` entry (server/main.ts).
|
|
14
9
|
*/
|
|
15
10
|
|
|
16
11
|
import type { Server as HttpServer } from 'node:http';
|
|
17
|
-
// A LEAF module by design — the browser P2P host must reach the same check
|
|
18
|
-
// without dragging this file's server transport into its bundle. See
|
|
19
|
-
// `declared-room.ts`'s header for the build failure that proved it.
|
|
20
12
|
|
|
21
13
|
export interface ColyseusOptions {
|
|
22
14
|
/** Room definitions: array of { name, handler }. */
|
package/template/server/main.ts
CHANGED
|
@@ -6,11 +6,6 @@
|
|
|
6
6
|
* through `play + server`, before the game's client half (`src/net/`) joins `game_room`. Both
|
|
7
7
|
* arrive with the `server` addition; a project without it keeps these rooms and has neither.
|
|
8
8
|
*
|
|
9
|
-
* This is the standalone counterpart to the two existing harnesses that already start
|
|
10
|
-
* `startColyseus` (colyseus-setup.ts): the e2e showcase's
|
|
11
|
-
* `startColyseusServer` (packages/editor/e2e/helpers/colyseus.ts) and the
|
|
12
|
-
* unit-test in-process loopback (packages/editor/test/helpers/colyseus-loopback.ts).
|
|
13
|
-
*
|
|
14
9
|
* Run via `npm run server`, which invokes tsx against `server/tsconfig.json`
|
|
15
10
|
* (not the app `tsconfig.json` at the project root) — `@colyseus/schema`'s
|
|
16
11
|
* `@type(...)` decorators are legacy (TC39 stage-2) decorators, which need
|
|
@@ -149,8 +149,8 @@ export class ArenaRoom extends Room {
|
|
|
149
149
|
const npcCount = Math.max(0, Math.min(MAX_NPCS, options?.botCount ?? 2));
|
|
150
150
|
this.spawnNPCs(npcCount);
|
|
151
151
|
|
|
152
|
-
// Off by default (FROZEN DECISION: env-var OR room-option) —
|
|
153
|
-
// the
|
|
152
|
+
// Off by default (FROZEN DECISION: env-var OR room-option) — a caller that
|
|
153
|
+
// creates the room with `allowDebugCommands: true` opts in; a
|
|
154
154
|
// plain `npm run server` boot never accepts debug commands unless
|
|
155
155
|
// VOLTER_ALLOW_DEBUG_COMMANDS is set in its environment.
|
|
156
156
|
const debugCommandsAllowed =
|
|
@@ -152,8 +152,8 @@ export class GameRoom extends Room {
|
|
|
152
152
|
private orbRespawnTicks: number[] = [];
|
|
153
153
|
|
|
154
154
|
onCreate(options?: { allowDebugCommands?: boolean }) {
|
|
155
|
-
// Off by default (FROZEN DECISION: env-var OR room-option) —
|
|
156
|
-
// the
|
|
155
|
+
// Off by default (FROZEN DECISION: env-var OR room-option) — a caller that
|
|
156
|
+
// creates the room with `allowDebugCommands: true` opts in; a
|
|
157
157
|
// plain `npm run server` boot never accepts debug commands unless
|
|
158
158
|
// VOLTER_ALLOW_DEBUG_COMMANDS is set in its environment.
|
|
159
159
|
const debugCommandsAllowed =
|
package/template/server/rooms.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Room registry — defines all available Colyseus rooms, passed to
|
|
3
3
|
* `startColyseus({ rooms, ... })` (colyseus-setup.ts) to call server.define()
|
|
4
|
-
* for each.
|
|
5
|
-
* (packages/editor/e2e/helpers/colyseus.ts) and the unit-test in-process
|
|
6
|
-
* loopback server (packages/editor/test/helpers/colyseus-loopback.ts).
|
|
4
|
+
* for each.
|
|
7
5
|
*/
|
|
8
6
|
|
|
9
7
|
import { ArenaRoom } from './rooms/arena-room.js';
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import type { Room } from '@colyseus/sdk';
|
|
13
|
-
import { useFrame } from '@react-three/fiber';
|
|
13
|
+
import { type ThreeElements, useFrame } from '@react-three/fiber';
|
|
14
14
|
import { useEffect, useRef, useState } from 'react';
|
|
15
15
|
import { actionPressed } from '../input';
|
|
16
16
|
import { joinGameRoom } from './game-room';
|
|
@@ -42,7 +42,7 @@ interface StateShape {
|
|
|
42
42
|
orbs: { forEach(fn: (orb: OrbView, id: string) => void): void };
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
export function NetworkedPlayers({ name = 'Networked Players' }:
|
|
45
|
+
export function NetworkedPlayers({ name = 'Networked Players', ...props }: ThreeElements['group']) {
|
|
46
46
|
const [room, setRoom] = useState<Room | null>(null);
|
|
47
47
|
const [running, setRunning] = useState(false);
|
|
48
48
|
const [players, setPlayers] = useState<readonly PlayerView[]>([]);
|
|
@@ -115,7 +115,7 @@ export function NetworkedPlayers({ name = 'Networked Players' }: { readonly name
|
|
|
115
115
|
});
|
|
116
116
|
|
|
117
117
|
return (
|
|
118
|
-
<group name={name}>
|
|
118
|
+
<group {...props} name={name}>
|
|
119
119
|
{players.map((player) => (
|
|
120
120
|
<mesh key={player.id} name={player.name || player.id} position={[player.x, 0.45, player.z]} castShadow>
|
|
121
121
|
<sphereGeometry args={[0.45, 24, 16]} />
|
package/template/vite.config.ts
CHANGED
|
@@ -12,7 +12,7 @@ const packageSource = (name: string) =>
|
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Run-4 dry-run friction #2 — auto-detect drvfs the SAME way the editor dev
|
|
15
|
-
* server does (`packages/editor/server/server-utils.ts`'s
|
|
15
|
+
* server does (`packages/editor-core/server/server-utils.ts`'s
|
|
16
16
|
* `resolveWatcherPollOptions`, and `dev.ts`'s own `projectOnDrvfs` check):
|
|
17
17
|
* on WSL, a project living on a Windows drive (`/mnt/<drive>/…`) never fires
|
|
18
18
|
* inotify, so without polling this standalone server (`npm run dev:standalone`)
|
|
@@ -61,7 +61,7 @@ dist-server/
|
|
|
61
61
|
# the very dirty-file count the commit-cadence tripwire reports.
|
|
62
62
|
.volter/tripwire-gate.json
|
|
63
63
|
|
|
64
|
-
# `volter-game-editor play`'s run logs (logs/play-*.jsonl
|
|
64
|
+
# `volter-game-editor play`'s run logs (logs/play-*.jsonl)
|
|
65
65
|
logs/
|
|
66
66
|
*.jsonl
|
|
67
67
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as t}from"./jsx-runtime-DPjLkJKQ.js";import{Object3DSnapshotDocument as m}from"./EntityModelDocument-B_4ENTCq.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./editor-shell-store-DHVWS8cE.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./Pass-D1MRT672.js";import"./editor-layers-D-CTUqco.js";import"./workspace-arrangement-DqG5sUns.js";import"./index-C5ZAyrKq.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-C84W0V47.js";import"./entity-object-MKYemTFM.js";import"./three-contract-Dkt6PmWY.js";import"./live-mixers-B-bwLZ7c.js";import"./asset-preview-DxlSdRZn.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-BuCO8Ke-.js";import"./studio-environment-R9qXUUcC.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-DYfGYwvq.js";import"./three-state-BCACvUtm.js";import"./standard-viewport-dressing-BW-dM_1h.js";import"./content-bounds-DROIchTa.js";import"./preview-renderer-BrYNFV1p.js";import"./live-gesture-lock-DJbrjOqf.js";import"./model-inspection-DvspbmJl.js";import"./three-viewport-presentation-CBzvc2v2.js";import"./clip-planes-CnAI6DZn.js";import"./three-DiL6vMXq.js";import"./component-instance-root-DLI40MiB.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./model-thumbnail-BmQs-h6t.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./three-integration-DXOFI88n.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-CAVQMPI7.js";import"./root-stacking-BEd9ZvxC.js";import"./object3d-document-session-registry-CMRJdFp6.js";import"./viewport-door-BARIpMu-.js";import"./scene-framing-DkZKDwH3.js";import"./source-object3d-authoring-adapter-CvmFpSUj.js";import"./three-projection-core-B7Lf8tOp.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-xCg94CuI.js";import"./viewport-surface-status-TUfhXKR9.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-DYfGYwvq.js","assets/index-C5ZAyrKq.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-BCACvUtm.js","assets/editor-shell-store-DHVWS8cE.js","assets/output-pass-HurwNl0G.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/Pass-D1MRT672.js","assets/editor-layers-D-CTUqco.js","assets/workspace-arrangement-DqG5sUns.js","assets/user-data-C84W0V47.js","assets/entity-object-MKYemTFM.js","assets/three-contract-Dkt6PmWY.js","assets/standard-viewport-dressing-BW-dM_1h.js","assets/content-bounds-DROIchTa.js","assets/hierarchy-marks-BuCO8Ke-.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/model-inspection-DvspbmJl.js","assets/three-viewport-presentation-CBzvc2v2.js","assets/clip-planes-CnAI6DZn.js","assets/three-DiL6vMXq.js","assets/component-instance-root-DLI40MiB.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/model-thumbnail-BmQs-h6t.js","assets/studio-environment-R9qXUUcC.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/OrbitControls-B13MKuwC.js","assets/LineSegments2-DN9pUfWA.js","assets/three.quarks.esm-C_HmSKXo.js","assets/three-integration-DXOFI88n.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/layered-pick-CAVQMPI7.js","assets/root-stacking-BEd9ZvxC.js","assets/object3d-document-session-registry-CMRJdFp6.js","assets/viewport-door-BARIpMu-.js","assets/asset-preview-DxlSdRZn.js","assets/bitmap-label-Ct4k6ehY.js","assets/scene-framing-DkZKDwH3.js","assets/source-object3d-authoring-adapter-CvmFpSUj.js","assets/three-projection-core-B7Lf8tOp.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/transport-strip-xCg94CuI.js","assets/viewport-surface-status-TUfhXKR9.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{ae as r,_ as a}from"./index-C5ZAyrKq.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-TUfhXKR9.js";const s=n.lazy(async()=>({default:(await a(()=>import("./StageHost-DYfGYwvq.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};
|