docs: add Editor API documentation
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user