public bool AddUsedItems(Dictionary <string, Dictionary <string, HashSet <int> > > newItems) { bool newValues = false; lock (huntLock) { foreach (var val in newItems) { Item item = StorageManager.getItem(val.Key); if (item == null) { continue; } if (!this.usedItems.ContainsKey(item)) { this.usedItems.Add(item, new OrderedHashSetCollection()); } var collection = this.usedItems[item]; int currentCount = collection.GetItemCount(); collection.UpdateHashSet(val.Value); if (collection.GetItemCount() > currentCount) { newValues = true; } } if (newValues) { LootDatabaseManager.UpdateUsedItems(this); } } return(newValues); }