The one that allows Item Processors to work with items being placed into the inventory
This release is for Unreal 5.0 and Unreal 5.1
- Breaking Change - Stacking behavior is disabled by default. You will need an ArcInventoryProcessor_Stacking on your inventory component to enable default stacking behavior.
- Breaking Change -
MergeItemStackshave been deleted and moved to
Breaking Change - * the Signature for UArcInventoryComponent
bool AcceptsItem(UArcItemStackBase* Item, const FArcInventoryItemSlotReference& ToSlot, FArcInventoryItemSlotReference FromSlot)and
bool AcceptsItem_AssumeEmptySlot(UArcItemStackBase* Item, const FArcInventoryItemSlotReference& Slot, FArcInventoryItemSlotReference FromSlot);(Added the third parameter)
Major Change - Inventory Processors can now control how items are placed into inventories!
EArcItemSlotAcceptance SlotAcceptsItem(UArcItemStackModular* ItemStack, const FArcInventoryItemSlotReference& Slot, FArcInventoryItemSlotReference FromSlot)to the Inventory Processor (and blueprint override) to determine if an item can be placed into an item slot. FromSlot will be invalid if coming from the world
EArcSourceItemState ProcessItemSlotSwap(UArcItemStackModular* SourceItem, FArcInventoryItemSlotReference FromSlot, UArcItemStackModular* DestItem, FArcInventoryItemSlotReference ToSlot)to Inventory Processor to allow the processor to change the SourceItem. From Slot will be invalid if the item is coming from nowhere (like being looted). This allows processors to change the behavior of SourceItem, such as stacking it into DestItem if possible.
Major Change - Inventory Processors can now weight item slots for Loot Item
- LootItem() now gets a list of all valid slots that an item can go into, sorts them by their weighted value, and tries to put the item into them in sequence.
Processors can override
int ItemSlotWeightForItem(UArcItemStackModular* ItemStack, const FArcInventoryItemSlotReference& Slot, FGameplayTag LootTag)to return a weight value that is added to the total weight for that item slot. Loot Tag is passed in by LootItem
Fixed a bug where swapping items between inventories wasn't working
- Fixed a bug where the Resizing Bag wasn't working
- Fixed ArcInventoryComponent_Modular not blueprint spawnable
- Fixed a bug where swapping items between two slots would not re-add abilities.
- Fixed a bug where the Ability Active event would fire multiple times
- ArcItemStackWorldObject now uses experimental subobject replication lists
- Fixed various instances of the engine complaining about properties not initialized properly