建筑方块与石板
基本信息
| 属性 | 值 |
|---|---|
| 方块数 | 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),是本仓库中少见的「显式空研究」写法。