方块列表

基本信息

属性 值
注册方块总数 40(GameRegistry.registerBlock 实测 40 处,无一行被注释掉)
注册区间 common/ThaumicHorizons.java:598-637(preInit 内)
注册的 TileEntity 22(:742-763)
创造标签 自建 CreativeTabTH,ID 由 CreativeTabs.getNextID() 分配,标签字符串 "thaumichorizons"(common/ThaumicHorizons.java:4073);语言键 itemGroup.thaumichorizons=Thaumic Horizons
注册名前缀 ThaumicHorizons:(首字母大写,取自 @Mod 的 modid 常量,非资源域)
资源域 thaumichorizons(全小写,见 src/main/resources/assets/thaumichorizons/)

列表

「未本地化名」列为 setBlockName(...) 传入的字符串(本地化键为 tile.<未本地化名>.name)。TileEntity 一列取自各 Block 类的 createTileEntity / createNewTileEntity 实际 return new Tile… 的类型。

注册名 名称 未本地化名 方块类 TileEntity 注册行
synthNode Ethereal Shard ThaumicHorizons_synthNode BlockSyntheticNode TileSyntheticNode 598
alchemite Alchemite ThaumicHorizons_alchemite BlockAlchemite 无 599
visDynamo Vis Dynamo ThaumicHorizons_visDynamo BlockVisDynamo TileVisDynamo 600
essentiaDynamo Essentia Dynamo ThaumicHorizons_essentiaDynamo BlockEssentiaDynamo TileEssentiaDynamo 601
nodeMonitor Node Monitor ThaumicHorizons_nodeMonitor BlockNodeMonitor TileNodeMonitor 602
soulSieve Soul Sieve ThaumicHorizons_soulSieve BlockSoulExtractor TileSoulExtractor 603
inspiratron Inspiratron ThaumicHorizons_inspiratron BlockInspiratron TileInspiratron 604
soulforge Soulforge ThaumicHorizons_soulforge BlockSoulforge TileSoulforge 605
soulJar Jarred %CRITTER ThaumicHorizons_soulJar BlockSoulJar TileSoulJar 606
bloodInfuser Seroconverter ThaumicHorizons_bloodInfuser BlockBloodInfuser TileBloodInfuser 607
vat Curative Vat ThaumicHorizons_vat BlockVat 按 metadata 决定 608
vatSolid Curative Vat ThaumicHorizons_vatSolid BlockVatSolid 按 metadata 决定 609
vatInterior Vat Interior ThaumicHorizons_vatInterior BlockVatInterior TileVatSlave 610
soulBeacon Soul Beacon ThaumicHorizons_soulBeacon BlockSoulBeacon TileSoulBeacon 611
modMatrix Modified Runic Matrix ThaumicHorizons_modMatrix BlockModifiedMatrix TileVatMatrix 612
chocolate Block of Chocolate ThaumicHorizons_chocolate BlockChocolate 无 613
evanescent Evanescent ThaumicHorizons_evanescent BlockEvanescent 无 614
light Light Orb ThaumicHorizons_light BlockLight TileLight 615
lightSolar Light Orb(沿用,未本地化名继承而来) ThaumicHorizons_light BlockLightSolar TileLight 616
transductionAmplifier Transduction Amplifier ThaumicHorizons_transductionAmplifier BlockTransductionAmplifier TileTransductionAmplifier 617
recombinator Teleological Recombinator ThaumicHorizons_recombinator BlockRecombinator TileRecombinator 618
vortexStabilizer Vortex Attenuator ThaumicHorizons_vortexStabilizer BlockVortexStabilizer TileVortexStabilizer 619
vortexTH Planar Vortex ThaumicHorizons_vortex BlockVortex TileVortex 620
voidTH Planar Boundary ThaumicHorizons_void BlockVoid 无 621
cloudTH Cloud …(10 个 meta) ThaumicHorizons_cloud BlockCloud(false) TileCloud 622
cloudGlowingTH (无独立语言条目) — BlockCloud(true) TileCloud 623
brainTH Lump of Brain ThaumicHorizons_brain BlockBrain 无 624
dustTH Dust ThaumicHorizons_dust BlockDust 无 625
eyeTH Eye Cluster ThaumicHorizons_eye BlockEyes 无 626
boneTH Bone ThaumicHorizons_bone BlockBone 无 627
fleshTH Lump of Flesh ThaumicHorizons_flesh BlockFlesh 无 628
spikeTH Metal Spike ThaumicHorizons_spike BlockSpike(0, iron) TileSpike 629
spikeWoodTH Wooden Spike ThaumicHorizons_spikeWood BlockSpike(1, wood) TileSpike 630
spikeToothTH Tooth ThaumicHorizons_spikeTooth BlockSpike(2, rock) TileSpike 631
crystalTH Crystal(16 个 meta) ThaumicHorizons_crystal BlockCrystal 无 632
crystalDeep Deep Crystal ThaumicHorizons_deepcrystal BlockCrystalDeep 无 633
leviathanTH Primordial Fossil ThaumicHorizons_leviathan BlockLeviathan 无 634
slotTH Keystone Receptacle ThaumicHorizons_slot BlockSlot TileSlot 635
portalTH (无语言条目) 未调用 setBlockName BlockPortalTH 无 636
gatewayTH Planar Gateway ThaumicHorizons_gateway BlockGatewayPortal 无 637

未本地化名与注册名不对应/缺失的三处(均为源码原样,非笔误):

  • portalTH 的方块类 BlockPortalTH extends BlockBreakable(common/blocks/BlockPortalTH.java:28),其构造函数只做了三件事 —— super("portal", ThaumicHorizons.portal, false)、setTickRandomly(true)、setBlockUnbreakable()(:30-33)—— 完全没有调用 setBlockName,因此沿用 BlockBreakable 的默认未本地化名,语言文件中也没有对应的 tile.* 条目。setBlockUnbreakable() 意味着该方块无法被破坏。
  • lightSolar 的类 BlockLightSolar extends BlockLight(common/blocks/BlockLightSolar.java:15)没有定义任何构造函数,因此直接继承 BlockLight() 中的 setBlockName("ThaumicHorizons_light")(common/blocks/BlockLight.java:33)。两个方块共用同一个未本地化名 ThaumicHorizons_light,语言表中自然只有一条 “Light Orb” 条目。
  • cloudGlowingTH 同样没有独立的语言条目;BlockCloud 的未本地化名固定为 ThaumicHorizons_cloud(common/blocks/BlockCloud.java:49),发光云只是 new BlockCloud(true) 的第二个实例(common/ThaumicHorizons.java:537)。

功能:TileEntity 按 metadata 分派

BlockVat / BlockVatSolid 不是一个 TE 对一个方块,而是用 metadata 决定生成哪种 TE(common/blocks/BlockVat.java:54-64):

54:    public TileEntity createTileEntity(final World world, final int metadata) {
55:        TileThaumcraft vat;
56:        if (metadata == 7) {
57:            vat = new TileVat();
58:        } else if (metadata == 4) {
59:            vat = new TileVatConnector();
60:        } else {
61:            vat = new TileVatSlave();
62:        }
63:        return vat;
64:    }

即 metadata == 7 → 主控 TileVat,metadata == 4 → TileVatConnector,其余 → TileVatSlave。破坏方块时同样按 metadata 分派:md 7 调 TileVat.killMe(),否则调 TileVatSlave.killMyBoss(md)(common/blocks/BlockVat.java:66-71)。详见 治疗槽多方块结构。

BlockVatSolid extends BlockVat(common/blocks/BlockVatSolid.java:16),因此继承同一套 metadata→TE 逻辑,只覆盖材质(super(Material.wood),:34)与渲染(getRenderType() 返回 ThaumicHorizons.blockVatSolidRI,:47-49)。

数值:两个 BlockVat 构造函数的差异

BlockVat 有两个构造函数,未本地化名与硬度不同(common/blocks/BlockVat.java:33-48):

构造函数 未本地化名 硬度 抗性 光照 被谁调用
BlockVat() ThaumicHorizons_vat 3.0 15.0 8 blockVat(注册名 vat,:522)
BlockVat(Material m) ThaumicHorizons_vatSolid 3.0 15.0 8 BlockVatSolid() 的 super(Material.wood)(注册名 vatSolid,:523)

两者的本地化文本都是 “Curative Vat”(en_US.lang 中 tile.ThaumicHorizons_vat.name 与 tile.ThaumicHorizons_vatSolid.name 同值)。BlockVatInterior 的硬度/抗性/光照与 BlockVat 完全一致(3.0 / 15.0 / 8,common/blocks/BlockVatInterior.java:22-25)。

BlockSpike 三个变体共用一个构造函数,硬度 3.0、抗性 3.0,未本地化名由参数拼出(common/blocks/BlockSpike.java:32-39):new BlockSpike(0, Material.iron, "spike")、(1, Material.wood, "spikeWood")、(2, Material.rock, "spikeTooth")。

合成配方

本模组不注册任何 ShapedRecipe / ShapelessRecipe(GameRegistry.addRecipe 系列在 ThaumicHorizons.java 中 0 命中)。方块的获取途径全部来自 Thaumcraft 4 的三套配方 API 或秘境(见 研究列表 的配方统计)。

唯一一处方块相关的工作台配方是 RecipeVoidPuttyRepair(common/items/crafting/RecipeVoidPuttyRepair.java),用于修补虚空腻子,经 RecipeSorter.register("forge:voidputty", …, "after:forge:shapelessorenbt") 注册(common/ThaumicHorizons.java:780-784)。

第三方模组集成

  • Thaumcraft 4(必需):方块大量复用 TC4 的 ConfigBlocks(如 ConfigBlocks.blockWoodenDevice meta 6、ConfigBlocks.blockMetalDevice meta 9)与 ConfigItems(itemShard meta 6、itemResource meta 3 等)作为配方材料(common/ThaumicHorizons.java:2102-2160)。方块还直接继承 TC4 的 TileThaumcraft(common/blocks/BlockVat.java:55)。
  • Thaumcraft 4 法杖:WandTriggerRegistry.registerWandBlockTrigger 注册 3 个方块触发器 —— 原版 Blocks.glass(id 0)、ConfigBlocks.blockWoodenDevice meta 6、ConfigBlocks.blockMetalDevice meta 9,三者均归属 "ThaumicHorizons"(common/ThaumicHorizons.java:3193、:3195、:3197)。

资源域大小写不一致(观测记录)

同一模组内部并存两种域写法,实测计数如下:

写法 调用点 次数
setBlockTextureName("ThaumicHorizons:…") 23 个 Block 类各 1 处 23
setBlockTextureName("thaumichorizons:…") 无 0
registerIcon("thaumichorizons:…") 跨多类 150
registerIcon("ThaumicHorizons:…") 无 0

磁盘上的资源目录是 src/main/resources/assets/thaumichorizons/,即全小写。使用大写 ThaumicHorizons: 作为贴图域的类包括 BlockBrain、BlockSpike、BlockVatInterior、BlockAlchemite 等 23 个(完整清单可由 grep -rl '"ThaumicHorizons:' src/main/java/ 复现),而其余方块的 registerIcon 一律用小写。

运行时后果:无法核实。 判定该不一致是否会导致贴图加载失败,需要 1.7.10 Forge TextureMap / 资源管理器在处理 ResourceLocation 域时的大小写规则,而本机 mirror/ 下只有 thaumcraft4、thaumic-api 等 TC 侧仓库,没有 Forge 本体源码可供核对。因此这里只如实记录可观测事实,不断言为缺陷,也不断言为正常。

相关条目