From 5a1ed7942d981be794bfb8c742d805a91ce0ad10 Mon Sep 17 00:00:00 2001 From: Chomp Date: Mon, 24 Feb 2025 20:55:57 +0000 Subject: [PATCH] Improved logic for filtering items inside `GetContainerItemsWithChildren` --- Libraries/Core/Helpers/BotGeneratorHelper.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Libraries/Core/Helpers/BotGeneratorHelper.cs b/Libraries/Core/Helpers/BotGeneratorHelper.cs index 94137e73..c8a3784e 100644 --- a/Libraries/Core/Helpers/BotGeneratorHelper.cs +++ b/Libraries/Core/Helpers/BotGeneratorHelper.cs @@ -697,15 +697,16 @@ public class BotGeneratorHelper( { var result = new List(); - // Filter out all root items before we look for children in below loop - var nonRootItems = inventoryItems.Where(item => !string.Equals(item.ParentId,"hideout", StringComparison.Ordinal)).ToList(); - foreach (var item in containerRootItems) + // Filter out all items without location prop, (child items) + var itemsWithoutLocation = inventoryItems.Where(item => item.Location is null).ToList(); + foreach (var rootItem in containerRootItems) { // Check item in container for children, store for later insertion into `containerItemsToCheck` // (used later when figuring out how much space weapon takes up) - var itemWithChildItems = _itemHelper.FindAndReturnChildrenAsItems(nonRootItems, item.Id); + var itemWithChildItems = _itemHelper.FindAndReturnChildrenAsItems(itemsWithoutLocation, rootItem.Id); - // Item had children, replace existing data with item + its children + // Item had children, replace existing data with item + its children + result.Add(rootItem); result.AddRange(itemWithChildItems); }