# Inventool Window

## 🏠 InventoolWindow Class

Main UI Toolkit window that hosts inventory, crafting, enchanting, shop, key‑items and storage systems; manages tabs, filters, pagination, currency displays, drag/drop and interactions with merchants, crafters, enchanters and storage.

> **Namespace:** `Esper.Inventool.UI`\
> **Access:** `public`\
> **Type:** `class`\
> **Inherits:** `CrossInputSupportedWindow`

***

### 📦 Fields

| Access      | Field                        | Type                                      | Description                                |
| ----------- | ---------------------------- | ----------------------------------------- | ------------------------------------------ |
| `protected` | `selectedTabButton`          | `Button`                                  | Currently selected tab button.             |
| `protected` | `currenciesContainer`        | `VisualElement`                           | Container for currency UI elements.        |
| `protected` | `currencyElements`           | `List<CurrencyElement>`                   | Loaded currency elements.                  |
| `protected` | `inventoryFilters`           | `List<InventoryFilter>`                   | Inventory item-type filters.               |
| `protected` | `selectedInventoryFilter`    | `InventoryFilter`                         | Currently selected inventory filter.       |
| `protected` | `tabButtonContainer`         | `VisualElement`                           | Container that holds tab buttons.          |
| `protected` | `inventoryTabButton`         | `Button`                                  | Inventory tab button.                      |
| `protected` | `craftingTabButton`          | `Button`                                  | Crafting tab button.                       |
| `protected` | `enchantingTabButton`        | `Button`                                  | Enchanting tab button.                     |
| `protected` | `keyItemsTabButton`          | `Button`                                  | Key items tab button.                      |
| `protected` | `inventoryTitle`             | `Label`                                   | Inventory title label.                     |
| `protected` | `craftingTitle`              | `Label`                                   | Crafting title label.                      |
| `protected` | `enchantingTitle`            | `Label`                                   | Enchanting title label.                    |
| `protected` | `shopTitle`                  | `Label`                                   | Shop title label.                          |
| `protected` | `inventoryTab`               | `VisualElement`                           | Inventory tab panel.                       |
| `protected` | `inventoryContent`           | `VisualElement`                           | Inventory content container (movable).     |
| `protected` | `slotContainer`              | `VisualElement`                           | Equipment slots container.                 |
| `protected` | `craftingTab`                | `VisualElement`                           | Crafting tab panel.                        |
| `protected` | `enchantingTab`              | `VisualElement`                           | Enchanting tab panel.                      |
| `protected` | `keyItemsTab`                | `VisualElement`                           | Key items tab panel.                       |
| `protected` | `shopTab`                    | `VisualElement`                           | Shop tab panel.                            |
| `protected` | `storageTab`                 | `VisualElement`                           | Storage tab panel.                         |
| `protected` | `activeTab`                  | `VisualElement`                           | Currently active tab panel.                |
| `protected` | `characterViewerElement`     | `CharacterViewerElement`                  | UI element for character preview/rotation. |
| `protected` | `inventoryFilterScroll`      | `ScrollView`                              | Inventory filter scroller.                 |
| `protected` | `weightArea`                 | `VisualElement`                           | Weight display area.                       |
| `protected` | `weightLabel`                | `Label`                                   | Weight amount label.                       |
| `protected` | `inventoryFilterTitleLabel`  | `Label`                                   | Current inventory filter title.            |
| `protected` | `itemContent`                | `VisualElement`                           | Container for inventory slot grid.         |
| `protected` | `craftingContent`            | `VisualElement`                           | Crafting content container.                |
| `protected` | `enchantingContent`          | `VisualElement`                           | Enchanting content container.              |
| `protected` | `inventoryScroll`            | `ScrollView`                              | Inventory scroll view.                     |
| `protected` | `pagesArea`                  | `VisualElement`                           | Pagination controls area.                  |
| `protected` | `inventoryPagesLabel`        | `Label`                                   | Inventory pages label.                     |
| `protected` | `inventoryPageLeftButton`    | `Button`                                  | Inventory previous page button.            |
| `protected` | `inventoryPageRightButton`   | `Button`                                  | Inventory next page button.                |
| `protected` | `loadedInventorySlots`       | `List<VisualElement>`                     | Generated slot visuals.                    |
| `protected` | `loadedItemElements`         | `Dictionary<ItemStack, ItemStackElement>` | Visible item elements by `ItemStack`.      |
| `protected` | `singleInventorySlotSize`    | `float`                                   | Calculated pixel size per inventory slot.  |
| `protected` | `singleStorageSlotSize`      | `float`                                   | Calculated pixel size per storage slot.    |
| `protected` | `keyItemScroll`              | `ScrollView`                              | Key items scroll view.                     |
| `protected` | `keyItemContent`             | `VisualElement`                           | Selected key item detail container.        |
| `protected` | `keyItemImage`               | `VisualElement`                           | Selected key item icon.                    |
| `protected` | `keyItemNameLabel`           | `Label`                                   | Selected key item name label.              |
| `protected` | `keyItemSubtypeLabel`        | `Label`                                   | Selected key item subtype label.           |
| `protected` | `keyItemDescriptionLabel`    | `Label`                                   | Selected key item description label.       |
| `protected` | `selectedKeyItem`            | `KeyItemElement`                          | Currently selected key item element.       |
| `protected` | `equipmentSlotElements`      | `List<EquipmentSlotElement>`              | All equipment slot elements.               |
| `protected` | `enchantmentSlotElements`    | `List<ItemSlotElement>`                   | Enchantment slot elements.                 |
| `protected` | `craftingSlotElements`       | `List<ItemSlotElement>`                   | Crafting slot elements.                    |
| `protected` | `enchantmentSlotLeft`        | `ItemSlotElement`                         | Left enchantment slot.                     |
| `protected` | `enchantmentSlotRight`       | `ItemSlotElement`                         | Right enchantment slot.                    |
| `protected` | `enchantmentCostIcon`        | `VisualElement`                           | Enchant cost icon.                         |
| `protected` | `enchantmentCostLabel`       | `Label`                                   | Enchant cost label.                        |
| `protected` | `enchantButton`              | `Button`                                  | Confirm enchant button.                    |
| `protected` | `craftScroll`                | `ScrollView`                              | Craft list scroller.                       |
| `protected` | `craftListElement`           | `VisualElement`                           | Container for craft ingredients.           |
| `protected` | `craftCostIcon`              | `VisualElement`                           | Craft cost icon.                           |
| `protected` | `craftCostLabel`             | `Label`                                   | Craft cost label.                          |
| `protected` | `craftButton`                | `Button`                                  | Confirm craft button.                      |
| `protected` | `craftResultSlot`            | `ItemSlotElement`                         | Craft result slot.                         |
| `protected` | `craftEmptyLabel`            | `Label`                                   | Shown when craft list empty.               |
| `protected` | `keyItemsEmptyLabel`         | `Label`                                   | Shown when no key items.                   |
| `protected` | `closeButton`                | `Button`                                  | Close window button.                       |
| `protected` | `crafter`                    | `Crafter`                                 | Crafting logic handler.                    |
| `public`    | `activeShopkeeper`           | `Shopkeeper`                              | Active shopkeeper reference.               |
| `public`    | `activeEnchanter`            | `Enchanter`                               | Active enchanter reference.                |
| `public`    | `activeCraftsman`            | `Craftsman`                               | Active craftsman reference.                |
| `public`    | `activeStorage`              | `Storage`                                 | Active storage reference.                  |
| `protected` | `shopFilterScroll`           | `ScrollView`                              | Shop filter scroll view.                   |
| `protected` | `shopScroll`                 | `ScrollView`                              | Shop items scroll.                         |
| `protected` | `shopFilters`                | `List<InventoryFilter>`                   | Shop filters list.                         |
| `protected` | `selectedShopFilter`         | `InventoryFilter`                         | Currently selected shop filter.            |
| `public`    | `characterViewer`            | `CharacterViewer`                         | Active character viewer.                   |
| `public`    | `rotationResetButton`        | `Button`                                  | Button to reset character rotation.        |
| `protected` | `storageCurrenciesContainer` | `VisualElement`                           | Container for storage currencies.          |
| `protected` | `storageCurrencyElements`    | `List<CurrencyElement>`                   | Loaded storage currency visuals.           |
| `protected` | `storageFilters`             | `List<InventoryFilter>`                   | Storage filters list.                      |
| `protected` | `selectedStorageFilter`      | `InventoryFilter`                         | Selected storage filter.                   |
| `protected` | `storageTitle`               | `Label`                                   | Storage title label.                       |
| `protected` | `storageFilterScroll`        | `ScrollView`                              | Storage filter scroller.                   |
| `protected` | `storageContent`             | `VisualElement`                           | Storage content container.                 |
| `protected` | `storageItemContent`         | `VisualElement`                           | Storage item grid container.               |
| `protected` | `storageFilterTitleLabel`    | `Label`                                   | Storage filter title label.                |
| `protected` | `storageScroll`              | `ScrollView`                              | Storage scroll view.                       |
| `protected` | `storagePagesArea`           | `VisualElement`                           | Storage pagination area.                   |
| `protected` | `storagePagesLabel`          | `Label`                                   | Storage pages label.                       |
| `protected` | `storagePageLeftButton`      | `Button`                                  | Storage prev page button.                  |
| `protected` | `storagePageRightButton`     | `Button`                                  | Storage next page button.                  |
| `protected` | `loadedStorageSlots`         | `List<VisualElement>`                     | Storage slot visuals.                      |
| `protected` | `storageLoadedItemElements`  | `Dictionary<ItemStack, ItemStackElement>` | Visible storage items map.                 |
| `public`    | `openedTab`                  | `Tab`                                     | Currently opened tab.                      |
| `protected` | `originalStorageTitle`       | `string`                                  | Cached original storage title text.        |
| `protected` | `useEnchantingCost`          | `bool`                                    | Show enchant cost when true.               |
| `protected` | `useCraftingCost`            | `bool`                                    | Show craft cost when true.                 |
| `protected` | `inventoryRequiresReload`    | `bool`                                    | Flag to rebuild inventory layout.          |
| `protected` | `storageRequiresReload`      | `bool`                                    | Flag to rebuild storage layout.            |
| `protected` | `firstOpen`                  | `bool`                                    | True until initial setup complete.         |
| `protected` | `inTransition`               | `bool`                                    | True while open/close transition running.  |
| `protected` | `isPointerInsideCraftList`   | `bool`                                    | Pointer inside craft list.                 |
| `protected` | `isPointerInsideStorage`     | `bool`                                    | Pointer inside storage.                    |
| `protected` | `isPointerInsideShop`        | `bool`                                    | Pointer inside shop.                       |
| `protected` | `isPointerInsideInventory`   | `bool`                                    | Pointer inside inventory.                  |

***

### 🔍 Properties

| Access          | Property            | Type              | Description                                      |
| --------------- | ------------------- | ----------------- | ------------------------------------------------ |
| `public`        | `Loaded`            | `bool`            | Returns `!firstOpen`.                            |
| `public`        | `OpenedForMerchant` | `bool`            | True if open and any merchant/storage is active. |
| `public static` | `Instance`          | `InventoolWindow` | Singleton instance (get only).                   |

***

### 🧰 Methods

| Access               | Method (name and params only)                                                | Returns            | Description                                                                |
| -------------------- | ---------------------------------------------------------------------------- | ------------------ | -------------------------------------------------------------------------- |
| `protected override` | `Awake()`                                                                    | `void`             | Initialize singleton, cache UI elements, register callbacks and listeners. |
| `protected override` | `Start()`                                                                    | `void`             | Final UI setup: parity, reload elements, hide root.                        |
| `protected virtual`  | `HandleInitialOpen()`                                                        | `void`             | One-time layout and initial loads executed on first open.                  |
| `public virtual`     | `Open()`                                                                     | `void`             | Open window in Inventory mode (full UI).                                   |
| `public virtual`     | `Open(Craftsman craftsman)`                                                  | `void`             | Open window in crafting-only mode.                                         |
| `public virtual`     | `Open(Enchanter enchanter)`                                                  | `void`             | Open window in enchanting-only mode.                                       |
| `public virtual`     | `Open(Shopkeeper shopkeeper)`                                                | `void`             | Open window in shop-only mode.                                             |
| `public virtual`     | `Open(Storage storage)`                                                      | `void`             | Open window in storage-only mode.                                          |
| `public virtual`     | `Close()`                                                                    | `void`             | Close window (non-merchant close).                                         |
| `public virtual`     | `Exit()`                                                                     | `void`             | Exit merchant/storage session and close window.                            |
| `protected virtual`  | `OpenHandler(TransitionEndEvent endEvent)`                                   | `void`             | Transition end handler for opening.                                        |
| `protected virtual`  | `CloseHandler(TransitionEndEvent endEvent)`                                  | `void`             | Transition end handler for closing and cleanup.                            |
| `protected virtual`  | `RegisterButtonEvents(Button button)`                                        | `void`             | Wire pointer enter and clicked events to invoke global events.             |
| `protected`          | `SelectTabButton(Button tabButton)`                                          | `void`             | Deselect previous and select the given tab button.                         |
| `protected`          | `SetTabButtonAsSelected(Button button)`                                      | `void`             | Apply selected visuals and disable button.                                 |
| `protected`          | `SetTabButtonAsUnselected(Button button)`                                    | `void`             | Revert visuals and enable button.                                          |
| `protected virtual`  | `ActivateTab(VisualElement tab)`                                             | `void`             | Enable and display specified tab panel.                                    |
| `protected virtual`  | `MoveInventory(VisualElement parent)`                                        | `void`             | Move `itemContent` into `parent` and send to back.                         |
| `protected`          | `ShowOrHideWeightArea()`                                                     | `void`             | Toggle weight area based on settings.                                      |
| `protected virtual`  | `ReloadInventoryFilters()`                                                   | `void`             | Build inventory filter UI and handlers.                                    |
| `protected virtual`  | `SelectInventoryFilter(InventoryFilter filter)`                              | `void`             | Mark inventory filter selected and update title.                           |
| `protected virtual`  | `DeselectInventoryFilter()`                                                  | `void`             | Unmark selected inventory filter.                                          |
| `protected virtual`  | `ReloadShopFilters()`                                                        | `void`             | Build shop filter UI and handlers.                                         |
| `protected virtual`  | `SelectShopFilter(InventoryFilter filter)`                                   | `void`             | Mark shop filter selected.                                                 |
| `protected virtual`  | `DeselectShopFilter()`                                                       | `void`             | Unmark selected shop filter.                                               |
| `public virtual`     | `ReloadStorageFilters()`                                                     | `void`             | Build storage filter UI and handlers.                                      |
| `public virtual`     | `SelectStorageFilter(InventoryFilter filter)`                                | `void`             | Mark storage filter selected and update title.                             |
| `public virtual`     | `DeselectStorageFilter()`                                                    | `void`             | Unmark selected storage filter.                                            |
| `protected virtual`  | `ReloadInventorySlots()`                                                     | `void`             | Recreate inventory slot grid and calculate slot size.                      |
| `public virtual`     | `ReloadStorageSlots()`                                                       | `void`             | Recreate storage slot grid and calculate slot size.                        |
| `protected`          | `CreateItemStackElement(ItemStack itemStack)`                                | `ItemStackElement` | Instantiate and size an ItemStackElement for inventory.                    |
| `public`             | `CreateStorageItemStackElement(ItemStack itemStack)`                         | `ItemStackElement` | Instantiate and size an ItemStackElement for storage.                      |
| `public`             | `ReloadCurrentInventoryPage()`                                               | `void`             | Populate visible inventory page with ItemStackElements.                    |
| `public`             | `ReloadCurrentStoragePage()`                                                 | `void`             | Populate visible storage page with ItemStackElements.                      |
| `public`             | `NextPage()`                                                                 | `void`             | Advance inventory page then reload.                                        |
| `public`             | `PreviousPage()`                                                             | `void`             | Go back inventory page then reload.                                        |
| `public`             | `NextStoragePage()`                                                          | `void`             | Advance storage page then reload.                                          |
| `public`             | `PreviousStoragePage()`                                                      | `void`             | Go back storage page then reload.                                          |
| `protected`          | `ResetLoadedSlots()`                                                         | `void`             | Mark all loaded inventory slots as available.                              |
| `public`             | `ResetLoadedStorageSlots()`                                                  | `void`             | Mark all loaded storage slots as available.                                |
| `protected`          | `SetSlotInUse(VisualElement slotElement)`                                    | `void`             | Visually mark inventory slot as occupied.                                  |
| `public`             | `SetStorageSlotInUse(VisualElement slotElement)`                             | `void`             | Visually mark storage slot as occupied.                                    |
| `protected`          | `SetSlotAvailable(VisualElement slotElement)`                                | `void`             | Visually mark inventory slot as available.                                 |
| `public`             | `SetStorageSlotAvailable(VisualElement slotElement)`                         | `void`             | Visually mark storage slot as available.                                   |
| `public`             | `GetItemElement(ItemStack itemStack)`                                        | `ItemStackElement` | Retrieve inventory ItemStackElement for given ItemStack, or null.          |
| `public`             | `GetStorageItemElement(ItemStack itemStack)`                                 | `ItemStackElement` | Retrieve storage ItemStackElement for given ItemStack, or null.            |
| `public virtual`     | `AddToEnchantSlot(ItemStack itemStack)`                                      | `void`             | Place item into first matching enchantment slot.                           |
| `public virtual`     | `UpdateEnchantmentCostElements()`                                            | `void`             | Update enchant cost visibility and values.                                 |
| `public virtual`     | `ConfirmEnchantment()`                                                       | `void`             | Attempt enchant and update inventory/currencies on success.                |
| `protected`          | `ReloadEnchantmentSlotElements()`                                            | `void`             | Set enchant slot backgrounds from settings.                                |
| `protected`          | `ReloadCurrencyElements()`                                                   | `void`             | Rebuild on-screen inventory currency UI.                                   |
| `public`             | `UpdateCurrenciesText()`                                                     | `void`             | Refresh inventory currency labels.                                         |
| `public`             | `UpdateStorageCurrenciesText()`                                              | `void`             | Refresh storage currency labels.                                           |
| `public`             | `UpdateWeightText()`                                                         | `void`             | Refresh weight text label.                                                 |
| `public`             | `UpdatePagesText()`                                                          | `void`             | Refresh inventory pages label.                                             |
| `public`             | `UpdateStoragePagesText()`                                                   | `void`             | Refresh storage pages label.                                               |
| `public virtual`     | `ReloadCraftList()`                                                          | `void`             | Rebuild craft ingredient list UI.                                          |
| `public virtual`     | `AddToCraftList(ItemStack itemStack)`                                        | `void`             | Add item to craft list (if allowed) and refresh.                           |
| `public virtual`     | `RemoveFromCraftList(int index)`                                             | `void`             | Remove craft item at index and refresh.                                    |
| `public virtual`     | `UpdateCraftingElements()`                                                   | `void`             | Update craft result slot, cost icon/label and button state.                |
| `public virtual`     | `ConfirmCraft()`                                                             | `void`             | Attempt craft; clear items and refresh on success.                         |
| `public`             | `ReloadKeyItems()`                                                           | `void`             | Rebuild key items list UI.                                                 |
| `protected`          | `SelectKeyItem(KeyItemElement keyItemElement)`                               | `void`             | Show selected key item details.                                            |
| `protected`          | `DeselectKeyItem()`                                                          | `void`             | Clear key item selection and hide details.                                 |
| `public virtual`     | `IsPointerInsideInventory()`                                                 | `bool`             | True if pointer is inside inventory scroll and flag set.                   |
| `public virtual`     | `IsPointerInsideStorage()`                                                   | `bool`             | True if pointer is inside storage scroll and flag set.                     |
| `public virtual`     | `IsPointerInsideCraftingList()`                                              | `bool`             | True if pointer is inside craft scroll and flag set.                       |
| `public virtual`     | `IsPointerInsideShop()`                                                      | `bool`             | True if pointer is inside shop scroll and flag set.                        |
| `protected virtual`  | `HandleItemsUpdated(ItemStack itemStack, Storage storage)`                   | `void`             | Handler for item updates from storage/inventory.                           |
| `protected virtual`  | `HandleStorageUpdated(ItemStack itemStack, Storage storage)`                 | `void`             | Handler for storage item updates.                                          |
| `protected virtual`  | `HandleStorageUpdated(Currency currency, Storage storage)`                   | `void`             | Handler for storage currency updates.                                      |
| `protected virtual`  | `HandleItemDismantled(ItemStack itemStack, List<ItemStack> dismantleResult)` | `void`             | Handler when an item is dismantled.                                        |
| `protected virtual`  | `HandleItemDropped(ItemStack itemStack)`                                     | `void`             | Handler when an item is dropped.                                           |
| `protected virtual`  | `HandleItemEquipped(ItemStack itemStack, EquipmentSlot equipmentSlot)`       | `void`             | Handler for equipment events; refresh equipment visuals.                   |
| `protected virtual`  | `HandleItemUnequipped(ItemStack itemStack, EquipmentSlot equipmentSlot)`     | `void`             | Handler for unequip events; refresh equipment visuals.                     |
| `protected virtual`  | `HandleItemUsed(ItemStack itemStack)`                                        | `void`             | Handler when an item is used.                                              |
| `protected virtual`  | `HandleCurrencyChanged(Currency currency)`                                   | `void`             | Handler when inventory currency changes.                                   |
| `protected virtual`  | `HandleItemSold(ItemStack itemStack)`                                        | `void`             | Handler when an item is sold; update inventory and currencies.             |
| `protected virtual`  | `HandleItemsUpdated()`                                                       | `void`             | Handler for generic items updated events.                                  |
| `protected virtual`  | `HandleEnchantmentError(string message)`                                     | `void`             | Show localized confirm prompt for enchant errors.                          |
| `protected virtual`  | `HandleCraftingError(string message)`                                        | `void`             | Show localized confirm prompt for craft errors.                            |
| `protected virtual`  | `HandleMerchantError(Merchant.MerchantError error, string message)`          | `void`             | Show localized confirm prompt for various merchant errors.                 |
| `public`             | `GetActiveShopkeeper()`                                                      | `Shopkeeper`       | Return `activeShopkeeper` reference.                                       |

***

### 🧩 Nested Types <a href="#nested-types" id="nested-types"></a>

#### `public struct CurrencyElement`

| Field   | Type            | Description                |
| ------- | --------------- | -------------------------- |
| `image` | `VisualElement` | The currency icon element. |
| `label` | `Label`         | The currency amount label. |

#### `public struct InventoryFilter`

| Field      | Type       | Description                             |
| ---------- | ---------- | --------------------------------------- |
| `button`   | `Button`   | The filter button UI element.           |
| `itemType` | `ItemType` | The item type that this filter applies. |

#### `public enum Tab`

| Name         | Description      |
| ------------ | ---------------- |
| `None`       | No tab selected. |
| `Inventory`  | Inventory tab.   |
| `Crafting`   | Crafting tab.    |
| `Enchanting` | Enchanting tab.  |
| `KeyItems`   | Key-items tab.   |
| `Shop`       | Shop tab.        |
| `Storage`    | Storage tab.     |

***

## Active Instance

You can get the active `InventoolWindow` instance with `InventoolWindow.Instance`. Ensure there's an instance of it in your scene before using this field.

## Opening & Closing

### Open

The `InventoolWindow` can be opened in multiple ways, each for a different purpose.

#### Opening For Player

Call the `Open` method when the player wants to open their inventory.

```csharp
InventoolWindow.Instance.Open();
```

#### Opening For Merchant

You can open the window for the specific merchant by providing the [merchant](https://stylishesper.gitbook.io/inventool/scripting/api/merchants/merchant "mention") reference as a parameter.

```csharp
InventoolWindow.Instance.Open(myMerchant);
```

### Opening for Storage

You can open the window for a specific storage by providing the [storage](https://stylishesper.gitbook.io/inventool/scripting/api/storing/storage "mention") reference as a parameter.

```csharp
InventoolWindow.Instance.Open(myStorage);
```

### Close

`Close` closes the window if opened for the player. Use `Exit` to close the window when opened for a merchant. Optionally, you can use `ForceClose` to close the window whether it's opened for a merchant or not.

```csharp
InventoolWindow.Instance.Close();
```

### Toggle

Optionally, you can use Toggle to open or close the window.

```csharp
InventoolWindow.Instance.Toggle();
```

## Character View

### Setting Custom Image

If you don't have a [character-viewer](https://stylishesper.gitbook.io/inventool/editors/components/ui/character-viewer "mention") set up in your scene, a default image will be displayed in the equipment section. You can override this image with a custom one. A Sprite or Texture2D will be required.

```csharp
InventoolWindow.Instance.SetCharacterViewer(mySprite);
```

### Reset Character View Rotation

If you have the [character-viewer](https://stylishesper.gitbook.io/inventool/editors/components/ui/character-viewer "mention") set up, you can call `ResetCharacterViewRotation` to reset its view.

```csharp
InventoolWindow.Instance.ResetCharacterViewRotation();
```

## Tabs

The methods below can only be used in a script that inherits from `InventoolWindow`.

### Close Active Tab

`CloseActiveTab` closes the tab currently enabled. This is useful if you added your own tabs.

```csharp
CloseActiveTab();
```

### Activate Tab

Use `ActivateTab` and provide a `VisualElement` that acts as the root of the tab. This will enable the tab.

```csharp
ActivateTab(myTab);
```

### Select Tab Button

To mark a tab button as selected, use `SelectTabButton` and provide the `Button` as a parameter.

```csharp
SelectTabButton(myButton);
```

### Move Inventory

You can move the inventory to a tab with the `MoveInventory` method. Provide a `VisualElement` (root of the tab) as a parameter.

```csharp
MoveInventory(myTab);
```
