GenDustry
[!INFO] Git Commit:
e4af5e5| Updated: 2026-10-02
GenDustry(modid gendustry)是 bdew 原作的 GTNH 分支,把 Forestry 的生物遗传学(蜂种、基因、繁殖)重构成一套完全由机器驱动的工业体系:基因药皿、基因样本、基因模板三件套贯穿全部 10 台机器,用 MJ 作为统一能量单位驱动从采样 → 压印 → 诱变 → 复制 的完整遗传流水线。
modid 从源码读出:Gendustry.scala:54 的 final val modId = "gendustry",并在 :42-49 的 @Mod(modid = Gendustry.modId, ...) 中引用,与 gradle.properties 的 modId = gendustry 一致。Minecraft 版本为 1.7.10(gradle.properties 的 minecraftVersion = 1.7.10;modLanguage = "scala")。版本标签 1.9.13-GTNH(git describe --tags),许可证 MMPL-1.0。
[!IMPORTANT] 分类名
gendustry≠ modid 的大小写争议relation.md记录的仓库路径是/Users/evlos/a/mirror/gendustry/(小写),分类名与 modid 均为全小写gendustry。注意 mod 作者 ID 与包名是net.bdew.gendustry(modGroup),与 modid 同为小写,但不要把它误读成别的 mod。
[!NOTE] 本模组不是 GregTech 5 附属 GenDustry 与 GregTech 毫无关系。
dependencies.gradle的依赖是 NEI、bdlib、Forestry、IC2 Experimental、BuildCraft,另有 waila / CoFH Lib / Mekanism 三个compileOnly。全仓库grep -rniE 'gregtech|gregoriy' src/仅 16 条命中,且全部是语言文件里两个蜂种样本的 tooltip 文本(item.gendustry.GeneSample.gregtech.lifeEon.*与item.gendustry.GeneSample.gregtech.effectTreetwister.*),没有任何 GregTech API 调用或继承。真正的硬依赖只有两个(见下)。
依赖(@Mod(dependencies = ...),Gendustry.scala:47):
| 依赖 | 作用域 | 说明 |
|---|---|---|
Forestry@[4.0.0.0,) |
required-after | 唯一的必需游戏模组;其 Apiculture / Trees 模块分别决定蜂种与花粉装备是否注册 |
bdlib@[1.9.4.109,) |
required-after | bdew 自己的库,提供 ItemManager / MachineManager / BlockManager / gencfg 解析器 |
BuildCraft|energy、BuildCraft|Silicon |
after(软) | 电力、组装线配方、管道推送、触发器 |
IC2 |
after(软) | EU 电力;缺失时 PowerProxy 警告 |
CoFHCore |
after(软) | RF 电力与导管 |
BinnieCore、ExtraBees、ExtraTrees、MineFactoryReloaded、MagicBees |
after(软) | 扩展内容联动 |
| Waila | IMC 消息(无依赖声明) | init 阶段发 register 消息接入 |
PowerProxy.logModVersions 在既无 CoFHCore 又无 IC2 时连续打两条警告 —— 实际运行需要至少一个能量系统。
运行机制
模组主体是 173 个 .scala 文件 + 17 个 .java 文件(.java 全部位于 src/main/scala/ 树下的 api/ 目录,是对外 API 而非 JVM 限制)。启动流程(Gendustry.scala):
- preInit:绑定 4 个 API 静态字段 →
ItemPush.init()探测 4 个物品推送后端 → 释放并加载 5 个配置文件 → 注册 BC 触发器 →Fluids/Blocks/Items/Machines四次load() - init:加载
client.config(仅客户端)→ 注册 GUI handler → 注册GeneRecipe与ChargeRecipe→Upgrades.init()→CustomContent.registerBranches()/registerSpecies()→ 发 WAILA IMC - postInit:
TuningLoader.loadDelayed()真正提交配方 →registerAlleles()/registerTemplates()/registerMutations()/CustomHives.registerHives()→RegistriesApiImpl.mergeToMainRegistry() - serverStarting:注册 3 条指令
内容与数据分离是本模组最大的特色:几乎所有内容(机器数值、配方、升级件、蜂种、蜂巢)都由 config/gendustry/ 下的自定义配置语言驱动,配置文件优先于代码。GeneticsCache、ResourceListener、TuningLoader 三个类配合实现热读。
机器列表
10 台机器,全部继承 BaseMachineBlock(硬度 2.0、Material(MapColor.ironColor)),消耗品统一是基因药皿。
- 诱变剂制造机 - 固体转 Mutagen,10000 mB 储罐,唯一只接受输入盖板的机器
- 诱变机 - 机器繁殖,4 槽,支持 4 条变异覆盖表
- 高级诱变机 - 储能 160000 MJ,无秘密变异,配方需整台诱变机
- 工业蜂箱 - 15 槽,4 个升级槽,4 个产出槽,机器形态蜂箱
- 基因压印机 - 模板写回活体,自然蜂 0% / 人工蜂 10% 死亡率
- 基因采样机 - 随机采一条等位基因,接受任意 Forestry 个体
- 基因提取机 - 液体 DNA,启动能量 40 MJ(全场最高之一)
- 蛋白质液化机 - 肉类转蛋白质,单槽无培养皿
- 基因复制机 - 双液体输入,每次 250000 MJ(全场最高)
- 基因转换机 - 样本与模板互转,培养皿消耗仅 20%
物品列表
22 个物品类(含 3 种盖板与 2 种多 meta 染色物品)。
- 基因药皿 - 6 台机器的通用耗材,一次合成 16 个
- 垃圾基因 - 失败惩罚物品,无任何配方
- 基因样本 - 承载单条等位基因,NBT 编码
- 空白基因样本 - 样本载体底板
- 基因模板 - 样本聚合容器,工作台任意组合添加
- 诱变剂储罐 - 4 台机器配方材料
- 蜜蜂插槽 - 2 台机器配方材料
- 能量模块 - 8 台机器共用的核心部件
- 基因加工仪 - 6 台机器配方材料,BC Silicon 条件双配方
- 环境加工仪 - 仅服务群系升级件,组装线耗能 150000 MJ
- 升级框架 - 20 种升级的基材,唯一用金粒(
g)的配方 - 气候控制模块 - 6 种群系升级的基材
- 工业剪枝器 - AOE=2 剪叶,200 次 × 500 MJ
- MX200涡轮捕蜂网 - 潜行右键精准采集,500 次 × 10 MJ
- 花粉收集装备 - 一次性,Trees 模块才注册
- Hive Spawning Debugger - 逐条校验蜂巢生成条件,简中未翻译
- Apiary Upgrade - 21 种升级共用的单一物品类型,靠 meta 区分
- 物品输入盖板 - 每秒一次的纯原版容器拉取
- 物品输出盖板 - 走 4 后端代理链的推送
- Error Sensor Cover - 14 种传感器,输出红石,简中未翻译
- Colored Comb - 16 种染色蜂巢(meta 10–25),复用 Forestry 贴图
- Colored Honey Drop - 16 种染色蜂蜜,逐一注册为原版染料
液体列表
3 种流体,各自带方块 + 桶 + Forestry 空罐两种容器。
- Mutagen - 诱变机的燃料,红石 100 mB / 铀 9000 mB
- Liquid DNA - 复制机燃料,每次 1000 mB
- Protein - 复制机主燃料,每次 5000 mB,是 DNA 的 5 倍
升级件列表
工业蜂箱 的 21 种升级,按功能分四组。
- 产量与繁殖升级 - 6 种:
prod(×8) /life/flowering/territory/scrubber/stabilizer - 环境调节升级 - 7 种:4 种温湿度调节 +
sealing/light/sky - 生物群系模拟升级 - 6 种:
hell/desert/plains/jungle/winter/ocean - 自动化升级 - 2 种:
auto/sieve
蜂种列表
默认注册 17 个自定义蜂种(16 染色 + 1 赞助),另 18 条变异配方。
方块列表
- 自定义蜂巢方块 - 运行时按
hives.cfg动态生成,默认注册 0 个(配置文件不在files.lst中)
配置列表
5 个内部配置文件 + 1 个纯客户端配置,合计 102 个可调键 + 12 个客户端项。
- tuning.cfg(调校配置) - 82 键:10 台机器 + 2 件工具 + 4 条变异覆盖 + 7 键电力体系
- recipes.cfg(配方配置) - 7 个
recipes块,10 台机器配方 + 液体转化 + 2 条组装线 - upgrades.cfg(升级件配置) - 21 个升级定义 + 8 个配方块,修正器名有严格白名单
- 内容包配置 -
files.lst5 文件、字母序覆盖、overrides/目录、6 种条件指令 - client.config(客户端配置) - 12 项,Forge 原生格式,默认功率单位是 RF
集成列表
4 组跨模组兼容层,全部基于 @Optional 注解与运行时探测,无硬编译依赖。
- 电力体系 - IC2 EU / CoFH RF 双向,1 MJ = 10 RF = 2.5 EU
- 物品推送代理 - 原版 + BuildCraft + CoFH + Mekanism 四级代理链
- BuildCraft 触发器 - 5 个储能阈值 + 工作触发器 + Forestry 错误触发器
- NEI 与 WAILA 集成 - WAILA 走 IMC 注册 4 项,NEI 注册 9 个 handler
API 列表
- Gendustry API - 4 个静态入口 + 17 个接口,2.0.0 起语义化版本
- 注册表 API - 3 个液体来源注册表 + 变异覆盖表 +
ApiaryModifiers15 个字段
指令列表
3 条服务端指令,均为权限等级 2、无 /gendustry 前缀。
- /givetemplate - 1 参数,按物种 UID 发放空模板
- /givesample - 3 参数,5 级校验后发放指定等位基因的样本
- /dumpalleles - 0 参数,转储等位基因表到
alleles.dump