自定义门
基本信息
| 属性 | 值 |
|---|---|
| 注册名(物品) | 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 无关。
相关条目
- 门工厂 - 唯一的获取途径
- 自定义门 NBT 格式 - 该物品携带的 7 个数据字段
- 密码门 GUI - 设置密码后右键门会打开的 Digicode 界面