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各有一个)控制其开关。