跳到主要内容

📦 简单存储家具

简单存储家具为家具添加一个类似箱子的功能。右键打开容器,玩家可以放入或者取出物品。

示例

furniture:
default:storage_core:
behavior:
type: simple_storage_furniture
title: "<dark_gray>Storage Core" # 容器标题,支持 MiniMessage 格式(默认为 "<lang:container.chest>")
rows: 3 # 行数,1~6(默认为 1)
data_key: "craftengine:simple_storage_contents" # 持久化数据的 NBT 键(默认为 "craftengine:simple_storage_contents")
sounds:
open: minecraft:block.iron_trapdoor.open # 容器打开时播放的音效(可选)
close: minecraft:block.iron_trapdoor.close # 容器关闭时播放的音效(可选)

按变体配置交互碰撞箱

你可以通过 variants.<变体名>.hitboxes 把交互碰撞箱直接挂在 simple_storage_furniture behavior 上。这些碰撞箱属于该 behavior 自己,而不是家具的默认碰撞箱,并且只触发这个 behavior 的储物 GUI。

常见用途:

  • 家具默认不设置碰撞箱(hitboxes: []),由每个 behavior 自己定义可点击区域。
  • 在同一家具上挂载多个 simple_storage_furniture behavior,每个使用不同 data_key,实现独立的多个储物槽位。
furniture:
default:double_drawer:
settings:
item: default:double_drawer
variants:
ground:
elements:
- item: default:double_drawer
hitboxes: [] # 家具默认没有碰撞箱
behavior: # 家具 behavior 列表
- type: simple_storage_furniture
title: "<dark_gray>Left Drawer"
data_key: "left_drawer"
rows: 2
variants:
ground:
hitboxes:
- type: interaction
position: -0.25,0.5,0
width: 0.5
height: 1
interactive: true
- type: simple_storage_furniture
title: "<dark_gray>Right Drawer"
data_key: "right_drawer"
rows: 2
variants:
ground:
hitboxes:
- type: interaction
position: 0.25,0.5,0
width: 0.5
height: 1
interactive: true
字段类型必填默认值说明
variantsmap变体名映射到 hitboxes 列表。这些碰撞箱由本 behavior 创建,被点击时打开本 behavior 的储物 GUI。