Skip to content

SusEquipmentPanel

SusEquipmentPanel

Equipment column — rebuilds SusEquipmentSlot children from InventoryModel.EquipmentSlots, groups or stacks by arrange mode.

Package

SusGame · Inventory (commercial)

Open in Playground

SusGame · Inventory

Props

No public props.

Slots

No slots.

Events

NameFieldPayload
SlotClickOnSlotClickstring
SlotItemClickedOnSlotItemClickedSusInventoryItem, string
SlotItemDragStartOnSlotItemDragStartSusInventoryItem, string
SlotItemDragEndOnSlotItemDragEndSusInventoryItem
SlotItemDraggingOnSlotItemDraggingSusInventoryItem, Vector2
SlotContextActionOnSlotContextActionstring, SusInventoryItem

Style hooks

USS class contract — override appearance without touching C#. States toggle via these classes:

  • 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

Usage

Prefer parent SusInventory via SusInventorySession — the shell mounts and syncs the panel. Standalone: assign Model, then 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 / APIRole
ModelSource of EquipmentSlots + ItemDefs
CellSize / ItemMedia / CellLayoutForwarded to each slot
ColumnFilterleft / right / center or null (all)
Arrangegroups (labeled wrap) | stack (paper-doll column)
ShowGroupLabelsHide SlotGroup labels when false
Rebuild() / SyncSlots()Full rebuild vs equip state sync
HighlightSlots / HighlightDropTarget / ClearSlotHighlightDnD preview
OnSlotClick / OnSlotItem* / OnSlotContextActionSlot & item events

Notes

  • Empty until Model.EquipmentSlots is set and Rebuild runs (Mounted calls Rebuild once).
  • Prefer the panel over hand-wiring many SusEquipmentSlot instances when you need shared DnD / highlight.
  • Shell hosts: bag side = full panel; loadout = left weapons (ColumnFilter=left, Arrange=stack) + right armor.