public void Unload() { Log.Info(Log.LogSource.PoxDB, "Database.Unload() called"); if (!ready) { return; } // todo: what if it is loading? Champions.Clear(); Abilities.Clear(); Abilities_similar.Clear(); Spells.Clear(); Relics.Clear(); Equipments.Clear(); Factions.Clear(); Races.Clear(); Classes.Clear(); Rarities.Clear(); Expansions.Clear(); AbilityNames.Clear(); ready = false; }
private void CreateChampionIndex(Progression progression, StringVersion gameVersion, string staticResourceRootDirectory) { progression.StartNextStep(LoLStaticResourceCacheResources.CreateChampionIndexProgressStepDescription); Champions.Clear(); ChampionNameToIdIndex.Clear(); var championCollectionFile = Path.Combine(staticResourceRootDirectory, gameVersion.ToString(), "data", "en_US", "champion.json"); var championCollectionFileText = File.ReadAllText(championCollectionFile); var championCollection = JObject.Parse(championCollectionFileText); var numberOfChampions = championCollection["data"] !.Children().Count(); var currentChampionIndex = 0; foreach (var championJson in championCollection["data"] !.Children()) { progression.CurrentStepProgress = currentChampionIndex++ / (double)numberOfChampions; var champion = ToChampion(championJson.First !, gameVersion, staticResourceRootDirectory); if (!Champions.TryAdd(champion.Id, champion)) { throw new Exception($"The champion id {champion.Id} has been defined multiple times!"); } if (!ChampionNameToIdIndex.TryAdd(champion.Name, champion.Id)) { throw new Exception($"The champion name {champion.Name} has been defined multiple times!"); } } }