锈蚀舱盖与梯子

基本信息

锈蚀舱盖 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

相关条目