自定义门

基本信息

属性 值
注册名(物品) malisisdoors:custom_door
注册名(方块) malisisdoors:custom_door
显示名(en_US) Custom Door
物品类 net.malisis.doors.door.item.CustomDoorItem(继承 DoorItem)
方块类 net.malisis.doors.door.block.CustomDoor(继承 Door)
TileEntity net.malisis.doors.door.tileentity.CustomDoorTileEntity(注册名 customDoorTileEntity,Registers.java:401)
方块材质 Material.wood(CustomDoor.java:46)
硬度 3.0(CustomDoor.java:47)
脚步声 soundTypeWood(CustomDoor.java:48)
堆叠上限 16(CustomDoorItem.java:55)
创造标签 无——setCreativeTab(null),不出现在任何创造标签页(CustomDoorItem.java:56)
合成配方 无——只能由 门工厂 产出

功能

参数完全由 NBT 决定的通用门。同一注册名 custom_door 可以表现为任意样式的门——门框、上下门板、开合方式全部来自物品 NBT。

  • 描述符从 NBT 还原:getDescriptor(ItemStack) 直接 return new DoorDescriptor(itemStack.stackTagCompound)(CustomDoorItem.java:59-62)
  • 无固定图标:registerIcons 为空实现,物品外观由渲染器按 NBT 解析(CustomDoorItem.java:64-65)
  • 方块侧同样无固定图标:CustomDoor.registerBlockIcons 空实现,getIcon 按 NBT 中的方块状态返回(CustomDoor.java:53-55)

可用作门板的非方块物品

CustomDoorItem 内置一张物品→方块映射表(CustomDoorItem.java:45-50),允许把以下非方块物品放进门工厂当作门板:

物品 映射到的方块
打火石 Items.flint_and_steel 火 Blocks.fire
末影珍珠 Items.ender_pearl 传送门 Blocks.portal
水桶 Items.water_bucket 水 Blocks.water
熔岩桶 Items.lava_bucket 熔岩 Blocks.lava

fromDoorFactory 在取门板方块时先查这张表,查不到才回退 Block.getBlockFromItem(CustomDoorItem.java:81-107)。

数值

数值名 值 出处
硬度 3.0 CustomDoor.java:47
堆叠上限 16 CustomDoorItem.java:55
创造标签 null(隐藏) CustomDoorItem.java:56
NBT 属性字段数 7 DoorDescriptor.writeNBT,DoorDescriptor.java:241-252

合成配方

无合成配方。 Registers.registerCustomDoor()(Registers.java:391-402)只做构造、注册方块与物品、注册 TileEntity,不含 addRecipe——Registers.java 中全部 15 处 addRecipe 调用(行 258、286、297、308、319、351、367、376、418、419、426、439、440、454)均与 customDoor 无关。

相关条目