docs: add Editor API documentation

This commit is contained in:
2026-03-27 14:40:29 +08:00
parent 3e2608a802
commit 94c56dd279
87 changed files with 3795 additions and 2 deletions

View File

@@ -0,0 +1,49 @@
# ProjectCommands
**命名空间**: `XCEngine::Editor::Commands`
**类型**: `header-helper`
**源文件**: `editor/src/Commands/ProjectCommands.h`
**描述**: 封装 Project 面板中与资源打开、目录创建、删除和移动相关的高层操作。
## 概述
`ProjectCommands` 当前是一个很轻量的命令头,但它已经把 Project 面板最基础的资源管理语义集中起来:
- `CanOpenAsset`
- `OpenAsset`
- `CreateFolder`
- `DeleteAsset`
- `MoveAssetToFolder`
这让资源浏览面板不必直接操作底层 manager 细节。
## 当前实现
- 资源能否打开,当前只看两种情况:目录,或 `item->type == "Scene"`
- 打开目录时调用 `IProjectManager::NavigateToFolder`
- 打开场景资源时转发到 [`LoadScene`](../SceneCommands/SceneCommands.md)
- 创建目录和删除资源只做最小参数校验,然后委托给 `IProjectManager`
- 资源拖入目录时会比较源路径与目标路径,避免把资源移动到自己身上
## 设计说明
现在这层看起来很薄,但它依然有存在价值。
原因在于 Project 面板的 UI 以后很可能持续变化,而“什么资源能打开、什么动作合法、如何调用 manager”这些规则应该集中在一个稳定位置。
这也是商业编辑器常见的演进路径:先用轻量命令层收口,等资源类型和导入系统成熟后,再逐渐扩展成完整 asset workflow。
## 当前限制
- 只能打开文件夹和场景资源
- 没有资源重命名、复制粘贴、导入和重新导入
- 删除和移动操作没有事务、确认框或冲突解决策略
## 相关文档
- [Commands](../Commands.md)
- [ProjectActionRouter](../../Actions/ProjectActionRouter/ProjectActionRouter.md)
- [ProjectManager](../../Managers/ProjectManager/ProjectManager.md)
- [SceneCommands](../SceneCommands/SceneCommands.md)