2.7.1
Engine support: 5.3 and 5.4
This update might cause a few compile errors for those updating, the interaction interface has been split into two and some functions have been removed. Greatly simplifying the process of implementing a custom interaction system. On top of that, the tile and item widgets have been updated, drastically improving their performance.
Inventory
GetFirstAvailableTile is now on average 6-12 times faster in large containers. This has significantly sped up item sorting and StartComponent in scenarios where containers have random tiles assigned to items, so for save files or items with assigned tiles, this won't have an impact.
Added TryAddNewItemByDataAsset function.
Added CheckForSpaceForShape function.
Added GetOwningItemForContainer function.
Added DoesContainerBelongToComponentOwner function.
Widgets
W_Tile -> ParentContainer is now exposed on spawn. WBP_InventoryItem -> GetSize and GetDimensions have been deprecated.
A lot of performance improvements have been made:
WBP_DemoInventoryItem has been optimized. If no custom shape object is found, it'll just spawn one background tile and stretch it across the items size.
Drawing the custom shape for custom shaped grid items is now twice as fast.
The demo tile construction time has been reduced from 0.034ms on average to 0.013ms on average, drastically reducing the hitch from opening a very large container.
Several improvements to a handful of functions and widget hierarchies have been improved and drastically reduced the spike when opening the inventory for the first time.
The
SizeBox
requirement has been removed from W_Tile. Documentation has been updated.Demo widgets have been updated to no longer use a
SizeBox
.
Interfaces
BPI_Interaction has been split in two and some functions removed. Added new interface BPI_IFP_Helpers to simplify custom interaction system implementations. Documentation updated.
BPI_Interaction has been moved into the demo folder to help make it clear that it is an example interaction system.
Bugs
Highlight widget was broken on Infinite grids
W_Tile was causing crashes in some scenarios
Moving an item as a client would cause the item widget variable to go null
Infinite grids wouldn't resize in some scenarios.
CanSwapLocations could cause a crash for clients and would give false positives in some scenarios.
IsTileValid would report false positives in some scenarios for infinite containers.
2.7.1 bug fixes (5.4 only)
All of these fixes are very small and can easily be manually implemented. Reference the bug-fixes
channel on the discord posts between 27th March - 15th April
GetItemDriver was not returning the correct driver.
TryAddNewItem Could fail in some scenarios.
The item data in the quick loot window could become stale in some scenarios, causing the MoveItem to fail.
Item icons could squish when re-opening the inventory.
When revealing hidden equipment, the equipment events were being called with the wrong data.
Splitting an item would cause the original item widget to behave as if it was item 0 in its container.
DataObject for drivers was not replicated.
Color Sheet:
functions - variable - category - class