# ESEngine 编辑器

基于 Tauri 2.x + React 18 构建的跨平台桌面可视化编辑器。

## 环境要求

运行编辑器前，请确保已安装以下环境：

- **Node.js** >= 18.x
- **pnpm** >= 10.x
- **Rust** >= 1.70 (Tauri 和 WASM 构建需要)
- **wasm-pack** (构建 Rapier2D 物理引擎需要)
- **平台相关依赖**：
  - **Windows**: Microsoft Visual Studio C++ Build Tools
  - **macOS**: Xcode Command Line Tools (`xcode-select --install`)
  - **Linux**: 参考 [Tauri 环境配置](https://tauri.app/v1/guides/getting-started/prerequisites)

### 安装 wasm-pack

```bash
# 使用 cargo 安装
cargo install wasm-pack

# 或使用官方安装脚本 (Linux/macOS)
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
```

## 快速开始

### 1. 克隆并安装

```bash
git clone https://github.com/esengine/esengine.git
cd esengine
pnpm install
```

### 2. 构建 Rapier2D WASM

编辑器依赖 Rapier2D 物理引擎的 WASM 产物。首次构建只需执行一条命令：

```bash
pnpm build:rapier2d
```

该命令会自动完成以下步骤：
1. 准备 Rust 项目
2. 构建 WASM
3. 复制产物到 `packages/physics/rapier2d/pkg`
4. 生成 TypeScript 源码

> **注意**：需要已安装 Rust 和 wasm-pack。

### 3. 构建编辑器

在项目根目录执行：

```bash
pnpm build:editor
```

### 4. 启动编辑器

```bash
cd packages/editor/editor-app
pnpm tauri:dev
```

## 可用脚本

| 脚本 | 说明 |
|------|------|
| `pnpm build:rapier2d` | 构建 Rapier2D WASM（首次构建必须执行）|
| `pnpm build:editor` | 构建编辑器及所有依赖 |
| `pnpm tauri:dev` | 开发模式运行编辑器（支持热重载）|
| `pnpm tauri:build` | 构建生产版本应用 |
| `pnpm build:sdk` | 构建 editor-runtime SDK |

## 项目结构

```
editor-app/
├── src/                    # React 应用源码
│   ├── components/         # UI 组件
│   ├── panels/             # 编辑器面板
│   └── services/           # 核心服务
├── src-tauri/              # Tauri (Rust) 后端
├── public/                 # 静态资源
└── scripts/                # 构建脚本
```

## 常见问题

### Rapier2D WASM 构建失败

**错误**: `Could not resolve "../pkg/rapier_wasm2d"`

**原因**: 缺少 Rapier2D 的 WASM 产物。

**解决方案**:
1. 确保已安装 `wasm-pack`：`cargo install wasm-pack`
2. 执行 `pnpm build:rapier2d`
3. 确认 `packages/physics/rapier2d/pkg/` 目录存在且包含 `rapier_wasm2d_bg.wasm` 文件

### 构建错误

```bash
pnpm clean
pnpm install
pnpm build:editor
```

### Rust/Tauri 错误

```bash
rustup update
```

### Windows 用户构建 WASM

`pnpm build:rapier2d` 脚本在 Windows 上可以直接运行。如果遇到问题：
1. 使用 Git Bash 或 WSL
2. 或从 [Releases](https://github.com/esengine/esengine/releases) 下载预编译的 WASM 产物

## 文档

- [ESEngine 文档](https://esengine.cn/)
- [Tauri 文档](https://tauri.app/)

## 许可证

MIT License
