SusEquipmentPanel

Колонка экипировки — пересобирает SusEquipmentSlot из InventoryModel.EquipmentSlots, группы или стеки по режиму arrange.
Пакет
SusGame · Инвентарь (коммерческий)
Свойства
Публичных свойств нет.
Слоты
Слотов нет.
События
| Имя | Поле | Payload |
|---|---|---|
SlotClick | OnSlotClick | string |
SlotItemClicked | OnSlotItemClicked | SusInventoryItem, string |
SlotItemDragStart | OnSlotItemDragStart | SusInventoryItem, string |
SlotItemDragEnd | OnSlotItemDragEnd | SusInventoryItem |
SlotItemDragging | OnSlotItemDragging | SusInventoryItem, Vector2 |
SlotContextAction | OnSlotContextAction | string, SusInventoryItem |
Хуки стиля
Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:
sus-equipment-panelsus-equipment-panel__group-labelsus-equipment-panel__group-rowsus-equipment-panel__slots-rowsus-equipment-panel__slots-row--chunksus-equipment-panel--rowssus-equipment-panel--stacksus-equipment-slot
Использование
Предпочитайте родительский SusInventory через SusInventorySession — оболочка монтирует и синхронизирует панель. Отдельно: назначьте Model, затем Rebuild / SyncSlots.
csharp
var panel = new SusEquipmentPanel();
panel.Model = model;
panel.CellSize = 48f;
panel.ItemMedia = "image"; // image | icon
panel.CellLayout = "grid"; // grid | slots
panel.ColumnFilter = "right"; // null = all; left | right | center
panel.Arrange = "groups"; // groups | stack
panel.ShowGroupLabels = true;
panel.IconResolver = myResolver;
panel.OnSlotClick += slotId => { /* unequip / flyout */ };
panel.OnSlotItemClicked += (item, slotId) => { /* select */ };
panel.Rebuild();xml
<template>
<sus:SusEquipmentPanel />
</template>
<script>
// No Prop<> on the panel — drive Model / Arrange / ColumnFilter from C#.
// Wire OnSlot* after mount; call Rebuild when EquipmentSlots change.
</script>| Prop / API | Роль |
|---|---|
Model | Источник EquipmentSlots + ItemDefs |
CellSize / ItemMedia / CellLayout | Передаётся в каждый слот |
ColumnFilter | left / right / center или null (все) |
Arrange | groups (обёртка с подписями) | stack (колонка paper-doll) |
ShowGroupLabels | Скрывает подписи SlotGroup, если false |
Rebuild() / SyncSlots() | Полная пересборка vs синхронизация состояния экипировки |
HighlightSlots / HighlightDropTarget / ClearSlotHighlight | Превью DnD |
OnSlotClick / OnSlotItem* / OnSlotContextAction | События слота и предмета |
Заметки
- Пусто, пока не задан
Model.EquipmentSlotsи не выполненRebuild(Mounted вызывает Rebuild один раз). - Предпочитайте панель ручной сборке множества экземпляров SusEquipmentSlot, когда нужны общие DnD / подсветка.
- Хосты оболочки: сторона сумки = полная панель; экипировка = левое оружие (
ColumnFilter=left,Arrange=stack) + правая броня.