К содержимому

SusEquipmentPanel

SusEquipmentPanel

Колонка экипировки — пересобирает SusEquipmentSlot из InventoryModel.EquipmentSlots, группы или стеки по режиму arrange.

Пакет

SusGame · Инвентарь (коммерческий)

Открыть в песочнице

SusGame · Inventory

Свойства

Публичных свойств нет.

Слоты

Слотов нет.

События

ИмяПолеPayload
SlotClickOnSlotClickstring
SlotItemClickedOnSlotItemClickedSusInventoryItem, string
SlotItemDragStartOnSlotItemDragStartSusInventoryItem, string
SlotItemDragEndOnSlotItemDragEndSusInventoryItem
SlotItemDraggingOnSlotItemDraggingSusInventoryItem, Vector2
SlotContextActionOnSlotContextActionstring, SusInventoryItem

Хуки стиля

Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:

  • sus-equipment-panel
  • sus-equipment-panel__group-label
  • sus-equipment-panel__group-row
  • sus-equipment-panel__slots-row
  • sus-equipment-panel__slots-row--chunk
  • sus-equipment-panel--rows
  • sus-equipment-panel--stack
  • sus-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Передаётся в каждый слот
ColumnFilterleft / right / center или null (все)
Arrangegroups (обёртка с подписями) | 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) + правая броня.