跳转到内容

SusEquipmentSlot

SusEquipmentSlot

单个装备槽位 — 标签、空/已装填外观、已装备的 SusInventoryItem 图标、放置高亮、右键菜单。

SusGame · 库存(商业)

在 Playground 中打开

SusGame · Inventory

属性

名称类型默认值
SlotIdProp<string>""v-model
SlotNameProp<string>""v-model
SlotIconProp<string>""v-model
EquippedItemProp<ItemInstance>nullv-model
HighlightedProp<int>0v-model
RarityProp<string>""v-model

插槽

没有插槽。

事件

名称字段载荷
SlotClickOnSlotClickstring
ItemClickedOnItemClickedSusInventoryItem, string
ItemDragStartOnItemDragStartSusInventoryItem, string
ItemDragEndOnItemDragEndSusInventoryItem
ItemDraggingOnItemDraggingSusInventoryItem, Vector2
ItemContextActionOnItemContextActionstring, SusInventoryItem

样式钩子

USS 类契约 — 无需改 C# 即可覆盖外观。状态通过这些类切换:

  • sus-equipment-slot
  • sus-equipment-slot__bg
  • sus-equipment-slot__frame
  • sus-equipment-slot__frame--rarity-common
  • sus-equipment-slot__frame--rarity-epic
  • sus-equipment-slot__frame--rarity-exotic
  • sus-equipment-slot__frame--rarity-legendary
  • sus-equipment-slot__frame--rarity-rare
  • sus-equipment-slot__frame--rarity-uncommon
  • sus-equipment-slot__icon
  • sus-equipment-slot__label
  • sus-equipment-slot--empty
  • sus-equipment-slot--filled
  • sus-equipment-slot--highlight-candidate
  • sus-equipment-slot--highlight-invalid
  • sus-equipment-slot--highlight-valid
  • sus-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 = 空)
Highlighted0 无 · 1 有效 · 2 无效 · 3 候选
GridWidth / GridHeight / CellSize占用像素 = 格数 × 尺寸
AllowedCategoriesAccepts(ItemDef) 的分类门槛
UpdateItemIcon()从 Model 重绘已装备的图标
Accepts(def)分类检查
OnSlotClick / OnItem* / OnItemContextAction事件

备注

  • 物品上的上下文操作:equip / unequip / delete(与背包物品相同)。
  • 点击空槽外观会触发 OnSlotClick(SlotId) — 背包布局会卸下到背包;装备栏布局会打开分类浮层(由外壳拥有)。
  • 高亮取值与 SusInventoryCell 一致。