Inventory Widget
Introduction
The widget responsible for displaying the inventory
Dependencies
The InventoryWidget relies on other components of this plugin to work:
- Logger: Used to log useful information to help you debug any issues you might experience
Required Widgets
You need to add the following before you can compile the InventoryWidget widget:
| Name | Description | Type |
|---|---|---|
| InventoryMenu | The menu responsible for controlling all the menu items | UMenu* |
Optional Widgets
You can add the following widgets to enable extra functionality:
| Name | Description | Type |
|---|---|---|
| NameText | The widget responsible for displaying the highlighted item's name | UTextBlock* |
| DescriptionText | The widget responsible for displaying the highlighted item's description | UTextBlock* |
| PreviewImage | The widget responsible for displaying the highlighted item's image | UImage* |
| AmountText | The widget responsible for displaying the highlighted item's amount | UTextBlock* |
API Reference
Properties
| Property | Description | Type | Default Value |
|---|---|---|---|
| MenuItemClass | The inventory menu item class used to display the inventory items | TSubclassOf<UInventoryMenuItem> | |
| ItemData | The data table containing all the information about the inventory items | UDataTable* | nullptr |
| InventorySize | The size restrictions of the inventory | EInventorySize | |
| Rows | The amount of rows in the inventory | int | |
| Columns | The amount of columns in the inventory | int |
Events
| Name | Description | Params |
|---|---|---|
| OnInventoryItemSelected | Event used to notify other classes every time an inventory item is selected | Name (FName) The ID of the selected inventory item |
Functions
| Name | Description | Params | Return |
|---|---|---|---|
| LoadInventory | Load a specific inventory | InventoryComponent (UInventoryComponent*) The inventory to load |
|
| UpdatePreview | Update the preview of the inventory | Item (FInventoryItem) The item to preview |
|
| UpdateHighlightedIndex | Update the highlighted index | Column (int) The column index of the item that is highlighted Row (int) The row index of the item that is highlighted |
|
| SelectItem | Select an inventory item | Id (FName) The ID of the item to select |
|
| GetInventory | Get the inventory managed by the widget | UInventoryComponent* The inventory managed by the widget |
|
| RefreshItem | Refresh a specific item in the inventory | Id (FName) The ID of the item to refresh Amount (int) The amount of the item |
|
| RefreshInventory | Refresh the entire inventory |
Blueprint Usage
You can use the InventoryWidget using Blueprints by adding one of the following nodes:
- Ultimate Starter Kit > Inventory > Load Inventory
- Ultimate Starter Kit > Inventory > Update Preview
- Ultimate Starter Kit > Inventory > Update Highlighted Index
- Ultimate Starter Kit > Inventory > Select Item
- Ultimate Starter Kit > Inventory > Get Inventory
- Ultimate Starter Kit > Inventory > Refresh Item
- Ultimate Starter Kit > Inventory > Refresh Inventory
C++ Usage
Before you can use the plugin, you first need to enable the plugin in your Build.cs file:
PublicDependencyModuleNames.Add("USK");
The InventoryWidget can now be used in any of your C++ files:
#include "USK/Inventory/InventoryWidget.h"
void ATestActor::Test()
{
// InventoryWidget is a pointer to the UInventoryWidget
InventoryWidget->LoadInventory(InventoryComponent);
InventoryWidget->UpdatePreview(Item);
InventoryWidget->UpdateHighlightedIndex(Column, Row);
InventoryWidget->SelectItem(Id);
UInventoryComponent* Inventory = InventoryWidget->GetInventory();
InventoryWidget->RefreshItem(Id, Amount);
InventoryWidget->RefreshInventory();
}