主题
背包与装备界面
常用组件分工
InventorySlots:容器槽位语义ItemSlot:单槽位DisplaySlot:展示预览,不等于真实容器槽位EntityView:角色或实体预览
典型布局
xml
<template>
<Panel id="bagRoot">
<Panel class="left">
<InventorySlots />
</Panel>
<Panel class="right">
<DisplaySlot id="weaponPreview" />
<EntityView id="previewEntity" />
</Panel>
</Panel>
</template>
<style>
#bagRoot {
width: 360px;
display: flex;
flex-direction: row;
gap: 8px;
padding: 8px;
background: #111824;
}
</style>同步展示物品
kotlin
fun syncWeaponPreview(player: Player, weapon: ItemStack) {
BUIServerAPI.state().setDisplayItem(
player = player,
storeId = "inventory/main",
key = "weaponPreview",
item = weapon
)
}DisplaySlot 展示的是服务端写入的展示物品,不会自动映射到真实容器槽位。涉及装备、预览和对比时,通常由 setDisplayItem*() 单独驱动。