public ItemDataManager() { // Load standard items foreach (var item in DiscoverItems()) { var key = CreateItemKey(item); if (ItemBlacklist.Includes(key)) { continue; } if (Prototypes.ContainsKey(key)) { continue; } Prototypes.Add(key, item); } // Create Categories Categories = Prototypes.Keys .GroupBy(GetCategoryName) .ToDictionary( g => g.Key, g => (IList <ItemKey>)g.ToList() ); }
public ItemKey GetItemKey(Item item) { if (item == null) { throw new Exception(); } var key = CreateItemKey(item); if (Prototypes.ContainsKey(key)) { return(key); } // Add to prototypes Prototypes.Add(key, item); var category = GetCategoryName(key); ModEntry.Log($"Added prototype for '{item.DisplayName}' ({key}) to category '{category}'", LogLevel.Debug); // Add to categories, if not blacklisted if (ItemBlacklist.Includes(key)) { return(key); } if (!Categories.ContainsKey(category)) { Categories.Add(category, new List <ItemKey>()); } if (!Categories[category].Contains(key)) { Categories[category].Add(key); } return(key); }