MobsInfo NEI 处理器

[!INFO] 注册真源:nei/(8 个类)+ loader/(5 个类)

Mobs Info 的全部功能是在 NEI 中为生物生成信息页。它不注册任何方块、物品、生物或 TileEntity,只通过 3 个处理器向 NEI 注入信息。

3 个处理器

处理器 文件 配置开关 说明
生物掉落 nei/MobHandler.java MobHandler.enabled(mobHandlerEnabled) 遍历生物,计算其全部掉落路径
钓鱼掉落 nei/MobHandlerFishing.java FishingHandler.enabled 统计钓鱼可获得的物品
村民交易 nei/VillagerTradesHandler.java VillagerTradesHandler.enabled 汇总村民交易
Infernal Mobs nei/MobHandlerInfernal.java Compatibility.enableMobHandlerInfernal Infernal Mobs 变体掉落

[!NOTE] 源码中 MobHandler、MobHandlerFishing、VillagerTradesHandler 三个处理器默认全部启用(配置默认值均为 true)。

数据来源

文件 职责
loader/MobRecipeLoader.java 通用掉落解析
loader/VanillaMobRecipeLoader.java 原版生物掉落
loader/VillagerTradesLoader.java 村民交易聚合
loader/VanillaVillagerTradesLoader.java 原版村民交易

loader/extras/ 下另有 39 个针对具体 mod 的 IExtraLoader 实现,见兼容适配。

NEI 侧工具

文件 职责
nei/NEI_Config.java NEI 相关设置
nei/IMCForNEI.java 通过 IMC 与 NEI 通信
nei/EnderIOGetter.java 读取 EnderIO 刷怪笼数据
nei/ColorUtils.java 生成页配色

ASM 加速

asm/RandomComparisonTransformer.java 是一段 ASM 字节码变换:把随机掉落判定中「两次随机数比较」的重复逻辑抽取为公共方法,配合 api/utils/RandomComparison.java 与 RandomSequencer.java,加速随机掉落路径的枚举。

[!NOTE] 该变换对被变换的方法而言是优化器,必须保持行为等价。OptimizeRandomComparisons 配置项(MobHandler 与 VillagerTradesHandler 各有一个)控制其开关。

关联:配置项 · 兼容适配 · API 与事件