车库门

基本信息

属性 值
注册名 malisisdoors:garage_door
类 net.malisis.doors.block.GarageDoor(继承 Block)
TileEntity net.malisis.doors.entity.GarageDoorTileEntity(继承 DoorTileEntity,注册名 garageDoorTileEntity,Registers.java:365)
材质 Material.wood(GarageDoor.java:47)
硬度 2.0(GarageDoor.java:50)
脚步声 soundTypeWood(GarageDoor.java:51)
创造标签 Malisis' Doors(GarageDoor.java:49)
注册方式 GameRegistry.registerBlock(Registers.java:360-363)

功能

可纵向堆叠的门:每放置一个方块即可向上或向下延伸,整列作为一扇门同步开合,适合车库与卷帘门洞。

  • 列的识别:每个 TileEntity 先递归向上找顶端(getTopDoor),再从顶端向下收集全部成员(getGarageDoor(ForgeDirection.DOWN) + addChildDoors,GarageDoorTileEntity.java:44-59)
  • 整列同步:setPowered 对 getDoors() 返回的每个成员统一置 OPENING / CLOSING 状态(GarageDoorTileEntity.java:76-85)
  • 连锁到相邻门:置位后还会向侧面(东或北,取决于 meta)查找同向的相邻门并一并置位,实现连续门洞联动(GarageDoorTileEntity.java:86-88)
  • 开门时长随高度增长:getOpeningTime() 返回 getDoors().size() * maxOpenTime,即每个方块 10 tick(GarageDoorTileEntity.java:32/40-42)
  • 红石驱动:onNeighborBlockChange 在方块通电或邻居可供电时调用 te.setPowered(...)(GarageDoor.java:88-95)
  • 非完整方块:isNormalCube / renderAsNormalBlock / isOpaqueCube 均返回 false(GarageDoor.java:143-150)
  • 碰撞:开门后 getCollisionBoundingBoxFromPool 返回 null(GarageDoor.java:128-130);关闭时厚度为 Door.DOOR_WIDTH / 2(GarageDoor.java:103-107)
  • 顶格贴图:meta 带 Door.FLAG_TOPBLOCK 且处于上下表面时使用 _top 贴图(GarageDoor.java:68-69)

数值

数值名 值 出处
单格开门时长 10 tick GarageDoorTileEntity.java:32
整列开门时长 格数 × 10 tick GarageDoorTileEntity.java:40-42
硬度 2.0 GarageDoor.java:50
门扇厚度 Door.DOOR_WIDTH / 2 = 0.09375 Door.java:70、GarageDoor.java:103

合成配方

(Registers.java:367)

ABA
AAA
字符 物品
A 木板 Blocks.planks ×5
B 玻璃 Blocks.glass ×1

相关条目