方块列表
基本信息
| 属性 | 值 |
|---|---|
| 注册方块总数 | 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.blockWoodenDevicemeta 6、ConfigBlocks.blockMetalDevicemeta 9)与ConfigItems(itemShardmeta 6、itemResourcemeta 3 等)作为配方材料(common/ThaumicHorizons.java:2102-2160)。方块还直接继承 TC4 的TileThaumcraft(common/blocks/BlockVat.java:55)。 - Thaumcraft 4 法杖:
WandTriggerRegistry.registerWandBlockTrigger注册 3 个方块触发器 —— 原版Blocks.glass(id 0)、ConfigBlocks.blockWoodenDevicemeta 6、ConfigBlocks.blockMetalDevicemeta 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 本体源码可供核对。因此这里只如实记录可观测事实,不断言为缺陷,也不断言为正常。