内容包配置
基本信息
| 属性 | 值 |
|---|---|
| 加载清单 | assets/gendustry/config/files.lst(5 行有效条目) |
| 内部配置 | tuning.cfg / recipes.cfg / upgrades.cfg / bees_color.cfg / bees_patreon.cfg |
| 用户配置目录 | <游戏目录>/config/gendustry/ |
| 覆盖目录 | <游戏目录>/config/gendustry/overrides/(同名文件覆盖内部配置) |
| 首次运行 | 写一份 readme.txt 说明加载顺序与覆盖机制 |
5 个内部配置文件
| 文件 | 内部位置 | 行数 | 内容 |
|---|---|---|---|
tuning.cfg |
assets/gendustry/config/ |
180 | 机器 / 工具 / 遗传 / 电力参数 |
recipes.cfg |
同上 | 241 | 合成配方与液体转化 |
upgrades.cfg |
同上 | 303 | 21 种蜂箱升级件定义与配方 |
bees_color.cfg |
同上 | 567 | 16 个染色蜂种 + 16 蜂巢 + 16 蜂蜜滴 + 离心与变异配方 |
bees_patreon.cfg |
同上 | 47 | 1 个赞助蜂种 |
hives.cfg 不在清单里,仓库中只以示例形式存在于 example_configs/hives.cfg(不在 src/main/resources 内),因此默认不加载、默认注册 0 个蜂巢方块。
加载顺序
TuningLoader.loadConfigFiles 调 RecipesHelper.loadConfigs:
- 读取 classpath 上的
files.lst,按清单顺序释放 5 个文件到config/gendustry/ - 再扫描
config/gendustry/下的所有.cfg,按文件名字母序加载 overrides/子目录中同名文件可整体替换内部配置
因为用户配置在内部配置之后加载,用户可以只写需要改的键来做局部覆盖(同段 / 同名键被后加载者覆盖),也可以用 overrides/ 做整体替换。
loader.loadDelayed() 在 postInit 阶段(Gendustry.scala:148)调 loader.processRecipeStatements(),此时才真正把配方语句提交给 Forge —— 因为配方可能引用尚未注册完的方块与物品。
条件指令
配置语言支持三类条件表达式(config/loader/ast.scala 等):
| 语法 | 语义 |
|---|---|
if HaveMod <modid> |
模组已加载 |
if HaveMod "<modid>"|statements |
BuildCraft 风格命名空间与版本 |
if HaveOD <物品字典名> |
EnderIO 物品字典条目存在 |
if HaveForestryModule <Bees|Trees> |
Forestry 模块启用 |
<< / >> |
块级条件包裹(bees_color.cfg / bees_patreon.cfg 整段用) |
HaveOD 比 HaveMod 更细:EnderIO 的物品字典条目可能来自别的模组的整合包,因此按条目判定比按 modid 判定更稳。
配置合并语义
cfg 同名段会合并而非覆盖:
bees_color.cfg:365注释写明 “Section can appear in multiple files at once, entries will be merged” —— 因此玩家可以在自己的 cfg 里只写一个cfg HoneyCombs { cfg mycolor { ... } }来追加第 17 种染色,而不必复制全部 16 种HoneyCombs与HoneyDrops的格式完全相同,注释也点明 “Same format as combs”Branches段的 cfg 名 “is unused but must be unique” —— 唯一性靠段名保证,但真正生效的是UID
蜂巢定义格式
example_configs/hives.cfg 提供 2 个完整示例(HiveGen Test / HiveGen Rock),指令清单与 自定义蜂巢方块 页一致。仓库同时附带 3 份本地化示例文件(hives.en_US.lang 2 行、example_bees.en_US.lang 4 行、example_bees.ru_RU.lang 3 行),以及 example_configs/example_bees.cfg —— 它是逐字段带注释的教学模板(文件头指向 http://bdew.net/gendustry/configuration/adding-custom-bees/),用 UID = "gendustry.test" 的占位蜂种演示 cfg Branches 与 cfg Bees 的全部字段。
CustomContent.registerSpecies 支持两个可选的条件字段 RequireMod 与 RequireOreDict(蜂种 UID 级别):前者要求指定 modid 已加载,后者要求指定物品字典条目存在,不满足则整条蜂种跳过注册并打日志。仓库内 5 个蜂种配置文件(bees_color.cfg 与 bees_patreon.cfg)一个都没用到这两个字段(grep -cE 'RequireMod|RequireOreDict' bees_color.cfg = 0,example_bees.cfg 同样为 0),因此这属于纯玩家自定义内容可用的扩展点。
相关条目
- tuning.cfg - 机器参数
- recipes.cfg - 合成配方
- upgrades.cfg - 升级件
- 染色蜂种 -
bees_color.cfg的内容 - 赞助蜂种 -
bees_patreon.cfg的内容 - 自定义蜂巢方块 -
hives.cfg的产物