建筑方块与石板

基本信息

属性 值
方块数 8(3 组半砖各 2 形态 + 1 个阶梯 + 黑石英 3 件)
注册位置 TTRegistry.java:53(loadMetaBlock)、TTRegistry.java:54、TTRegistry.java:55(loadMetaBlock)、TTRegistry.java:66-68
注册门槛 全部无条件注册

3 个半砖都用 loadMetaBlock 注册为「半砖 + 全砖」双形态,与 黑石英套件 的 BlockDarkQuartzSlab 属同一模式,故合并为一页。

数值

方块 注册名 Java 类 注册方式 注册行
旅行石板 travelSlab BlockTravelSlab loadMetaBlock TTRegistry.java:53
旅行全石板 travelSlabFull BlockTravelSlab(true) meta 展开 BlockTravelSlab.java:84-87
旅行阶梯 travelStairs BlockTravelStairs loadSimpleBlock TTRegistry.java:54
防护石板 wardSlab BlockWardSlab loadMetaBlock TTRegistry.java:55
防护全石板 wardSlabFull BlockWardSlab(true) meta 展开 BlockWardSlab.java:91-94
黑石英 darkQuartz BlockDarkQuartz loadSimpleBlock TTRegistry.java:66
黑石英半砖 darkQuartzSlab BlockDarkQuartzSlab loadMetaBlock TTRegistry.java:67
黑石英全砖 darkQuartzSlabFull BlockDarkQuartzSlab(true) meta 展开 BlockDarkQuartzSlab.java:86-89
黑石英阶梯 darkQuartzStairs BlockDarkQuartzStairs loadSimpleBlock TTRegistry.java:68

上表 9 行中黑石英 4 件单独记在 黑石英套件,本页实际收录 5 件。

功能

半砖双形态机制

3 个半砖类的 getMetaBlocks() 各自返回一个单元素数组,内含自身的全砖实例;getBlockName() 用 field_150004_a(原版 BlockSlab 的双面标志)切换半砖/全砖名:

类 getMetaBlocks() getBlockName()
BlockTravelSlab new Block[] { new BlockTravelSlab(true) }(:84-87) field_150004_a ? TRAVEL_SLAB_FULL : TRAVEL_SLAB(:89-91)
BlockWardSlab new Block[] { new BlockWardSlab(true) }(:91-94) field_150004_a ? WARD_SLAB_FULL : WARD_SLAB(:96-98)
BlockDarkQuartzSlab new Block[] { new BlockDarkQuartzSlab(true) }(:86-89) field_150004_a ? DARK_QUARTZ_SLAB_FULL : DARK_QUARTZ_SLAB(:91-93)

TTRegistry.loadMetaBlock() 分配 new Block[1 + metaBlocks.length] 并把本体放在 index 0(TTRegistry.java:193-204),因此每个半砖类实际产出 2 个方块实例。

TileEntity

方块 getTileEntity() 源码
旅行石板 有覆写 BlockTravelSlab.java:109
旅行阶梯 有覆写 BlockTravelStairs.java:54
防护石板 TileWardedSlab BlockWardSlab.java:121

3 个方块的 getTileEntity() 全部有覆写,因而都经由 GameRegistry.registerTileEntity() 注册(TTRegistry.java:278-281),与 机器与功能方块 中 BlockForcefield 的缺口形成对照。

研究

方块 研究 源码
旅行石板 / 旅行阶梯 / 防护石板 无 —— getResearchItem() 返回 null BlockTravelSlab.java:114、BlockTravelStairs.java:59、BlockWardSlab.java:126-128
黑石英系 由 ItemDarkQuartz 提供(物品侧) ItemDarkQuartz.java:31-33

BlockWardSlab.getResearchItem() 显式 return null;(BlockWardSlab.java:126-128),是本仓库中少见的「显式空研究」写法。

相关条目