Thaumic Bases

[!INFO] Git Commit: 7d8707b | Updated: 2026-10-02

Thaumic Bases(mod id thaumicbases)是 Thaumcraft 4 附属模组,为神秘时代补充建材、装饰方块、作物、 工具护甲与「节点(node)」机器系统。硬依赖 Thaumcraft ≥ 4.2.3.5、Baubles ≥ 1.0.1.10、 DummyCore ≥ 1.6、gtnhlib ≥ 0.9.47(在 TBCore.java:46 的 dependencies 中声明)。

⚠️ 名称歧义(务必先读)

「Bases」指的是「基底建材」,不是「多方块(multiblock)」。 本 mod 没有任何多方块结构:全仓库检索 multiblock / IBlockStructure / Frame 无结构定义, 所有机器(注魔重塑器、相位透镜、炼金炉、实体分解器、节点操纵器、篝火、火盆)都是 单方块 + TileEntity,无控制器方块、无几×几×几的框架判定。 唯一名字带误导性的方块是 cryingObsidian(字段名 BlockCryingObelisk),但它是实心装饰方块,不是方尖碑结构。

注册总览

注册表 条目数 说明
方块 53 其中 4 个受配置开关控制
物品 41 但实际物品数为 58:resource 有 9 个 meta、nodeFoci 有 10 个 meta
TileEntity 8 全部在 TBTiles.setup()
实体 1 仅左轮弹丸
附魔 5 全部只对武器生效
魔杖组件 3 杖端 ×1、杖芯 ×2(杖端/杖芯不是独立注册物品,而是 Thaumcraft 魔杖部件)

按注册调用点数物品会少算 17 个:resource(1 次 registerItem → 9 个物品)与 nodeFoci(1 次 registerItem → 10 个物品)必须按 meta 集合展开。

共享材质

TBItems 中创建了 3 个共享材质,被整套装备复用:

材质 类型 数值
THAUMINITE ToolMaterial 采集等级 3、耐久 974、攻击 7F、速度 2.8F、附魔 15
ATHAUMINITE ArmorMaterial 耐久 27、减伤 {3, 8, 6, 3}、附魔 17
TBBLOODY ArmorMaterial 耐久 21、减伤 {2, 6, 5, 2}、附魔 21

配置开关(直接决定内容是否存在)

以下 5 个 TBConfig 布尔项在 preInit 就决定是否注册,不是运行期开关:

开关 影响条目
allowTobacco 方块 Tobacco + 5 个物品(烟斗/烟草粉/种子/臼与杵)
enableBloodyMess 方块 Spike + 3 件血腥护甲
enableNodeTools Node Manipulator、Node Linker、Node Foci
enableBracelets Casting Bracelet
enableRevolver Revolver

依赖范围说明

  • Thaumcraft(required-after:Thaumcraft)— 硬依赖,本 wiki 已收录
  • DummyCore(required-after:DummyCore)— 硬依赖,提供 BlocksRegistry / ItemRegistry 注册封装,本 wiki 已收录
  • Baubles(required-after:Baubles)— 硬依赖,不在本 wiki 收录范围
  • gtnhlib — 硬依赖(≥ 0.9.47),已登记但尚未成文,此处为前向引用
  • GregTech 5 — 仅 compileOnly(dependencies.gradle:8),非运行期硬依赖,不在本 wiki 收录范围
  • Automagy / EnderIO — 仅 compileOnly,通过 Loader.isModLoaded 做软兼容(TBCore.java:52-53)

方块列表

物品列表

实体列表

附魔列表

  • 远古智慧 - 最高 12 级,AIR 8 / ORDER 12 / EARTH 16
  • 禁咒 - 最高 7 级,FIRE 12 / ENTROPY 12 / ORDER 8
  • 魔法亲和 - 最高 11 级,4 种精华
  • 腐化 - 最高 9 级,FIRE 12 / ENTROPY 16
  • 汽化 - 最高 6 级,ENTROPY 8 / ORDER 12 / FIRE 16

源码缺陷

  1. TBItems.java:175 声明 public static StaffRod STAFF_ROD_THAUMIUM;, 但 setup() 从未给它赋值(只赋值了 WAND_CAP_THAUMINITE / WAND_ROD_THAUMIUM / WAND_ROD_VOID)。 该字段恒为 null,任何引用它的地方都会 NPE。
  2. TBBlocks.java:210 字段名 braizer(拼写错误)而注册名是 brazier,贴图却指向 cobblestone, 说明火盆没有自己的贴图资源。
  3. TBBlocks.java:71-74 字段 dustBlock → setBlockName("salisMundusBlock") → 注册名 "blockSalisMundus", 三处名字互不相同。
  4. TBBlocks.java:102 knose 贴图写作 thaumicbases:knoze/(多一个 z)。
  5. TBBlocks.java:271-277 oldCobble 与 oldCobbleMossy 都注册矿典 cobblestone, 后者覆盖前者,两者都与原版 minecraft:cobblestone 冲突。
  6. TBBlocks.java:183-188 genericSlab 与 genericSlab_full 的 setBlockName 完全相同("tb.slab.")。
  7. TBEnchant.setup() 中 ThaumicTinkerer 集成的 catch 块只 printStackTrace 后 return, 但 return 位于 for 循环之外的 try 末尾——五个附魔的精华数据是逐个 invoke 的, 中途异常会跳过后续附魔的注册,留下部分附魔无精华消耗的状态。