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

SusInventoryTabBar

SusInventoryTabBar

Полоса вкладок сетки — одна вкладка на InventoryGridDef, click переключает ActiveGridId, hover поддерживает смену вкладки при drag-over.

Пакет

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

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

SusGame · Inventory

Свойства

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

Слоты

Слотов нет.

События

ИмяПолеPayload
GridChangedOnGridChangedstring
TabHoverOnTabHoverstring

Хуки стиля

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

  • sus-inventory-tabbar
  • sus-inventory-tabbar__tab
  • sus-inventory-tabbar__tab--active
  • sus-inventory-tabbar__tab-icon
  • sus-inventory-tabbar__tab-label

Использование

Управляется списком: назначьте GridDefs, задайте ActiveGridId, вызовите RebuildTabs (Mounted тоже пересобирает). Подключайте в кастомную оболочку, когда нужны явные вкладки сумки.

csharp
var tabs = new SusInventoryTabBar();
tabs.GridDefs = new List<InventoryGridDef>
{
    new() { Id = "bag", Name = "Backpack", Icon = "backpack", Width = 10, Height = 8 },
    new() { Id = "loot", Name = "Loot", Icon = "chest", Width = 6, Height = 4 },
};
tabs.ActiveGridId = "bag";
tabs.OnGridChanged += id => { /* SusInventory.SetActiveGrid(id) */ };
tabs.OnTabHover += id => { /* drag-over switch */ };
tabs.RebuildTabs();
xml
<template>
  <sus:SusInventoryTabBar />
</template>

<script>
// No Prop<> — fill GridDefs / ActiveGridId from C#, then RebuildTabs.
void OnGridChanged(string gridId) { /* … */ }
void OnTabHover(string gridId) { /* … */ }
</script>
Prop / APIРоль
GridDefsИсточник вкладок (Id, Name, опционально Icon)
ActiveGridIdВыбранная вкладка (USS --active)
RebuildTabs()Очистить + пересобрать кнопки вкладок
OnGridChangedКлик → новый id сетки
OnTabHoverНаведение указателя (drag-over)

Заметки

  • Текущая раскладка сумки SusInventory использует двойные сетки (основная + вторичная по SortOrder) — вкладок в шаблоне нет. TabBarHost (.sus-inventory__tabs) может быть null; монтируйте эту полосу сами, если нужны вкладки нескольких сумок.
  • Опциональный def.Icon отрисовывает маленький SusIcon перед подписью.
  • Предпочитайте Session SetActiveGrid / OnTabChanged, когда переключением владеет shell.