Interface IInventoryManager
Manages all InventoryItems and IItemCollections. Can subscribe to events relevant to InventoryItems and create and delete them here. The IInventoryManager can create InventoryItems from InventoryItemDefinitions as well as IItemCollections as needed.
Namespace: UnityEngine.GameFoundation
Syntax
public interface IInventoryManager
Methods
CreateItem(InventoryItemDefinition)
This will create a new InventoryItem based on the given InventoryItemDefinition.
Declaration
InventoryItem CreateItem(InventoryItemDefinition definition)
Parameters
| Type | Name | Description |
|---|---|---|
| InventoryItemDefinition | definition | The InventoryItemDefinition to assign to this Item. |
Returns
| Type | Description |
|---|---|
| InventoryItem | The newly created item based on specified InventoryItemDefinition. |
CreateItem(StackableInventoryItemDefinition, Int64)
This will create a new StackableInventoryItem based on the given StackableInventoryItemDefinition.
Declaration
StackableInventoryItem CreateItem(StackableInventoryItemDefinition definition, long quantity = 1L)
Parameters
| Type | Name | Description |
|---|---|---|
| StackableInventoryItemDefinition | definition | The StackableInventoryItemDefinition to assign to this Item. |
| Int64 | quantity | Quantity of the newly-created stackable item which defaults to 1. |
Returns
| Type | Description |
|---|---|
| StackableInventoryItem | The newly created item based on specified StackableInventoryItemDefinition. |
CreateList()
Create an empty ItemList.
Declaration
ItemList CreateList()
Returns
| Type | Description |
|---|---|
| ItemList | Empty ItemList to store InventoryItems. |
CreateMap()
Create an empty ItemMap.
Declaration
ItemMap CreateMap()
Returns
| Type | Description |
|---|---|
| ItemMap | Empty ItemMap to store InventoryItems. |
Delete(IItemCollection)
Deletes specified IItemCollection.
Declaration
bool Delete(IItemCollection collection)
Parameters
| Type | Name | Description |
|---|---|---|
| IItemCollection | collection | IItemCollection to delete from IInventoryManager. |
Returns
| Type | Description |
|---|---|
| Boolean | true if item map is found and deleted, else false. |
Delete(InventoryItem)
This method will delete the given item.
Declaration
bool Delete(InventoryItem item)
Parameters
| Type | Name | Description |
|---|---|---|
| InventoryItem | item | The Item instance we want to delete. |
Returns
| Type | Description |
|---|---|
| Boolean | Whether or not the Item was successfully deleted. |
Delete(InventoryItemDefinition, ICollection<InventoryItem>, Boolean)
This method will delete the items that uses the given definition.
Declaration
int Delete(InventoryItemDefinition definition, ICollection<InventoryItem> target = null, bool clearTarget = true)
Parameters
| Type | Name | Description |
|---|---|---|
| InventoryItemDefinition | definition | The InventoryItemDefinition we want to delete. |
| ICollection<InventoryItem> | target | The target collection where deleted items are copied to. |
| Boolean | clearTarget | If |
Returns
| Type | Description |
|---|---|
| Int32 | The amount of items that were deleted. |
DeleteAllCollections(ICollection<IItemCollection>, Boolean)
Deletes all IItemCollections.
Declaration
int DeleteAllCollections(ICollection<IItemCollection> target = null, bool clearTarget = true)
Parameters
| Type | Name | Description |
|---|---|---|
| ICollection<IItemCollection> | target | The target collection te deleted collections are copied to. |
| Boolean | clearTarget | If |
Returns
| Type | Description |
|---|---|
| Int32 | The number of collections deleted. |
DeleteAllItems(ICollection<InventoryItem>, Boolean)
Deletes all the items from the player inventory.
Declaration
int DeleteAllItems(ICollection<InventoryItem> target = null, bool clearTarget = true)
Parameters
| Type | Name | Description |
|---|---|---|
| ICollection<InventoryItem> | target | The target collection the deleted items are copied to. |
| Boolean | clearTarget | If |
Returns
| Type | Description |
|---|---|
| Int32 | The number of items deleted. |
FindCollection<TCollection>(String)
Finds collection of specified type using id.
Declaration
TCollection FindCollection<TCollection>(string id)
where TCollection : class, IItemCollection
Parameters
| Type | Name | Description |
|---|---|---|
| String | id | Id to search for. |
Returns
| Type | Description |
|---|---|
| TCollection | IItemCollection found or null if collection does not exist. |
Type Parameters
| Name | Description |
|---|---|
| TCollection | Type of collection to search for. |
FindItem(String)
Returns an item with the Id wanted.
Declaration
InventoryItem FindItem(string id)
Parameters
| Type | Name | Description |
|---|---|---|
| String | id | The identifier of the item wanted. |
Returns
| Type | Description |
|---|---|
| InventoryItem | Returns the item with the given |
FindItems(Predicate<InventoryItem>, ICollection<InventoryItem>, Boolean)
Gets filtered items.
Declaration
int FindItems(Predicate<InventoryItem> filter, ICollection<InventoryItem> target = null, bool clearTarget = true)
Parameters
| Type | Name | Description |
|---|---|---|
| Predicate<InventoryItem> | filter | The predicate to filter the items. |
| ICollection<InventoryItem> | target | The target collection the filtered items are copied to. |
| Boolean | clearTarget | If |
Returns
| Type | Description |
|---|---|
| Int32 | The number of items passing the filter. |
FindItems(InventoryItemDefinition, ICollection<InventoryItem>, Boolean)
Gets items filtered with the specified definition.
Declaration
int FindItems(InventoryItemDefinition definition, ICollection<InventoryItem> target = null, bool clearTarget = true)
Parameters
| Type | Name | Description |
|---|---|---|
| InventoryItemDefinition | definition | The InventoryItemDefinition used to filter the items. |
| ICollection<InventoryItem> | target | The target collection where filtered items are copied. |
| Boolean | clearTarget | If |
Returns
| Type | Description |
|---|---|
| Int32 | The number of InventoryItem instances found. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | If |
FindItems(Tag, ICollection<InventoryItem>, Boolean)
Gets items filtered with the specified tag.
Declaration
int FindItems(Tag tag, ICollection<InventoryItem> target = null, bool clearTarget = true)
Parameters
| Type | Name | Description |
|---|---|---|
| Tag | tag | The tag used to filter the items. |
| ICollection<InventoryItem> | target | The target collection where filtered items are copied. |
| Boolean | clearTarget | If |
Returns
| Type | Description |
|---|---|
| Int32 | The number of items found. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | If |
FindItems<TState>(Func<TState, InventoryItem, Boolean>, TState, ICollection<InventoryItem>, Boolean)
Gets filtered items.
Declaration
int FindItems<TState>(Func<TState, InventoryItem, bool> filter, TState state, ICollection<InventoryItem> target = null, bool clearTarget = true)
Parameters
| Type | Name | Description |
|---|---|---|
| Func<TState, InventoryItem, Boolean> | filter | The predicate to filter the items. |
| TState | state | An object representing data to be used by the filter. |
| ICollection<InventoryItem> | target | The target collection the filtered items are copied to. |
| Boolean | clearTarget | If |
Returns
| Type | Description |
|---|---|
| Int32 | The number of items passing the filter. |
Type Parameters
| Name | Description |
|---|---|
| TState | The type of the |
GetCollections(ICollection<IItemCollection>, Boolean)
Fills target ICollection<T> with all IItemCollections.
Declaration
int GetCollections(ICollection<IItemCollection> target = null, bool clearTarget = true)
Parameters
| Type | Name | Description |
|---|---|---|
| ICollection<IItemCollection> | target | The target collection the IItemCollection instances are copied to. |
| Boolean | clearTarget | If |
Returns
| Type | Description |
|---|---|
| Int32 | Count of IItemCollections found. |
GetItems(ICollection<InventoryItem>, Boolean)
Fills the given list with all items in the manager.
Declaration
int GetItems(ICollection<InventoryItem> target = null, bool clearTarget = true)
Parameters
| Type | Name | Description |
|---|---|---|
| ICollection<InventoryItem> | target | The target collection the InventoryItem instances are copied to. |
| Boolean | clearTarget | If |
Returns
| Type | Description |
|---|---|
| Int32 | The number of items found. |
GetQuantity(StackableInventoryItem)
Get specified StackableInventoryItem's quantity.
Declaration
long GetQuantity(StackableInventoryItem item)
Parameters
| Type | Name | Description |
|---|---|---|
| StackableInventoryItem | item | StackableInventoryItem to get quantity of. |
Returns
| Type | Description |
|---|---|
| Int64 | Quantity of items in StackableInventoryItem. |
GetTotalQuantity(InventoryItemDefinition)
Iterate inventory and return total quantity of specified InventoryItemDefinition. Note: if items are StackableInventoryItem then total of all items in all stacks is calculated.
Declaration
long GetTotalQuantity(InventoryItemDefinition itemDefinition)
Parameters
| Type | Name | Description |
|---|---|---|
| InventoryItemDefinition | itemDefinition | InventoryItemDefinition to total. |
Returns
| Type | Description |
|---|---|
| Int64 | Total quantity of specified InventoryItemDefinition. |
SetQuantity(StackableInventoryItem, Int64)
Set specified StackableInventoryItem's quantity. Ensures new quanitity is permissible before setting; returns false on failure.
Declaration
bool SetQuantity(StackableInventoryItem item, long quantity)
Parameters
| Type | Name | Description |
|---|---|---|
| StackableInventoryItem | item | StackableInventoryItem to change quantity upon. |
| Int64 | quantity | Requested new quantity. |
Returns
| Type | Description |
|---|---|
| Boolean |
|
Events
collectionAdded
Event fired whenever any IItemCollection is added.
Declaration
event Action<IItemCollection> collectionAdded
Event Type
| Type | Description |
|---|---|
| Action<IItemCollection> |
collectionDeleted
Event fired whenever any IItemCollection is deleted.
Declaration
event Action<IItemCollection> collectionDeleted
Event Type
| Type | Description |
|---|---|
| Action<IItemCollection> |
itemAdded
Event fired whenever a new Inventory Item is added.
Declaration
event Action<InventoryItem> itemAdded
Event Type
| Type | Description |
|---|---|
| Action<InventoryItem> |
itemAddedToCollection
Event fired whenever an InventoryItem is added to an IItemCollection.
Declaration
event Action<IItemCollection, InventoryItem> itemAddedToCollection
Event Type
| Type | Description |
|---|---|
| Action<IItemCollection, InventoryItem> |
itemDeleted
Event fired whenever an Inventory Item is deleted.
Declaration
event Action<InventoryItem> itemDeleted
Event Type
| Type | Description |
|---|---|
| Action<InventoryItem> |
itemMutablePropertyChanged
Event fired whenever any InventoryItem Property changes.
Declaration
event Action<PropertyChangedEventArgs> itemMutablePropertyChanged
Event Type
| Type | Description |
|---|---|
| Action<PropertyChangedEventArgs> |
itemQuantityChanged
Event fired whenever a StackableInventoryItem quantity changes.
Declaration
event Action<IQuantifiable, long> itemQuantityChanged
Event Type
| Type | Description |
|---|---|
| Action<IQuantifiable, Int64> |
itemRemovedFromCollection
Event fired whenever an InventoryItem is removed from an IItemCollection.
Declaration
event Action<IItemCollection, InventoryItem> itemRemovedFromCollection
Event Type
| Type | Description |
|---|---|
| Action<IItemCollection, InventoryItem> |