|
| 1 | +# AGENTS.md — CHUNITHM Modding Ecosystem |
| 2 | + |
| 3 | +## 简称 |
| 4 | + |
| 5 | +| 简称 | 全名 | 仓库 | 说明 | |
| 6 | +|------|------|------|------| |
| 7 | +| **CCM** | ChuChartManager | MuNET-OSS/ChuChartManager | 谱面与资源管理工具(本仓库) | |
| 8 | +| **AppleChu** | AppleChu | MuNET-OSS/AppleChu | CHUNITHM 游戏 Mod(子模块) | |
| 9 | +| **Loader** | ChuModLoader | MuNET-OSS/ChuModLoader | Rust Mod 加载器(子模块) | |
| 10 | + |
| 11 | +## 项目结构 |
| 12 | + |
| 13 | +``` |
| 14 | +ChuChartManager/ # CCM 主仓库(monorepo) |
| 15 | +├── ChuChartManager/ # .NET 10 WinForms + ASP.NET Core 后端 |
| 16 | +│ ├── Front/ # Vue 3 + TypeScript 前端(Vite + UnoCSS + MuNET-UI) |
| 17 | +│ ├── Controllers/ # REST API |
| 18 | +│ └── Resources/AppleChu/ # AppleChu manifest.toml + default_config.toml(与子模块同步) |
| 19 | +├── ChuChartManager.CLI/ # 命令行工具 |
| 20 | +├── AppleChu/ # 子模块 → MuNET-OSS/AppleChu |
| 21 | +├── ChuModLoader/ # 子模块 → MuNET-OSS/ChuModLoader |
| 22 | +├── MuNET-UI/ # 子模块 → UI 组件库 |
| 23 | +├── MuConvert/ # 子模块 → 谱面格式转换 |
| 24 | +├── SonicAudioTools/ # 子模块 → CRIWARE 音频处理 |
| 25 | +├── XV2-Tools/ # 子模块 → ACB/AWB 音频工具 |
| 26 | +├── DDSExtractor/ # 子模块 → DDS 纹理提取 |
| 27 | +├── FreeMote/ # 子模块 → E-mote PSB 工具链 |
| 28 | +├── FreeMote-SDK/ # 子模块 → E-mote WebGL 驱动 |
| 29 | +└── Packaging/ # MSIX 打包脚本 |
| 30 | +``` |
| 31 | + |
| 32 | +## 技术栈 |
| 33 | + |
| 34 | +| 项目 | 语言 | 框架 | |
| 35 | +|------|------|------| |
| 36 | +| CCM 后端 | C# | .NET 10 + ASP.NET Core + WinForms | |
| 37 | +| CCM 前端 | TypeScript | Vue 3 + Vite + UnoCSS + SASS | |
| 38 | +| AppleChu | Rust (nightly, i686) | ChuModLoader SDK | |
| 39 | +| Loader | Rust | version.dll proxy | |
| 40 | + |
| 41 | +## 规则 |
| 42 | + |
| 43 | +### Git |
| 44 | + |
| 45 | +- **不要自动 push** — 只在用户明确说 push 时才推 |
| 46 | +- **不要未经确认 commit** — 改完等用户确认 |
| 47 | +- commit 带签名:`git -c gpg.format=ssh commit -S -m "..."`,如果失败就不带签名 |
| 48 | +- commit message 用中文,conventional commits 格式,统一 commit 风格 |
| 49 | + |
| 50 | +### AppleChu |
| 51 | + |
| 52 | +- ExitConfirm 和 DeviceLostFix 是 `always_enabled` |
| 53 | +- 代码注释只用于:逆向工程 magic number、COM vtable 偏移、汇编字节 |
| 54 | + |
| 55 | +### CCM |
| 56 | + |
| 57 | +- `Resources/AppleChu/manifest.toml` 和 `default_config.toml` 必须与 AppleChu 子模块保持同步 |
| 58 | +- 保存配置时基于 `default_config.toml` 模板用户,和 Mod 生成的配置文件保持一致 |
| 59 | +- 配置文件不存在时自动从 default_config.toml 生成 |
| 60 | + |
| 61 | +### 前端 |
| 62 | + |
| 63 | +- SASS **缩进语法**(不是 SCSS) |
| 64 | +- 组件库:`@munet/ui`(MuNET-UI 子模块) |
| 65 | +- 深色玻璃主题:`backdrop-filter: blur`、`rgba` 半透明、`var(--text-color)` 派生颜色 |
| 66 | +- 不引入新 npm 依赖除非必要 |
| 67 | + |
| 68 | +### 已知阻塞 |
| 69 | + |
| 70 | +| 功能 | 原因 | |
| 71 | +|------|------| |
| 72 | +| 自定义分辨率 | Segatools 先于 mod 创建 D3D9 设备 | |
| 73 | +| FPS 显示 OSD | 同上,Present hook 不生效 | |
| 74 | + |
| 75 | +## 构建 |
| 76 | + |
| 77 | +```bash |
| 78 | +# CCM 前端 |
| 79 | +cd ChuChartManager/Front && pnpm install && pnpm build |
| 80 | + |
| 81 | +# CCM 后端 |
| 82 | +dotnet build ChuChartManager.slnx |
| 83 | + |
| 84 | +# AppleChu |
| 85 | +cd AppleChu && cargo build --release |
| 86 | +# 输出: target/i686-pc-windows-msvc/release/AppleChu.dll |
| 87 | + |
| 88 | +# Loader |
| 89 | +cd ChuModLoader && cargo build --release |
| 90 | + |
| 91 | +# MSIX 打包 |
| 92 | +.\Packaging\Build.ps1 -Mode Canary # PowerShell |
| 93 | +./Packaging/build.sh Canary # Bash |
| 94 | +``` |
0 commit comments