Example #1
0
 RemoveFromPlaylistController(StandardLevelDetailViewController standardLevelDetailViewController, AnnotatedBeatmapLevelCollectionsViewController annotatedBeatmapLevelCollectionsViewController, LevelCollectionViewController levelCollectionViewController)
 {
     this.standardLevelDetailViewController = standardLevelDetailViewController;
     this.annotatedBeatmapLevelCollectionsViewController = annotatedBeatmapLevelCollectionsViewController;
     this.levelCollectionViewController = levelCollectionViewController;
     parsed = false;
 }
 private void LevelCollectionViewController_didSelectLevelEvent(LevelCollectionViewController levelCollectionViewController, IPreviewBeatmapLevel beatmapLevel)
 {
     foreach (IPreviewBeatmapLevelUpdater previewBeatmapLevelUpdater in previewBeatmapLevelUpdaters)
     {
         previewBeatmapLevelUpdater.PreviewBeatmapLevelUpdated(beatmapLevel);
     }
 }
Example #3
0
        private void BSEvents_levelSelected(LevelCollectionViewController arg1, IPreviewBeatmapLevel level)
        {
            if (level is CustomPreviewBeatmapLevel)
            {
                var customLevel = level as CustomPreviewBeatmapLevel;
                //       Logging.Log((level as CustomPreviewBeatmapLevel).customLevelPath);
                Data.ExtraSongData songData = Collections.RetrieveExtraSongData(Hashing.GetCustomLevelHash(customLevel), customLevel.customLevelPath);
                Collections.SaveExtraSongData();

                if (songData == null)
                {
                    //          Logging.Log("Null song Data");
                    return;
                }
                //      Logging.Log($"Platforms Installed: {PlatformsInstalled}. Platforms enabled: {customSongPlatforms}");

                if (customSongPlatforms && !string.IsNullOrWhiteSpace(songData._customEnvironmentName))
                {
                    Utilities.Logging.logger.Debug("Custom song with platform selected");
                    CustomSongPlatformSelectionDidChange?.Invoke(true, songData._customEnvironmentName, songData._customEnvironmentHash, level);
                }
                else
                {
                    CustomSongPlatformSelectionDidChange?.Invoke(false, songData._customEnvironmentName, songData._customEnvironmentHash, level);
                }
            }
        }
Example #4
0
        private void OnLevelSelected(LevelCollectionViewController levelCollection, IPreviewBeatmapLevel level)
        {
            List <string> requiredMods = new List <string>();
            List <string> customMods   = new List <string>();

            if (level is CustomPreviewBeatmapLevel customLevel)
            {
                var saveData = customLevel.standardLevelInfoSaveData as CustomLevelInfoSaveData;
                foreach (CustomLevelInfoSaveData.DifficultyBeatmapSet difficulties in saveData.difficultyBeatmapSets)
                {
                    foreach (CustomLevelInfoSaveData.DifficultyBeatmap difficulty in difficulties.difficultyBeatmaps)
                    {
                        List <object> requirements = CustomJSONData.Trees.at(difficulty.customData, "_requirements");
                        if (requirements != null && requirements.Count > 0)
                        {
                            foreach (object i in requirements)
                            {
                                requiredMods.Add(i.ToString());
                            }
                        }
                        List <object> customPlugins = CustomJSONData.Trees.at(difficulty.customData, "_customPlugins");
                        if (customPlugins != null && customPlugins.Count > 0)
                        {
                            foreach (object i in customPlugins)
                            {
                                customMods.Add(i.ToString());
                            }
                        }
                    }
                }
                CheckCustomMods(requiredMods.ToArray(), customMods.ToArray(), level);
            }
        }
 public void Constractor(DiContainer container)
 {
     this._levelCollectionViewController                  = container.Resolve <LevelCollectionViewController>();
     this._levelFilteringNavigationController             = container.Resolve <LevelFilteringNavigationController>();
     this._annotatedBeatmapLevelCollectionsViewController = container.Resolve <AnnotatedBeatmapLevelCollectionsViewController>();
     this._selectLevelCategoryViewController              = container.Resolve <SelectLevelCategoryViewController>();
 }
Example #6
0
        private void BSEvents_levelSelected(LevelCollectionViewController arg1, IPreviewBeatmapLevel level)
        {
            if (level is CustomPreviewBeatmapLevel)
            {
                var customLevel = level as CustomPreviewBeatmapLevel;
                //       Logging.Log((level as CustomPreviewBeatmapLevel).customLevelPath);
                Data.ExtraSongData songData = Collections.RetrieveExtraSongData(Hashing.GetCustomLevelHash(customLevel), customLevel.customLevelPath);
                Collections.SaveExtraSongData();

                if (songData == null)
                {
                    //          Logging.Log("Null song Data");
                    return;
                }
                //      Logging.Log($"Platforms Installed: {PlatformsInstalled}. Platforms enabled: {customSongPlatforms}");
                if (PlatformsInstalled && customSongPlatforms)
                {
                    if (!string.IsNullOrWhiteSpace(songData._customEnvironmentName))
                    {
                        if (findCustomEnvironment(songData._customEnvironmentName) == -1)
                        {
                            Console.WriteLine("CustomPlatform not found: " + songData._customEnvironmentName);
                            if (!string.IsNullOrWhiteSpace(songData._customEnvironmentHash))
                            {
                                Console.WriteLine("Downloading with hash: " + songData._customEnvironmentHash);
                                SharedCoroutineStarter.instance.StartCoroutine(downloadCustomPlatform(songData._customEnvironmentHash, songData._customEnvironmentName));
                            }
                        }
                    }
                }
            }
        }
Example #7
0
 public void HandleDidSelectLevel(LevelCollectionViewController sender, IPreviewBeatmapLevel level)
 {
     selectedLevel = level;
     selectedVideo = null;
     ChangeView(false);
     Plugin.logger.Debug("Selected Level: " + level.songName);
 }
Example #8
0
        /// <summary>
        /// Constructor.  Acquire all necessary BeatSaberUi elements.
        /// </summary>
        /// <param name="flowCoordinator"></param>
        public BeatSaberUIController(LevelSelectionFlowCoordinator flowCoordinator)
        {
            Logger.Debug("Collecting all BeatSaberUI Elements...");

            LevelSelectionFlowCoordinator = flowCoordinator;

            // gather flow coordinator elements
            LevelSelectionNavigationController = LevelSelectionFlowCoordinator.GetField <LevelSelectionNavigationController, LevelSelectionFlowCoordinator>("levelSelectionNavigationController");
            Logger.Debug("Acquired LevelSelectionNavigationController [{0}]", LevelSelectionNavigationController.GetInstanceID());

            LevelFilteringNavigationController = LevelSelectionNavigationController.GetField <LevelFilteringNavigationController, LevelSelectionNavigationController>("_levelFilteringNavigationController");
            Logger.Debug("Acquired LevelFilteringNavigationController [{0}]", LevelFilteringNavigationController.GetInstanceID());

            LevelCollectionNavigationController = LevelSelectionNavigationController.GetField <LevelCollectionNavigationController, LevelSelectionNavigationController>("_levelCollectionNavigationController");
            Logger.Debug("Acquired LevelCollectionNavigationController [{0}]", LevelCollectionNavigationController.GetInstanceID());

            LevelCollectionViewController = LevelCollectionNavigationController.GetField <LevelCollectionViewController, LevelCollectionNavigationController>("_levelCollectionViewController");
            Logger.Debug("Acquired LevelPackLevelsViewController [{0}]", LevelCollectionViewController.GetInstanceID());

            LevelDetailViewController = LevelCollectionNavigationController.GetField <StandardLevelDetailViewController, LevelCollectionNavigationController>("_levelDetailViewController");
            Logger.Debug("Acquired StandardLevelDetailViewController [{0}]", LevelDetailViewController.GetInstanceID());

            LevelCollectionTableView = this.LevelCollectionViewController.GetField <LevelCollectionTableView, LevelCollectionViewController>("_levelCollectionTableView");
            Logger.Debug("Acquired LevelPackLevelsTableView [{0}]", LevelCollectionTableView.GetInstanceID());

            StandardLevelDetailView = LevelDetailViewController.GetField <StandardLevelDetailView, StandardLevelDetailViewController>("_standardLevelDetailView");
            Logger.Debug("Acquired StandardLevelDetailView [{0}]", StandardLevelDetailView.GetInstanceID());

            BeatmapCharacteristicSelectionViewController = StandardLevelDetailView.GetField <BeatmapCharacteristicSegmentedControlController, StandardLevelDetailView>("_beatmapCharacteristicSegmentedControlController");
            Logger.Debug("Acquired BeatmapCharacteristicSegmentedControlController [{0}]", BeatmapCharacteristicSelectionViewController.GetInstanceID());

            LevelDifficultyViewController = StandardLevelDetailView.GetField <BeatmapDifficultySegmentedControlController, StandardLevelDetailView>("_beatmapDifficultySegmentedControlController");
            Logger.Debug("Acquired BeatmapDifficultySegmentedControlController [{0}]", LevelDifficultyViewController.GetInstanceID());

            LevelCollectionTableViewTransform = LevelCollectionTableView.transform as RectTransform;
            Logger.Debug("Acquired TableViewRectTransform from LevelPackLevelsTableView [{0}]", LevelCollectionTableViewTransform.GetInstanceID());

            AnnotatedBeatmapLevelCollectionsViewController = LevelFilteringNavigationController.GetField <AnnotatedBeatmapLevelCollectionsViewController, LevelFilteringNavigationController>("_annotatedBeatmapLevelCollectionsViewController");
            Logger.Debug("Acquired AnnotatedBeatmapLevelCollectionsViewController from LevelFilteringNavigationController [{0}]", AnnotatedBeatmapLevelCollectionsViewController.GetInstanceID());

            TableView  tableView  = LevelCollectionTableView.GetField <TableView, LevelCollectionTableView>("_tableView");
            ScrollView scrollView = tableView.GetField <ScrollView, TableView>("_scrollView");

            TableViewPageUpButton   = scrollView.GetField <Button, ScrollView>("_pageUpButton");
            TableViewPageDownButton = scrollView.GetField <Button, ScrollView>("_pageDownButton");
            Logger.Debug("Acquired Page Up and Down buttons...");

            ActionButtons = StandardLevelDetailView.GetComponentsInChildren <RectTransform>().First(x => x.name == "ActionButtons");
            Logger.Debug("Acquired ActionButtons [{0}]", ActionButtons.GetInstanceID());

            ScreenSystem = Resources.FindObjectsOfTypeAll <ScreenSystem>().Last();
            Logger.Debug("Acquired ScreenSystem [{0}]", ScreenSystem.GetInstanceID());

            SimpleDialogPromptViewControllerPrefab = Resources.FindObjectsOfTypeAll <SimpleDialogPromptViewController>().Last();
            Logger.Debug("Acquired SimpleDialogPromptViewControllerPrefab [{0}]", SimpleDialogPromptViewControllerPrefab.GetInstanceID());

            BeatmapLevelsModel = Resources.FindObjectsOfTypeAll <BeatmapLevelsModel>().Last();
            Logger.Debug("Acquired BeatmapLevelsModel [{0}]", BeatmapLevelsModel);
        }
 private void BSEvents_levelSelected(LevelCollectionViewController vc, IPreviewBeatmapLevel level)
 {
     if (NoFailPressCount != 0)
     {
         // reset press count
         NoFailPressCount = 0;
     }
 }
 PlaylistViewController(LevelPackDetailViewController levelPackDetailViewController, AnnotatedBeatmapLevelCollectionsViewController annotatedBeatmapLevelCollectionsViewController, LevelCollectionViewController levelCollectionViewController)
 {
     this.levelPackDetailViewController = levelPackDetailViewController;
     this.annotatedBeatmapLevelCollectionsViewController = annotatedBeatmapLevelCollectionsViewController;
     this.levelCollectionViewController = levelCollectionViewController;
     tokenSource = new CancellationTokenSource();
     parsed      = false;
 }
Example #11
0
        public void Constractor(LevelCollectionViewController levelView)
        {
            this._levelCollectionViewController = levelView;

            this.levelCollectionTableView = this._levelCollectionViewController.GetField <LevelCollectionTableView, LevelCollectionViewController>("_levelCollectionTableView");
            this.levelCollectionTableView.didSelectLevelEvent += this.TableView_didSelectLevelEvent;
            Loader.OnLevelPacksRefreshed += this.Loader_OnLevelPacksRefreshed;
        }
Example #12
0
 internal void Construct(PlayerAvatarManager avatarManager, DiContainer container, PlayerOptionsViewController playerOptionsViewController, LevelCollectionViewController levelCollectionViewController, PlatformLeaderboardViewController leaderboardViewController)
 {
     _avatarManager = avatarManager;
     _container     = container;
     _playerOptionsViewController   = playerOptionsViewController;
     _levelCollectionViewController = levelCollectionViewController;
     _leaderboardViewController     = leaderboardViewController;
 }
 PlaylistUIManager(AnnotatedBeatmapLevelCollectionsViewController annotatedBeatmapLevelCollectionsViewController, SelectLevelCategoryViewController selectLevelCategoryViewController, PlaylistViewController playlistViewController, ILevelCollectionUpdater levelCollectionUpdater, LevelCollectionViewController levelCollectionViewController, List <IPreviewBeatmapLevelUpdater> previewBeatmapLevelUpdaters)
 {
     this.annotatedBeatmapLevelCollectionsViewController = annotatedBeatmapLevelCollectionsViewController;
     this.selectLevelCategoryViewController = selectLevelCategoryViewController;
     this.playlistViewController            = playlistViewController;
     this.levelCollectionUpdater            = levelCollectionUpdater;
     this.levelCollectionViewController     = levelCollectionViewController;
     this.previewBeatmapLevelUpdaters       = previewBeatmapLevelUpdaters;
 }
Example #14
0
        /// <summary>
        /// Constructor.  Acquire all necessary BeatSaberUi elements.
        /// </summary>
        /// <param name="flowCoordinator"></param>
        public BeatSaberUIController(FlowCoordinator flowCoordinator)
        {
            Logger.Debug("Collecting all BeatSaberUI Elements...");

            LevelSelectionFlowCoordinator = flowCoordinator;

            // gather flow coordinator elements
            LevelSelectionNavigationController = LevelSelectionFlowCoordinator.GetPrivateField <LevelSelectionNavigationController>("_levelSelectionNavigationController");
            Logger.Debug("Acquired LevelSelectionNavigationController [{0}]", LevelSelectionNavigationController.GetInstanceID());

            // this is loaded late but available early, grab globally.
            LevelFilteringNavigationController = Resources.FindObjectsOfTypeAll <LevelFilteringNavigationController>().First();
            //LevelSelectionFlowCoordinator.GetPrivateField<LevelFilteringNavigationController>("_levelFilteringNavigationController");
            Logger.Debug("Acquired LevelFilteringNavigationController [{0}]", LevelFilteringNavigationController.GetInstanceID());

            // grab nav controller elements
            LevelCollectionViewController = LevelSelectionNavigationController.GetPrivateField <LevelCollectionViewController>("_levelCollectionViewController");
            Logger.Debug("Acquired LevelPackLevelsViewController [{0}]", LevelCollectionViewController.GetInstanceID());

            LevelDetailViewController = LevelSelectionNavigationController.GetPrivateField <StandardLevelDetailViewController>("_levelDetailViewController");
            Logger.Debug("Acquired StandardLevelDetailViewController [{0}]", LevelDetailViewController.GetInstanceID());

            // grab level collection view controller elements
            LevelCollectionTableView = this.LevelCollectionViewController.GetPrivateField <LevelCollectionTableView>("_levelCollectionTableView");
            Logger.Debug("Acquired LevelPackLevelsTableView [{0}]", LevelCollectionTableView.GetInstanceID());

            // grab letel detail view
            StandardLevelDetailView = LevelDetailViewController.GetPrivateField <StandardLevelDetailView>("_standardLevelDetailView");
            Logger.Debug("Acquired StandardLevelDetailView [{0}]", StandardLevelDetailView.GetInstanceID());

            BeatmapCharacteristicSelectionViewController = Resources.FindObjectsOfTypeAll <BeatmapCharacteristicSegmentedControlController>().First();
            Logger.Debug("Acquired BeatmapCharacteristicSegmentedControlController [{0}]", BeatmapCharacteristicSelectionViewController.GetInstanceID());

            LevelDifficultyViewController = StandardLevelDetailView.GetPrivateField <BeatmapDifficultySegmentedControlController>("_beatmapDifficultySegmentedControlController");
            Logger.Debug("Acquired BeatmapDifficultySegmentedControlController [{0}]", LevelDifficultyViewController.GetInstanceID());

            LevelCollectionTableViewTransform = LevelCollectionTableView.transform as RectTransform;
            Logger.Debug("Acquired TableViewRectTransform from LevelPackLevelsTableView [{0}]", LevelCollectionTableViewTransform.GetInstanceID());

            TableView tableView = LevelCollectionTableView.GetPrivateField <TableView>("_tableView");

            TableViewPageUpButton   = tableView.GetPrivateField <Button>("_pageUpButton");
            TableViewPageDownButton = tableView.GetPrivateField <Button>("_pageDownButton");
            Logger.Debug("Acquired Page Up and Down buttons...");

            PlayContainer = StandardLevelDetailView.GetComponentsInChildren <RectTransform>().First(x => x.name == "PlayContainer");
            PlayButtons   = PlayContainer.GetComponentsInChildren <RectTransform>().First(x => x.name == "PlayButtons");

            PlayButton     = Resources.FindObjectsOfTypeAll <Button>().First(x => x.name == "PlayButton");
            PracticeButton = PlayButtons.GetComponentsInChildren <Button>().First(x => x.name == "PracticeButton");

            SimpleDialogPromptViewControllerPrefab = Resources.FindObjectsOfTypeAll <SimpleDialogPromptViewController>().First();

            BeatmapLevelsModel = Resources.FindObjectsOfTypeAll <BeatmapLevelsModel>().First();
        }
Example #15
0
        private void OnLevelSelected(LevelCollectionViewController _, IPreviewBeatmapLevel level)
        {
            int           capacity = level.levelID.Length + PluginConfig.LastLevelIDSeparator.Length * 2 + level.songName.Length + level.levelAuthorName.Length;
            StringBuilder sb       = new StringBuilder(level.levelID, capacity);

            sb.Append(PluginConfig.LastLevelIDSeparator);
            sb.Append(level.songName);
            sb.Append(PluginConfig.LastLevelIDSeparator);
            sb.Append(level.levelAuthorName);

            PluginConfig.LastLevelID = sb.ToString();
        }
Example #16
0
        public static void Init()
        {
            _songBrowserUI = Resources.FindObjectsOfTypeAll <SongBrowserUI>().First();
            var sortButtonGroup = _songBrowserUI.GetPrivateField <List <SongSortButton> >("_sortButtonGroup");

            _levelCollectionViewController = Resources.FindObjectsOfTypeAll <LevelCollectionViewController>().First();

            float          ppHelperButtonX = GetButtonX(sortButtonGroup.Count);
            SongSortButton ppHelperButton  = CreateSortButton(ppHelperButtonX, "PP Helper", "PPHelper", SortHandler);

            sortButtonGroup.Add(ppHelperButton);
        }
        public void Constraactor(SoloFreePlayFlowCoordinator soloFreePlayFlowCoordinator, LevelCollectionViewController levelCollectionViewController, RequestFlowCoordinator requestFlowCoordinator, RequestBot bot)
        {
            _soloFlowCoordinator           = soloFreePlayFlowCoordinator;
            _levelCollectionViewController = levelCollectionViewController;
            _flowCoordinator     = requestFlowCoordinator;
            _bot                 = bot;
            _bot.RecevieRequest += this._bot_RecevieRequest;

            _bot.Dismiss         += this.Bot_Dismiss;
            _bot.UpdateUI        += this._bot_UpdateUI;
            this.transform.parent = _levelCollectionViewController.rectTransform;
        }
        public static void Initialize()
        {
            _levelCollectionViewController = Resources.FindObjectsOfTypeAll <LevelCollectionViewController>().FirstOrDefault();

            if (!_initialized)
            {
                try
                {
                    _initialized = true;
                }
                catch (Exception e)
                {
                    Plugin.Log($"Exception {e}");
                }
            }
        }
Example #19
0
        public static void Initialize()
        {
            _levelCollectionViewController = Resources.FindObjectsOfTypeAll <LevelCollectionViewController>().FirstOrDefault();

            _pre120 = IPA.Utilities.UnityGame.GameVersion.SemverValue.Minor < 20;
            if (!_initialized)
            {
                try
                {
                    _initialized = true;
                }
                catch (Exception e)
                {
                    Plugin.Log($"Exception {e}");
                }
            }
        }
        //private static bool _songBrowserInstalled = false;
        //private static bool _songDownloaderInstalled = false;

        public static void Initialize()
        {
            _levelCollectionViewController = Resources.FindObjectsOfTypeAll <LevelCollectionViewController>().FirstOrDefault();

            if (!_initialized)
            {
                try
                {
                    //_songBrowserInstalled = false; // Utilities.IsModInstalled("Song Browser");
                    //_songDownloaderInstalled = false; // IPA.Loader.PluginManager.GetPlugin("BeatSaver Downloader") != null;

                    //Plugin.Log($"Song Browser installed: {_songBrowserInstalled}");
                    //Plugin.Log($"Downloader installed: {_songDownloaderInstalled}");
                    _initialized = true;
                }
                catch (Exception e)
                {
                    Plugin.Log($"Exception {e}");
                }
            }
        }
Example #21
0
        private void BSEvents_levelSelected(LevelCollectionViewController arg1, IPreviewBeatmapLevel level)
        {
            if (level is CustomPreviewBeatmapLevel customLevel)
            {
                var songData = Collections.RetrieveExtraSongData(Hashing.GetCustomLevelHash(customLevel));

                if (songData == null)
                {
                    return;
                }

                if (Configuration.CustomSongPlatforms && !string.IsNullOrWhiteSpace(songData._customEnvironmentName))
                {
                    Logging.Logger.Debug("Custom song with platform selected");
                    CustomSongPlatformSelectionDidChange?.Invoke(true, songData._customEnvironmentName, songData._customEnvironmentHash, customLevel);
                }
                else
                {
                    CustomSongPlatformSelectionDidChange?.Invoke(false, songData._customEnvironmentName, songData._customEnvironmentHash, customLevel);
                }
            }
        }
        private void LevelCollectionViewController_didSelectLevelEvent(LevelCollectionViewController arg1, IPreviewBeatmapLevel arg2)
        {
            this.Beatmap = arg2;
            Logger.Info($"Selected Beatmaplevel, [{arg2.songName} : {arg2.GetBeatmapHash()}]");

            if (arg2.IsCustom())
            {
                this._playlistButton.interactable = true;
            }
            else if (arg2.IsWip())
            {
                this._playlistButton.interactable = false;
            }
            else if (arg2.IsOfficial())
            {
                this._playlistButton.interactable = true;
            }
            else
            {
                this._playlistButton.interactable = false;
            }

            this._modal?.Hide(true);
        }
        private static async void LevelSelected(LevelCollectionViewController lcvc, IPreviewBeatmapLevel level)
        {
            Texture2D tex;

            try
            {
                tex = (await level.GetCoverImageAsync(System.Threading.CancellationToken.None)).texture;
            }
            catch
            {
                tex = GetFromUnreadable((level as CustomPreviewBeatmapLevel)?.defaultCoverImage.texture);
            }
            if (!(level is CustomPreviewBeatmapLevel) || tex == null || !tex.isReadable)
            {
                tex = GetFromUnreadable(tex);
            }

            var scheme = new ColorScheme("CoverSaber", "Cover Saber", true, "Cover Saber", false, Color.white, Color.white, Color.white, Color.white, true, Color.white, Color.white, Color.white);
            var colors = new List <ColorThief.QuantizedColor>();
            await Task.Run(async() => { var data = await CoverColorManager.GetSchemeFromCoverImage(tex, level.levelID); scheme = CoverColorManager.Cache.GetOrAdd(level.levelID, data.Scheme); colors = data.Colors; });

            Settings.Menu.instance.SongName = level.songName;
            Settings.Menu.instance.SetColors(colors, scheme, tex, level.levelID);
        }
Example #24
0
 private void PrintLevelID(LevelCollectionViewController levelCollectionViewController, IPreviewBeatmapLevel previewBeatmapLevel)
 {
     Logger.log.Critical(previewBeatmapLevel.levelID.ToString());
 }
Example #25
0
 private void SelectLevelHandle(LevelCollectionViewController arg1, IPreviewBeatmapLevel arg2)
 {
     Logger.Info($"Selected Song : {arg2.songName}");
     this.CurrentPreviewBeatmapLevel = arg2;
 }
Example #26
0
 private void OnLevelSelect(LevelCollectionViewController _levelCollection, IPreviewBeatmapLevel _previewBeatmapLevel)
 {
     Logger.log.Log(logLevel, "Song Notepad : Song Name = " + _levelCollection.name);
 }
Example #27
0
 private void BSEvents_levelSelected(LevelCollectionViewController arg1, IPreviewBeatmapLevel arg2)
 {
     // log.Info("Level selected");
     storedScores.Clear();
 }
Example #28
0
 private static void BSEvents_levelSelected(LevelCollectionViewController arg1, IPreviewBeatmapLevel arg2)
 {
     _isWIP = arg2.levelID.EndsWith(" WIP");
 }
        /// <summary>
        /// Sort the song list based on the settings.
        /// </summary>
        public void ProcessSongList(IBeatmapLevelPack selectedLevelPack, LevelCollectionViewController levelCollectionViewController, LevelSelectionNavigationController navController)
        {
            Logger.Trace("ProcessSongList()");

            List <IPreviewBeatmapLevel> unsortedSongs = null;
            List <IPreviewBeatmapLevel> filteredSongs = null;
            List <IPreviewBeatmapLevel> sortedSongs   = null;

            // Abort
            if (selectedLevelPack == null)
            {
                Logger.Debug("Cannot process songs yet, no level pack selected...");
                return;
            }

            Logger.Debug("Using songs from level pack: {0}", selectedLevelPack.packID);
            unsortedSongs = selectedLevelPack.beatmapLevelCollection.beatmapLevels.ToList();

            // filter
            Logger.Debug($"Starting filtering songs by {_settings.filterMode}");
            Stopwatch stopwatch = Stopwatch.StartNew();

            switch (_settings.filterMode)
            {
            case SongFilterMode.Favorites:
                filteredSongs = FilterFavorites(unsortedSongs);
                break;

            case SongFilterMode.Search:
                filteredSongs = FilterSearch(unsortedSongs);
                break;

            case SongFilterMode.Ranked:
                filteredSongs = FilterRanked(unsortedSongs, true, false);
                break;

            case SongFilterMode.Unranked:
                filteredSongs = FilterRanked(unsortedSongs, false, true);
                break;

            case SongFilterMode.Custom:
                Logger.Info("Song filter mode set to custom. Deferring filter behaviour to another mod.");
                filteredSongs = CustomFilterHandler != null?CustomFilterHandler.Invoke(selectedLevelPack) : unsortedSongs;

                break;

            case SongFilterMode.None:
            default:
                Logger.Info("No song filter selected...");
                filteredSongs = unsortedSongs;
                break;
            }

            stopwatch.Stop();
            Logger.Info("Filtering songs took {0}ms", stopwatch.ElapsedMilliseconds);

            // sort
            Logger.Debug("Starting to sort songs...");
            stopwatch = Stopwatch.StartNew();

            SortWasMissingData = false;

            switch (_settings.sortMode)
            {
            case SongSortMode.Original:
                sortedSongs = SortOriginal(filteredSongs);
                break;

            case SongSortMode.Newest:
                sortedSongs = SortNewest(filteredSongs);
                break;

            case SongSortMode.Author:
                sortedSongs = SortAuthor(filteredSongs);
                break;

            case SongSortMode.UpVotes:
                sortedSongs = SortUpVotes(filteredSongs);
                break;

            case SongSortMode.PlayCount:
                sortedSongs = SortBeatSaverPlayCount(filteredSongs);
                break;

            case SongSortMode.Rating:
                sortedSongs = SortBeatSaverRating(filteredSongs);
                break;

            case SongSortMode.Heat:
                sortedSongs = SortBeatSaverHeat(filteredSongs);
                break;

            case SongSortMode.YourPlayCount:
                sortedSongs = SortPlayCount(filteredSongs);
                break;

            case SongSortMode.PP:
                sortedSongs = SortPerformancePoints(filteredSongs);
                break;

            case SongSortMode.Stars:
                sortedSongs = SortStars(filteredSongs);
                break;

            case SongSortMode.Random:
                sortedSongs = SortRandom(filteredSongs);
                break;

            case SongSortMode.Default:
            default:
                sortedSongs = SortSongName(filteredSongs);
                break;
            }

            if (this.Settings.invertSortResults && _settings.sortMode != SongSortMode.Random)
            {
                sortedSongs.Reverse();
            }

            stopwatch.Stop();
            Logger.Info("Sorting songs took {0}ms", stopwatch.ElapsedMilliseconds);

            // Asterisk the pack name so it is identifable as filtered.
            var packName = selectedLevelPack.packName;

            if (!packName.EndsWith("*") && _settings.filterMode != SongFilterMode.None)
            {
                packName += "*";
            }
            BeatmapLevelPack levelPack = new BeatmapLevelPack(SongBrowserModel.FilteredSongsPackId, packName, selectedLevelPack.shortPackName, selectedLevelPack.coverImage, new BeatmapLevelCollection(sortedSongs.ToArray()));

            GameObject _noDataGO = levelCollectionViewController.GetPrivateField <GameObject>("_noDataInfoGO");
            //string _headerText = tableView.GetPrivateField<string>("_headerText");
            //Sprite _headerSprite = tableView.GetPrivateField<Sprite>("_headerSprite");

            bool _showPlayerStatsInDetailView    = navController.GetPrivateField <bool>("_showPlayerStatsInDetailView");
            bool _showPracticeButtonInDetailView = navController.GetPrivateField <bool>("_showPracticeButtonInDetailView");

            navController.SetData(levelPack, true, _showPlayerStatsInDetailView, _showPracticeButtonInDetailView, _noDataGO);

            //_sortedSongs.ForEach(x => Logger.Debug(x.levelID));
        }
Example #30
0
 public LevelDetailButtonsViewController(StandardLevelDetailViewController standardLevelDetailViewController, LevelCollectionViewController levelCollectionViewController, LevelCollectionNavigationController levelCollectionNavigationController,
                                         AddPlaylistModalController addPlaylistController, PopupModalsController popupModalsController, DifficultyHighlighter difficultyHighlighter)
 {
     this.standardLevelDetailViewController = standardLevelDetailViewController;
     levelCollectionTableView = Accessors.LevelCollectionTableViewAccessor(ref levelCollectionViewController);
     this.levelCollectionNavigationController = levelCollectionNavigationController;
     this.addPlaylistController = addPlaylistController;
     this.popupModalsController = popupModalsController;
     this.difficultyHighlighter = difficultyHighlighter;
 }