ItemSlot
ItemSlot 是一个与原版容器系统集成的 Minecraft 物品槽位。它渲染持有的 ItemStack,显示悬停高亮,并向当前打开的 AbstractContainerMenu 注册以实现标准点击转移行为。当 JEI、REI 和 EMI 存在时,它也会与这些模组联动。
UIElement 中记录的所有内容(布局、样式、事件、数据绑定等)同样适用于此处。
用法
XML
<!-- 基础槽位(无处理器 —— 使用 LocalSlot) -->
<item-slot/>
<!-- 预置物品,仅在编辑器中显示 -->
<item-slot id="minecraft:diamond" count="1"/>
<!-- 禁用 XEI 配方查看 -->
<item-slot allow-xei-Lookup="false"/>
| XML 属性 | 类型 | 描述 |
|---|---|---|
allow-xei-Lookup |
boolean |
点击槽位时是否触发 XEI(JEI/REI/EMI)配方查看。默认值:true。 |
id / count / NBT |
— | 用于仅在编辑器中预填充槽位的物品属性。 |
槽位样式
hover-overlay
鼠标悬停时绘制在槽位上的纹理。
默认值:ColorRectTexture(0x80FFFFFF)(半透明白色)
slot-overlay
绘制在槽位背景上的纹理(始终显示,或仅在槽位为空时显示 —— 参见 show-slot-overlay-only-empty)。
默认值:无(空)
show-slot-overlay-only-empty
当为 true 时,slot-overlay 仅在槽位为空时绘制。
默认值:true
show-item-tooltips
悬停槽位时是否显示标准物品悬停提示。
默认值:true
is-player-slot
将该槽位标记为玩家物品栏槽位(用于快速转移系统)。
默认值:false
accept-quick-move / quick-move-priority
该槽位是否参与 Shift 点击快速转移,以及多个槽位竞争时的优先级。
默认值:true / 0
值绑定
ItemSlot 继承自 BindableUIElement<ItemStack>:
详见 数据绑定。
字段
| 名称 | 类型 | 访问权限 | 描述 |
|---|---|---|---|
slotStyle |
SlotStyle |
private(getter) |
当前槽位样式。 |
slot |
Slot |
private(getter) |
绑定的 Slot。 |
方法
| 方法 | 返回 | 描述 |
|---|---|---|
bind(IItemHandlerModifiable, int) |
ItemSlot |
绑定到指定槽位索引的物品处理器。 |
bind(Slot) |
ItemSlot |
绑定到现有的原版 Slot。 |
setItem(ItemStack) |
ItemSlot |
设置显示的物品并通知监听器。 |
setItem(ItemStack, boolean) |
ItemSlot |
设置显示的物品;第二个参数控制是否通知。 |
slotStyle(Consumer<SlotStyle>) |
ItemSlot |
以流式接口配置样式。 |
xeiPhantom() |
ItemSlot |
在此槽位上启用 XEI(JEI/REI/EMI)幽灵拖拽。 |
xeiRecipeIngredient(IngredientIO) |
ItemSlot |
将该槽位标记为 XEI 配方视图中的配方原料。 |
xeiRecipeSlot() |
ItemSlot |
将该槽位标记为配方槽位,默认 IngredientIO.NONE。 |
xeiRecipeSlot(IngredientIO, float) |
ItemSlot |
标记为配方槽位,指定 I/O 类型和概率。 |
getFullTooltipTexts() |
List<Component> |
返回组合的物品和自定义悬停提示文本。 |