NEI 与 WAILA 集成
基本信息
| 属性 | 值 |
|---|---|
| 依赖声明 | after:CoFHCore(WAILA 走 IMC,无硬依赖);NEI 在 dependencies.gradle 中为 api |
| WAILA 编译期依赖 | compileOnly("com.github.GTNewHorizons:waila:1.19.31:api") |
| NEI 编译期依赖 | api("com.github.GTNewHorizons:NotEnoughItems:2.8.125-GTNH:dev") |
WAILA 集成
接入方式:FML IMC 消息,而非 @Mod 依赖。Gendustry.scala:139-143 在 init 阶段发出:
FMLInterModComms.sendMessage("Waila", "register", "net.bdew.gendustry.waila.WailaHandler.loadCallback")
WAILA 侧收到后反射调用 WailaHandler.loadCallback(IWailaRegistrar),注册 4 项:
| 注册方法 | Provider | 目标类 |
|---|---|---|
registerBodyProvider |
WailaDataSlotsDataProvider |
TilePowered(全部通电机器与工具类 Tile) |
registerBodyProvider |
WailaApiaryDataProvider |
TileApiary |
registerNBTProvider |
WailaDataSlotsDataProvider |
TilePowered |
registerNBTProvider |
WailaApiaryDataProvider |
TileApiary |
BodyProvider 提供同步的 tooltip 文本,NBTProvider 提供客户端到服务端的 NBT 请求 —— 两组都注册意味着既能看到即时状态,也能在需要时拉取完整数据槽。
TileApiary 同时匹配两条规则(它也是 TilePowered),因此蜂箱会同时得到通用数据槽提示与专用蜂箱提示。
NEI 集成
nei/NEIGendustryConfig 共注册 9 个 recipe handler(grep -c 'addRecipeHandler' nei/NEIGendustryConfig.scala = 10,其中 1 处是方法定义 def addRecipeHandler,9 处是调用点):
| Handler | 目标机器 |
|---|---|
TemplateCraftingHandler |
Gene Template 的无序合成(ShapelessRecipeHandler) |
MutagenProducerHandler |
Mutagen Producer |
MutatronHandler |
Mutatron |
SamplerHandler |
Genetic Sampler |
ImprinterHandler |
Genetic Imprinter |
ExtractorHandler |
DNA Extractor |
LiquifierHandler |
Protein Liquifier |
ReplicatorHandler |
Genetic Replicator |
TransposerHandler |
Genetic Transposer |
8 个机器 handler 全部继承 BaseRecipeHandler(5, 13)(TemplateRecipeHandler),即共用的 5×13 配方模板布局。
另有 SmeltingTooltipHandler —— 给 Forestry 熔炉的 NEI 提示追加 Gendustry 的信息。
覆盖缺口:Advanced Mutatron 与 Industrial Apiary 没有 NEI handler。这与 client.config 只有 8 个配方开关(无 AdvMutatron)一致。
NEI 自定义物品名
bees_color.cfg:390-407 与 recipes.cfg:238-239 注册了一批 regOreDict 自定义栈名,让 NEI 显示友好的名称:
| 自定义名 | 物品 |
|---|---|
gendustry:HoneyComb.<颜色> ×16 |
16 种 Colored Comb |
gendustry:HoneyDrop.<颜色> ×16 |
16 种 Colored Honey Drop |
gendustry:"upgrade.<cfg名>" ×21 |
21 种 Apiary Upgrade(Upgrades.init()) |
registerCustomItemStack 让 NEI / WAILA 优先显示自定义名而非内部 ID。
相关条目
- client.config - 8 个 NEI 开关与单位显示
- BuildCraft 触发器 - 第三组集成
- Apiary Upgrade - 21 种升级的 NEI 命名来源