Ejemplo n.º 1
0
        /// <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;
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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;
        }