SusEquipmentSlot

单个装备槽位 — 标签、空/已装填外观、已装备的 SusInventoryItem 图标、放置高亮、右键菜单。
包
SusGame · 库存(商业)
属性
| 名称 | 类型 | 默认值 | |
|---|---|---|---|
SlotId | Prop<string> | "" | v-model |
SlotName | Prop<string> | "" | v-model |
SlotIcon | Prop<string> | "" | v-model |
EquippedItem | Prop<ItemInstance> | null | v-model |
Highlighted | Prop<int> | 0 | v-model |
Rarity | Prop<string> | "" | v-model |
插槽
没有插槽。
事件
| 名称 | 字段 | 载荷 |
|---|---|---|
SlotClick | OnSlotClick | string |
ItemClicked | OnItemClicked | SusInventoryItem, string |
ItemDragStart | OnItemDragStart | SusInventoryItem, string |
ItemDragEnd | OnItemDragEnd | SusInventoryItem |
ItemDragging | OnItemDragging | SusInventoryItem, Vector2 |
ItemContextAction | OnItemContextAction | string, SusInventoryItem |
样式钩子
USS 类契约 — 无需改 C# 即可覆盖外观。状态通过这些类切换:
sus-equipment-slotsus-equipment-slot__bgsus-equipment-slot__framesus-equipment-slot__frame--rarity-commonsus-equipment-slot__frame--rarity-epicsus-equipment-slot__frame--rarity-exoticsus-equipment-slot__frame--rarity-legendarysus-equipment-slot__frame--rarity-raresus-equipment-slot__frame--rarity-uncommonsus-equipment-slot__iconsus-equipment-slot__labelsus-equipment-slot--emptysus-equipment-slot--filledsus-equipment-slot--highlight-candidatesus-equipment-slot--highlight-invalidsus-equipment-slot--highlight-validsus-inventory-item
用法
优先使用父组件 SusEquipmentPanel(或 SusInventory session)— 面板会设置 id / 尺寸 / 分类并绘制物品。独立使用适用于 Storybook / 自定义纸娃娃:
csharp
var slot = new SusEquipmentSlot();
slot.SlotId.Value = "helm";
slot.SlotName.Value = "Helmet";
slot.GridWidth = 2;
slot.GridHeight = 2;
slot.CellSize = 48f;
slot.ItemMedia = "image";
slot.CellLayout = "grid";
slot.AllowedCategories = new[] { "armor" };
slot.Model = model;
slot.EquippedItem.Value = equippedInstance; // or null
slot.OnSlotClick += id => { /* unequip path */ };
slot.OnItemClicked += (item, id) => { /* select */ };
slot.UpdateItemIcon();xml
<template>
<sus:SusEquipmentSlot :SlotId="Id.Value"
:SlotName="Name.Value"
:Highlighted="Hl.Value" />
</template>
<script>
public Prop<string> Id = new("helm");
public Prop<string> Name = new("Helmet");
public Prop<int> Hl = new(0);
// EquippedItem / Model / AllowedCategories — set from C# after mount.
</script>| Prop / API | 作用 |
|---|---|
SlotId / SlotName | 身份标识 + 标签 |
EquippedItem | 绑定的 ItemInstance(null = 空) |
Highlighted | 0 无 · 1 有效 · 2 无效 · 3 候选 |
GridWidth / GridHeight / CellSize | 占用像素 = 格数 × 尺寸 |
AllowedCategories | Accepts(ItemDef) 的分类门槛 |
UpdateItemIcon() | 从 Model 重绘已装备的图标 |
Accepts(def) | 分类检查 |
OnSlotClick / OnItem* / OnItemContextAction | 事件 |
备注
- 物品上的上下文操作:
equip/unequip/delete(与背包物品相同)。 - 点击空槽外观会触发
OnSlotClick(SlotId)— 背包布局会卸下到背包;装备栏布局会打开分类浮层(由外壳拥有)。 - 高亮取值与 SusInventoryCell 一致。