feat(mcfold): P1 按实例文件夹解析版本(inheritsFrom 归一化 + 加载器判定)+ 回归测试
This commit is contained in:
31
README.md
Normal file
31
README.md
Normal file
@ -0,0 +1,31 @@
|
||||
# mcfold — Minecraft 折叠层(净室 Python 实现)
|
||||
|
||||
按用户 2026-09-25 定向:**净室 Python 实现**,替代 Node/mineflayer 栈,
|
||||
使产物可打包分发(无 Node 运行时依赖)。
|
||||
|
||||
## 架构
|
||||
|
||||
```
|
||||
底层 mcfold(本工程,Python)
|
||||
├─ 按实例文件夹读版本 → 自动选协议(P1 已完成)
|
||||
├─ 声明式 protocol.json 解释器(protodef)
|
||||
├─ 世界模型(chunk/方块,含 mod 注册表)
|
||||
└─ 触发截屏 → 调脚手架 → 官方渲染 jar
|
||||
中间 可包装为不同 agent 的插件
|
||||
上层 面向 homeagent 的 Go 包装(复用现有 plugin.go 形状)
|
||||
```
|
||||
|
||||
## 关键实测事实(决定设计)
|
||||
|
||||
| 事实 | 证据 |
|
||||
|---|---|
|
||||
| 实例文件夹 = 完整 MC 客户端安装 | `versions/<id>/<id>.json` + `.jar` |
|
||||
| 加载器 id **不是**协议版本 | `minecraft-data('1.20.1-forge-47.4.0')` → FAIL,必须走 `inheritsFrom` |
|
||||
| protocol.json 是**声明式**的 | `varint`/`pstring`/`mapper`/`switch` 全是数据,非代码 |
|
||||
| 因此协议**不需重写**,只需解释器 | 111 个 play 包由同一份 JSON 驱动 |
|
||||
| 1.20.1 **不**在网络上传递方块注册表 | codec 仅 6 类,无 block ⇒ mod 方块必须另寻途径 |
|
||||
| 1.20.2+ 有 configuration 阶段 | 会发 `registry_data` ⇒ mod 方块可行的版本分界 |
|
||||
|
||||
## 进度
|
||||
|
||||
- [x] **P1** 按文件夹解析版本(`mcfold/version.py`,6 项回归全绿)
|
||||
Reference in New Issue
Block a user