类生木木板

基本信息

属性 值
注册名 blockCustomPlank
完整名 salisarcana:blockCustomPlank
方块类 common/blocks/BlockPlank.java(51 行)
物品形式 common/item/BlockPlankItem.java(ItemBlock 子类)
注册入口 CustomBlocks.registerBlocks() → GameRegistry.registerBlock,CustomBlocks.java:27
开关 enhancements.enableLookalikePlanks(默认开启)
材质 Material.wood
创造模式标签页 Thaumcraft.tabTC

功能

Thaumcraft 4 的生木/银木木板不是普通木板——它们有自己的方块行为(会燃烧出特殊火焰、 不能像普通木板那样做台阶等)。本方块提供一对行为正常的替代品,材质直接复用 Thaumcraft 自己的贴图,让「看起来一样、用起来正常」。

整个注册由开关 SalisConfig.features.lookalikePlanks 控制,关闭时本方块根本不会注册 (CustomBlocks.java:19-21)。

数值

属性 值 源码
硬度 2.5F BlockPlank.java:24
抗爆炸/抗力 10.0F BlockPlank.java:25
脚步声音 soundTypeWood BlockPlank.java:26
掉落元数据 与放置元数据相同(damageDropped 返回 meta) BlockPlank.java:44-46
最大堆叠 64(ItemBlock 默认,未覆写) —

对照:Thaumcraft 4 自己的 thaumcraft.common.blocks.BlockWoodenDevice 设定的 硬度 2.5、抗力 10.0、脚步声 soundTypeWood 与本方块完全一致 (thaumcraft4/thaumcraft/common/blocks/BlockWoodenDevice.java 中 setHardness(2.5F)、setResistance(10.0F)、setStepSound(soundTypeWood) 三句)。 因此本方块在物理属性上并非「更硬」,差异只在方块行为。 注意 mirror/thaumcraft4 是反编译产物(源码带 /* */ 行标记), 上述数值取自其可读语句,不依赖对反编译语义的推断。

变种

一个方块,两个元数据变种:

元数据 本地化名称 贴图 矿石字典
0 tile.blockWoodenDevice.6(生木) thaumcraft:planks_greatwood plankGreatwood
1 tile.blockWoodenDevice.7(银木) thaumcraft:planks_silverwood plankSilverwood
  • 本地化名与贴图:BlockPlankItem.getUnlocalizedName()(BlockPlankItem.java:17)、 BlockPlank.registerBlockIcons()(BlockPlank.java:33-34)
  • 贴图取自 thaumcraft 资源域,不是 salisarcana 域
  • 物品形式启用了 setHasSubtypes(true) 并覆写 getMetadata 透传 (BlockPlankItem.java:12、BlockPlankItem.java:21-23)
  • 创意模式下列出两个变种(BlockPlank.java:39-40)

矿石字典注册

registerLookaLikePlanks() 一次性写入 5 条矿石字典(CustomBlocks.java:29-35):

矿石名 绑定内容 作用
plankWood salisarcana:blockCustomPlank + WILDCARD_VALUE 让本方块被当作普通木板参与合成
plankGreatwood 本方块 meta 0 标记生木
plankSilverwood 本方块 meta 1 标记银木
plankGreatwood ConfigBlocks.blockWoodenDevice meta 6 同时把 TC4 原本的木质设备方块纳入
plankSilverwood ConfigBlocks.blockWoodenDevice meta 7 同上

后两条是关键设计:把 TC4 自己的木板也注册进同一矿石名, 这样任何按 plankGreatwood 查找的配方(无论来自本模组还是别的模组)都会看到两者。

CustomBlocks.java:28 有一条就地待办注释,原文为 // To-do: is this needed? It appears to break the ore-dicted slab and stair recipes, 对 plankWood 注册是否必要表示疑问,并称其会破坏矿石字典化的台阶与楼梯配方。 仓库中没有其他证据表明这行应当被删除,注释本身也不构成缺陷判定, 故此处仅如实记录,不据此断言问题。

合成配方

本方块自身没有合成配方——它的存在意义就是作为产物被 CustomRecipes.registerPlankRecipes() 使用,为生木/银木各生成一对木板配方, 并配套注册台阶配方(CustomRecipes.java:108、CustomRecipes.java:171、 CustomRecipes.java:176、CustomRecipes.java:200)。详见 补丁注册框架 与 配方组配置。

交互

普通木门的全部交互:可燃(Material.wood)、可被斧加速、掉落自身。 两个变种共享同一物品 ID,通过元数据区分。

相关条目