污秽树(Taint Tree)
[!INFO] 注册真源:
blocks/ForbiddenBlocks.java:36-42
Forbidden Magic 复用了 Thaumcraft 的污秽(Taint)主题,注册了 4 个污秽方块构成一棵完整的树,与原版/GTNH 木材体系对齐。
| 注册名 | 字段 | 类 | 方块名 |
|---|---|---|---|
forbidden:TaintLog |
taintLog |
BlockLogTainted |
TaintLog |
forbidden:TaintPlank |
taintPlanks |
BlockPlanksTainted |
TaintPlank |
forbidden:TaintLeaves |
taintLeaves |
BlockLeavesTainted |
TaintLeaves |
forbidden:TaintSapling |
taintSapling |
BlockSaplingTainted |
TaintSapling |
4 个方块在 ForbiddenBlocks.addBlocks() 中无条件注册。
附属方块
| 注册名 | 字段 | 类 | 备注 |
|---|---|---|---|
forbidden:TaintBlock |
taintStone |
BlockStoneTainted |
用三参重载 registerBlock(block, ItemBlockStoneTainted.class, "TaintBlock"),方块物品类为 ItemBlockStoneTainted |
[!NOTE]
taintStone是本模组唯一使用registerBlock(Block, Class<? extends ItemBlock>, String)重载的方块 —— 其余 9 个用两参重载,物品由方块自动生成。naive 按registerBlock计数会因此高估物品注册数。
世界生成
WorldGenTaintedTree.java 生成污秽树。世界生成开关见 配置项;最近一次提交 f03f142(2026-07-14)新增了 MFR 对污秽树的兼容 —— Compat.mfr = Loader.isModLoaded("MineFactoryReloaded")(Power Crystals’ Mine Factory Reloaded,非 Mystical Agriculture),在 Compat.java:522 的私有静态类 MFRCompat 中注册:
MFRRegistry.registerPlantable(new PlantableSapling(ForbiddenBlocks.taintSapling))—— 苗可作苗圃作物MFRRegistry.registerFertilizable(new FertilizableStandard((IGrowable) taintSapling))—— 苗可被催熟HarvestableWood/HarvestableTreeLeaves—— 原木与树叶可被采收机收割
[!NOTE]
MFRCompat刻意写成Compat的私有静态内部类(Compat.java:521注释 “To avoid class loading issues without MFR”),因为其字段直接引用powercrystals.*类型。naive 搜MFR只能看到Compat内的 4 行,看不到真正的注册逻辑在嵌套类里。