Files
emod-cli/README.md

115 lines
2.7 KiB
Markdown
Raw Normal View History

2025-11-29 17:31:00 +08:00
# emod-cli
网易我的世界 Bedrock 组件开发 CLI 工具,用于项目创建、初始化、调试与打包发布。
2025-11-29 17:31:00 +08:00
## 安装
2025-11-29 17:31:00 +08:00
```bash
cargo build --release
# 产物位于 target/release/emod-cli
```
## 命令
### create
从内置模板创建新的 Addon 项目。
```bash
emod-cli create --name <项目名>
emod-cli create --name <项目名> --target <模板名>
```
| 参数 | 说明 |
|------|------|
| `-n, --name` | 项目名(必填) |
| `-t, --target` | 模板名,默认 `default` |
### init
为已有项目补齐模板中的空目录(基于 `.empty-dirs` 清单)。
```bash
emod-cli init
emod-cli init --path <项目路径> --target <模板名>
```
### debug
启动网易 MC 并加载调试 MOD支持 IPC 日志和热重载。
```bash
emod-cli debug
emod-cli debug --path <项目路径>
emod-cli debug --new # 创建全新调试存档
```
| 参数 | 说明 |
|------|------|
| `-p, --path` | 项目路径,默认当前目录 |
| `-n, --new` | 创建带时间戳的新存档并持久化到 `.mcdev.json` |
调试流程:
1. 读取/生成 `.mcdev.json` 配置
2. 清理运行时旧包链接
3. 注册调试 MOD 并链接用户 MOD 目录
4. 准备开发世界(含自动加入游戏配置)
5. 启动游戏进程,挂载 IPC 日志与热重载
### release
打包 Addon 为可发布的 ZIP 产物。
```bash
emod-cli release
emod-cli release --path <项目路径>
emod-cli release --ver 1.2.0
emod-cli release --pin
```
| 参数 | 说明 |
|------|------|
| `-p, --path` | 项目路径,默认当前目录 |
| `-v, --ver` | 指定发布版本(与 `--pin` 互斥) |
| `-P, --pin` | 锁定当前版本不变,适用于重试失败打包 |
2025-11-29 17:31:00 +08:00
支持通过环境变量 `EMOD_ARTIFACTS_DIR` 指定产物输出目录。
支持 `.emod-ignore``.emod-package` 自定义打包规则。
### components
创建组件资源(如 3D 物品模型)。
2025-11-29 17:31:00 +08:00
```bash
emod-cli components --component 3ditem
emod-cli components --component 3ditem --geo ./model.geo.json --texture ./texture.png
2025-11-29 17:31:00 +08:00
```
| 参数 | 说明 |
|------|------|
| `-p, --path` | 项目路径 |
| `-c, --component` | 组件类型,当前支持 `3ditem` |
| `-g, --geo` | geo 文件路径 |
| `-t, --texture` | 贴图文件路径 |
| `-i, --identifier` | 组件标识符 |
## 项目结构
2025-11-29 17:31:00 +08:00
```
<项目根目录>/
├── behavior_pack/ # 行为包
├── resource_pack/ # 资源包
├── template.toml # 项目模板配置
├── .mcdev.json # 调试配置debug 自动生成)
├── .emod-ignore # 打包排除规则(可选)
└── .emod-package # 打包包含规则(可选)
```
## 开发
```bash
cargo build
cargo test
cargo fmt --check
```