外观
历史 PAK 与数据文件参考
本页合并旧语雀教程中的 Content.pak、BlocksData.txt、Clothes.xml、CraftingRecipes.xml、Database.xml 以及 .csv/.clo/.cr/.xdb 免打包格式。它们有助于理解数据结构,但不是 SCAPI 1.9 或 SuAPI 的当前安装步骤。
Content.pak 的职责
历史版本把大部分非代码内容集中在内容包中,包括:
BlocksData.txt:方块基础属性表;Clothes.xml:衣物槽位、贴图、保温、防护和耐久等数据;CraftingRecipes.xml:合成、拆解和加热配方;Database.xml:实体、组件、子系统和项目模板;Atlases、Textures、Models、Audio:界面、纹理、模型和声音;Dialogs、Screens、Styles、Widgets:历史 UI 布局资源。
直接重打整个 PAK 会放大冲突和分发风险。现代加载器允许时,应只携带 MOD 实际修改的条目和资源。
方块数据
旧 BlocksData 教程逐列解释了显示、碰撞、透明、工具、燃料、耐久、纹理槽等属性。不同版本可能增删列或改变含义,因此建议:
- 从目标版本取得表头,而不是复制旧模板;
- 用稳定标识匹配条目,不依赖“看起来空闲”的数字 ID;
- 保持代码、配方、本地化和纹理引用一致;
- 先在空白世界测试,再迁移已有存档。
纹理槽通常按图集网格计算。旧教程的固定宽度公式只适用于对应图集布局;当前项目应从源码或资源元数据核对。
衣物数据
衣物条目会关联穿戴部位、层级、纹理、耐久、保温、防护、移动与密度修正。新增衣物不能只复制 XML:还要确保索引唯一、贴图路径正确、本地化存在,并测试多层穿戴与水中行为。
当前源码快照中的衣物数据已整理到衣物与盔甲图鉴,可用于阅读结构,但不应当成所有版本通用数值。
配方数据
配方由产物、数量、材料映射、排列图案和所需热量组成。新增配方时检查:
- 产物与材料标识是否属于目标加载器;
- 有序图案中的空格、行宽和字符映射;
- 是否与已有配方产生无法区分的冲突;
- 加热配方是否使用正确热量等级;
- 本地化描述是否让玩家能在 Recipaedia 中理解。
本站的完整配方索引由当前源码快照生成,可作为结构示例。
Database 的继承关系
Database.xml 不是普通配置表。项目、子系统、实体模板和组件之间存在继承与引用。历史名词表中的常见概念可归纳为:
| 层级 | 作用 |
|---|---|
| Project / ProjectTemplate | 世界项目及其模板 |
| Subsystem | 世界范围的系统与持久化服务 |
| EntityTemplate | 可生成实体的模板 |
| Component | 实体的一部分状态或行为 |
| Parameter / Value | 具体配置值或对其他条目的引用 |
复制节点时必须追踪父级、名称和引用。只改显示名称无法创建独立实体,错误继承还可能让世界在加载阶段失败。
旧免打包扩展
.csv、.clo、.cr、.xdb 等格式曾用于只携带差异条目,减少重打 PAK。它们的合并规则、删除语义和加载顺序由旧 API 决定。现代项目可以借鉴“最小差异包”的思想,但不能默认扩展名仍受支持。
不再推荐的步骤
- 修改唯一游戏安装中的原始
Content.pak; - 用旧版工具覆盖当前数据表;
- 发布包含完整游戏资源的 PAK;
- 只改数字 ID,不建立项目内分配清单;
- 把旧
modinfo.json示例原样用于 API 1.9 或 SuAPI。
