* Initial work on moving container space checks into new class
* Updated tests
Wired up service to save item into inventory when space is found
Updated `FillContainerMapWithItem` to return outcome and not throw exception on failure
Add containers to bot when generating bot equipment
Clean bot cache after completion of loot generation
Removed redundant code from `AddItemWithChildrenToEquipmentSlot`
Removed unnecessary Singleton status from `BotInventoryContainerService`
* Clean-up of service
* Add botId xml docs
* Updated documentation for `FillContainerMapWithItem`
* Code review fixes and improvements
* Remove TODO
---------
Co-authored-by: Chomp <dev@dev.sp-tarkov.com>
Trader assort generation performance improvements
Removed use of recursion inside `FindAndReturnChildrenByAssort`
Created extension method `CreateParentIdLookupCache`
Reduced number of enumerations of `itemWithChildren` inside AddItemWithChildrenToEquipmentSlot()` by converting children to list at start of method
Applied additional filtering to child items collection inside `GetContainerItemsWithChildren()`
Convert constructors into primary constructors
Simplified logic with use of ??, ??= and method groups
Cleaned up redundant conditional access qualifiers
* Rewrote container item space system to use 2 dimensional arrays
* Moved container helper code into extension methods
* Reduced amount of parameters passed into `RowIsFull`
* Skip root trader items
* Remove debug
---------
Co-authored-by: Chomp <dev@dev.sp-tarkov.com>
* chore: Bot generation performance improvements (#227)
* Bot generation performance improvements
* Revert debug logging logic
* Get rid of Info log which is bound to be printed inevitably at each bot wave generation
* Use assault const
* Removed comments
Removed lowercase side constants
Renamed equipment role to better explain its purpose
Fixed `Blocks` property being serialised to client
Updated `_slotsWithNoCompatIssues` to use existing enum type
Reduced log line to be debug
* Fixed `GetRandomTextThatMatchesPartialKey` incorrectly checking eft locales instead of spt locales
* Updated various methods to be protected
---------
Co-authored-by: hulkhan22 <clandestine984@gmail.com>
Co-authored-by: Chomp <dev@dev.sp-tarkov.com>