Items & Inventories - MassiveMiniteam/OddModKit GitHub Wiki
FItemStack
An item stack consist of ItemConfig (UItemConfig*), Amount (int) and Data (UItemStackData*).
Generally all operations on inventories or costs / prices are handled with ItemStacks.
ItemConfig
An ItemConfig defines a new item type. It specifies name, stack size, meshes etc.
InventoryComponent
An InventoryComponent holds a set amount of ItemStacks. It provides functions to add, consume, merge and transfer item stacks.
The player has one PlayerInventory and a CursorInventory for example. A workstation usually has an InputInventory, OutputInventory and WorkerInventory (for the sparks).
You can specify InventoryRules to handle rules on specific slots. For example a workstation adds a UInventoryRuleAllowItem to its InputInventory for each recipe input item to only allow a certain item.
InventoryRule
InventoryRules allow or disallow items in InventoryComponents. For example the SignPost only allows one item or a Sawbench WorkerInventory only one spark per slot.
BaseResource
BP_S_BaseResource and BP_P_BaseResource are the actors for an Item Object. An item that drops from a harvestable for example.
CarryComponent
A CarryComponent can pickup BaseResources. For performance reasons the BaseResource is not actually picked up but the mesh is parented to the spark.