/// <summary> /// Clear all existing WordCountStorage objects. This should be used when songs are refreshed. /// </summary> public void ClearCache() { Logger.log.Info("Clearing word prediction storage cache"); _cache.Clear(); _activeWordStorage = null; }
public void SetActiveWordStorageFromLevelPack(IBeatmapLevelPack levelPack) { if (!_cache.TryGetValue(levelPack.packName, out var storage)) { storage = new WordCountStorage(levelPack); // never cache filtered level packs if (!(levelPack.packName == UI.SongListUI.FilteredSongsPackName) && !Tweaks.SongBrowserTweaks.IsFilterApplied()) { _cache[levelPack.packName] = storage; } } _activeWordStorage = storage; }
public void SetActiveWordStorageFromLevelPack(IAnnotatedBeatmapLevelCollection levelCollection) { WordCountStorage storage; IBeatmapLevelPack levelPack = levelCollection as IBeatmapLevelPack; string collectionName = levelCollection.collectionName; bool storageWasCached; if (levelPack != null) { storageWasCached = _cache.TryGetValue(levelPack.packID, out storage); } else { storageWasCached = _cache.TryGetValue(collectionName.Replace(SortedLevelsLevelPack.PackIDSuffix, ""), out storage); } if (!storageWasCached) { storage = new WordCountStorage(levelCollection); // never cache filtered/built-in favorites level packs // NOTE: ESAF filtered level pack should already be sorted (will never have sorted level pack suffix) if (levelPack != null && levelPack.packID != FilteredLevelsLevelPack.PackID && !SongBrowserTweaks.IsFilterApplied()) { _cache[levelPack.packID] = storage; } else if (collectionName != FilteredLevelsLevelPack.CollectionName && collectionName != BuiltInFavouritesPackCollectionName && collectionName != BuiltInFavouritesPackCollectionName + SortedLevelsLevelPack.PackIDSuffix && collectionName != SortedLevelsLevelPack.PackIDSuffix) { _cache[collectionName.Replace(SortedLevelsLevelPack.PackIDSuffix, "")] = storage; } } _activeWordStorage = storage; }