锈蚀舱盖与梯子
基本信息
锈蚀舱盖 Rusty Hatch
| 属性 | 值 |
|---|---|
| 注册名 | malisisdoors:rustyHatch |
| 类 | net.malisis.doors.door.block.RustyHatch(继承 MalisisBlock,实现 ITileEntityProvider) |
| TileEntity | net.malisis.doors.door.tileentity.RustyHatchTileEntity(注册名 rustyHatchTileEntity,Registers.java:416) |
| 材质 | Material.iron(RustyHatch.java:47) |
| 硬度 | 3.0(RustyHatch.java:48) |
| 爆炸抗性 | 10000(RustyHatch.java:49) |
| 脚步声 | soundTypeMetal(RustyHatch.java:50) |
| 创造标签 | Malisis' Doors(RustyHatch.java:52) |
| 贴图 | malisisdoors:rusty_hatch、malisisdoors:rusty_hatch_handle(RustyHatch.java:56-58) |
| 结构尺寸 | 2 × 3 × 2(RustyHatch.java:87) |
锈蚀梯子 Rusty Ladder
| 属性 | 值 |
|---|---|
| 注册名 | malisisdoors:rustyLadder |
| 类 | net.malisis.doors.block.RustyLadder(继承 BlockLadder) |
| 创造标签 | Malisis' Doors(RustyLadder.java:34) |
| 碰撞箱 | getCollisionBoundingBoxFromPool 返回 null(RustyLadder.java:44-47) |
| 图标来源 | 复用舱盖把手贴图 Blocks.rustyHatch.getHandleIcon()(RustyLadder.java:39-42) |
功能
成对的工业风垂直通道方块。舱盖展开为一个 2×3×2 的多方块竖井,玩家从舱盖下方进入井内,梯子提供上下攀爬。
锈蚀舱盖
- 只能贴墙放置:
canPlaceBlockOnSide对side == 0(底面)或side == 1(顶面)直接返回 false,其余面要求相邻方块为实心(RustyHatch.java:69-76) - meta 编码朝向与半格:
onBlockPlaced返回(side - 2) | (hitY > 0.5F ? Door.FLAG_TOPBLOCK : 0)——低 2 位存朝向,点上半格则置顶格标记(RustyHatch.java:81-84) - 展开多方块:
onBlockPlacedBy用AxisAlignedBB.getBoundingBox(0, 0, 0, 2, 3, 2)建立 2×3×2 结构;若自身不是顶格则整体下移 2 格(RustyHatch.java:86-95)。placeBlocks()失败时把手中物品数量加回,即放置失败自动退还 - 右键开合:
onBlockActivated直接调te.openOrCloseDoor(),无需任何手持工具(RustyHatch.java:97-108) - 整体破坏:
removedByPlayer调用MultiBlock.destroy拆除整个竖井并置空气(RustyHatch.java:110-115) - 兼作梯子:
isLadder返回te.shouldLadder(x, y, z),即舱盖本身可让玩家攀爬(RustyHatch.java:131-137) - 非完整方块:
isOpaqueCube与renderAsNormalBlock均返回false(RustyHatch.java:139-145) - 动态碰撞箱:
getBoundingBox委托给te.getMovement().getBoundingBox(...),随开合状态变化(RustyHatch.java:117-129)
锈蚀梯子
- 不注册自己的图标,空
registerBlockIcons,一律取舱盖把手贴图(RustyLadder.java:37-42) - 碰撞箱为
null,即纯装饰性攀爬辅助,不阻挡实体(RustyLadder.java:44-47) - 使用自定义渲染 ID
renderId(RustyLadder.java:49-52)
数值
| 数值名 | 锈蚀舱盖 | 锈蚀梯子 | 出处 |
|---|---|---|---|
| 硬度 | 3.0 | 继承 BlockLadder |
RustyHatch.java:48 |
| 爆炸抗性 | 10000 | 继承 BlockLadder |
RustyHatch.java:49 |
| 结构尺寸 | 2 × 3 × 2 | 不适用 | RustyHatch.java:87 |
| 碰撞箱 | 随开合变化 | null |
RustyHatch.java:117-129、RustyLadder.java:44-47 |
合成配方
三件套配方见 Registers.java:418-426:
锈蚀把手(Registers.java:418):
AAA
A
| 字符 | 物品 |
|---|---|
A |
铁锭 Items.iron_ingot ×5 |
锈蚀舱盖(Registers.java:419):
A
AB
A
| 字符 | 物品 |
|---|---|
A |
铁锭 Items.iron_ingot ×3 |
B |
锈蚀把手 rustyHandle ×1 |
锈蚀把手在此仅作为合成材料,并非开合舱盖的钥匙——开合只需右键(
RustyHatch.java:97-108)。
锈蚀梯子(Registers.java:426):
AAA
| 字符 | 物品 |
|---|---|
A |
铁锭 Items.iron_ingot ×3 |