Add map editor save and deploy actions
This commit is contained in:
@@ -18,6 +18,7 @@ tools/map_editor/
|
||||
├─ index.html 网页结构
|
||||
├─ styles.css 编辑器样式
|
||||
├─ app.js 解析、绘制、编辑和导出逻辑
|
||||
├─ server.js 本地可写服务,用于保存和部署 .map
|
||||
├─ README.md 快速说明
|
||||
└─ DOCUMENTATION.md 本文档
|
||||
```
|
||||
@@ -30,7 +31,21 @@ game/assets/map/stage_01.map
|
||||
|
||||
## 本地运行
|
||||
|
||||
在仓库根目录启动静态服务:
|
||||
推荐在仓库根目录启动本地可写服务:
|
||||
|
||||
```powershell
|
||||
node tools/map_editor/server.js
|
||||
```
|
||||
|
||||
打开:
|
||||
|
||||
```text
|
||||
http://127.0.0.1:8787/tools/map_editor/
|
||||
```
|
||||
|
||||
这种模式下,顶部工具栏的 `保存` 和 `一键部署` 会启用。
|
||||
|
||||
也可以启动普通静态服务:
|
||||
|
||||
```powershell
|
||||
python -m http.server 8787
|
||||
@@ -42,7 +57,7 @@ python -m http.server 8787
|
||||
http://127.0.0.1:8787/tools/map_editor/
|
||||
```
|
||||
|
||||
从仓库根目录启动时,工具会尝试自动加载:
|
||||
静态模式可以编辑和下载,但不能直接写回项目文件。无论哪种模式,从仓库根目录启动时,工具都会尝试自动加载:
|
||||
|
||||
```text
|
||||
game/assets/map/stage_01.map
|
||||
@@ -57,6 +72,8 @@ game/assets/map/stage_01.map
|
||||
- `撤回`:撤回最近一次编辑操作。
|
||||
- `加载 stage_01.map`:重新加载项目默认地图。
|
||||
- `打开 .map`:从本地选择一个 `.map` 文本文件。
|
||||
- `保存`:写入项目资源目录的 `game/assets/map/stage_01.map`,需要本地可写服务。
|
||||
- `一键部署`:保存并同步到项目资源目录和已存在的 PC/Switch build 资源目录,需本地可写服务。
|
||||
- `保存并下载`:下载当前导出的 `<地图ID>.map`。
|
||||
|
||||
### 左侧菜单
|
||||
@@ -165,6 +182,24 @@ Ctrl+Z
|
||||
|
||||
打开或重新加载 `.map` 会清空撤回历史。当前未实现重做。
|
||||
|
||||
### 保存和部署
|
||||
|
||||
使用本地可写服务启动时:
|
||||
|
||||
```powershell
|
||||
node tools/map_editor/server.js
|
||||
```
|
||||
|
||||
顶部按钮会启用:
|
||||
|
||||
- `保存`:写入 `game/assets/map/stage_01.map`。
|
||||
- `一键部署`:写入 `game/assets/map/stage_01.map`,并同步到已存在的构建资源目录:
|
||||
- `build/windows/x64/release/assets/map/stage_01.map`
|
||||
- `build/switch/aarch64/release/switch_game/assets/map/stage_01.map`
|
||||
- `build/switch/aarch64/release/switch_game/romfs/assets/map/stage_01.map`
|
||||
|
||||
如果某个 build 目录不存在,一键部署会跳过该目标,不会创建完整 build 结构。
|
||||
|
||||
### 保存并下载
|
||||
|
||||
点击顶部“保存并下载”会下载:
|
||||
@@ -175,7 +210,7 @@ Ctrl+Z
|
||||
|
||||
下载内容与右侧“导出文本”一致,并保持 `StageMapLoader` 兼容。
|
||||
|
||||
浏览器安全限制下,静态网页不能直接覆盖项目源文件。当前流程是:
|
||||
普通静态服务模式下,浏览器安全限制不允许直接覆盖项目源文件。当前流程是:
|
||||
|
||||
1. 保存并下载 `.map`。
|
||||
2. 手动替换项目内目标地图文件。
|
||||
@@ -207,7 +242,8 @@ spawn
|
||||
|
||||
## 当前限制
|
||||
|
||||
- 不能直接覆盖本地源文件,只能下载 `.map`。
|
||||
- 普通静态服务模式不能直接覆盖本地源文件,只能下载 `.map`。
|
||||
- `保存` / `一键部署` 需要使用 `node tools/map_editor/server.js` 启动本地可写服务。
|
||||
- 导入图片的真实文件仍需手动放入项目资源目录。
|
||||
- `.map` 中存在于 `game/assets/...` 的 `assets/...` 贴图路径会自动预览。
|
||||
- 如果导入图片后没有把真实文件放到 `game/assets/...` 对应路径,重新打开 `.map` 后会显示 fallback 色块。
|
||||
@@ -218,7 +254,7 @@ spawn
|
||||
|
||||
## 后续扩展建议
|
||||
|
||||
- 增加服务端保存接口,部署后直接保存 `.map` 到服务器文件或数据库。
|
||||
- 增加正式服务器保存接口,部署后直接保存 `.map` 到服务器文件或数据库。
|
||||
- 增加 tileset 图片预览和 tile palette。
|
||||
- 增加多选、复制、粘贴、批量移动。
|
||||
- 增加自动检查:视觉铺砖区与碰撞块错位提示。
|
||||
|
||||
Reference in New Issue
Block a user