SusWallet

Полоса валюты для шапки лобби или магазина — пункты «подпись / значение», прочерк для неизвестного баланса, пульс при изменении.
Пакет
SusGame · Молекулы (коммерческий)
Свойства
| Имя | Тип | По умолчанию | |
|---|---|---|---|
Icon | Prop<string> | "" | |
EmptyValue | Prop<string> | "—" |
Слоты
События
Хуки стиля
Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:
sus-hiddensus-walletsus-wallet__iconsus-wallet__itemsus-wallet__item--emptysus-wallet__item--firstsus-wallet__item-iconsus-wallet__item-labelsus-wallet__item-valuesus-wallet__item-value--flash
SusWallet
Полоса валют для шапки лобби или магазина — пункты «подпись / значение», прочерк для неизвестного баланса, пульс на изменившемся.
Использование
SusWallet показывает ряд пунктов-валют. Список передаётся через SetEntries. У каждого пункта есть необязательная иконка, подпись и значение. Значение — строка, которую вы форматируете сами, например "12 400", поэтому компонент никогда не решает за вас форматирование чисел и локаль.
var wallet = new SusWallet();
wallet.Icon.Value = "coins"; // optional wallet-level icon
wallet.SetEntries(new List<SusWallet.SusWalletEntry>
{
SusWallet.SusWalletEntry.Of("gold", "Gold", "12 400", "coin"),
SusWallet.SusWalletEntry.Of("gems", "Gems", "35", "diamond"),
// Balance not loaded yet: the item renders empty and shows EmptyValue.
new SusWallet.SusWalletEntry { Code = "tokens", Label = "Tokens", Available = false },
});
// After a balance change: replace the entries, then pulse the changed value.
wallet.FlashValue("gold");<template>
<sus:SusWallet :Icon="WalletIcon.Value" :EmptyValue="Dash.Value" />
</template>
<script>
public Prop<string> WalletIcon = new("coins");
public Prop<string> Dash = new("—");
</script>В лобби кошелёк обычно не создают вручную. SusLobbyScreenContent держит его в своей шапке: вызовите lobby.SetWallet(entries), и он остаётся скрытым, пока в списке нет хотя бы одного пункта.
| Проп / API | Роль |
|---|---|
Icon | Ключ иконки уровня кошелька перед пунктами (sus-wallet__icon); пусто (по умолчанию) → скрыта |
EmptyValue | Текст, показываемый как значение пустого пункта (по умолчанию "—") |
SetEntries(entries) | Заменяет пункты в порядке показа; null или пустой список очищает их |
Entries | Записи из последнего вызова SetEntries (только чтение) |
FlashValue(code) | Добавляет sus-wallet__item-value--flash к значению этого пункта на ValueFlashMs (600 мс); неизвестный код ничего не делает |
WalletIcon | SusIcon за Icon, для подключения хостом |
Записи
SusWallet.SusWalletEntry — обычная структура:
| Поле | Значение |
|---|---|
Code | Стабильный id валюты ("gold") — ключ для FlashValue |
Label | Подпись перед значением; пустая — подставляется Code |
Value | Текст баланса, уже отформатированный; пустой — пункт отображается пустым |
IconKey | Необязательная иконка этой валюты (sus-wallet__item-icon) |
Available | false = баланс неизвестен или ещё загружается: пункт получает sus-wallet__item--empty и показывает EmptyValue |
Available по умолчанию false, как любое поле bool у структуры. Создавайте записи через SusWalletEntry.Of(...), который ставит его в true, или задавайте сами. Запись, созданная через new SusWalletEntry { ... } без Available = true, отображается пустой.
Хуки скина
| Класс | На чём |
|---|---|
sus-wallet | Корневой ряд; без записей и без иконки имеет нулевой размер |
sus-wallet__icon | Иконка уровня кошелька |
sus-wallet__item | Один пункт-валюта (ряд); sus-wallet__item--first — на первом |
sus-wallet__item-icon | Иконка пункта |
sus-wallet__item-label | Подпись пункта |
sus-wallet__item-value | Значение пункта |
sus-wallet__item--empty | Пункт, чей баланс неизвестен или пуст |
sus-wallet__item-value--flash | Значение во время пульса FlashValue |
Пульс — это класс, а не transition. Пакет окрашивает пульсирующее значение сигнальным токеном и снимает класс по таймеру. Скин может переопределить стиль класса или добавить собственный USS-transition. Цвета и размеры берутся из токенов --sk-*, так что полоса следует вашей теме.
Заметки
- Замена записей перестраивает пункты и отменяет идущий пульс.
- Порядок пунктов на экране — порядок переданного списка.