public static void RefreshLoadedSongs() { if (_alwaysOwnedContent == null) { _alwaysOwnedContent = Resources.FindObjectsOfTypeAll <AlwaysOwnedContentSO>().First(); } if (_primaryLevelCollection == null) { _primaryLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[0].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO; } if (_secondaryLevelCollection == null) { _secondaryLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[1].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO; } if (_tertiaryLevelCollection == null) { _tertiaryLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[2].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO; } if (_extrasLevelCollection == null) { _extrasLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[3].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO; } masterLevelList = new List <IPreviewBeatmapLevel>(); masterLevelList.AddRange(_primaryLevelCollection.beatmapLevels); masterLevelList.AddRange(_secondaryLevelCollection.beatmapLevels); masterLevelList.AddRange(_tertiaryLevelCollection.beatmapLevels); masterLevelList.AddRange(_extrasLevelCollection.beatmapLevels); masterLevelList.AddRange(Loader.CustomLevelsCollection.beatmapLevels); }
public void OpenSongsList(string songToSelectWhenLoaded = null) { if (songListViewController == null) { songListViewController = BeatSaberUI.CreateViewController <SongListViewController>(); } if (_bottomViewController == null) { _bottomViewController = BeatSaberUI.CreateViewController <BottomViewController>(); } if (_resultsViewController == null) { _resultsViewController = Resources.FindObjectsOfTypeAll <ResultsViewController>().First(); } if (_playerDataModel == null) { _playerDataModel = Resources.FindObjectsOfTypeAll <PlayerDataModel>().First(); } if (_menuLightsManager == null) { _menuLightsManager = Resources.FindObjectsOfTypeAll <MenuLightsManager>().First(); } if (_soloFreePlayFlowCoordinator == null) { _soloFreePlayFlowCoordinator = Resources.FindObjectsOfTypeAll <SoloFreePlayFlowCoordinator>().First(); } if (_campaignFlowCoordinator == null) { _campaignFlowCoordinator = Resources.FindObjectsOfTypeAll <CampaignFlowCoordinator>().First(); } if (_alwaysOwnedContent == null) { _alwaysOwnedContent = Resources.FindObjectsOfTypeAll <AlwaysOwnedContentSO>().First(); } if (_primaryLevelCollection == null) { _primaryLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[0].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO; } if (_secondaryLevelCollection == null) { _secondaryLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[1].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO; } if (_tertiaryLevelCollection == null) { _tertiaryLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[2].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO; } if (_extrasLevelCollection == null) { _extrasLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[3].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO; } if (!songListViewController.isInViewControllerHierarchy || !songListViewController.isActiveAndEnabled) { SetViewControllersToNavigationController(_mainModNavigationController, new ViewController[] { songListViewController }); songListViewController.SelectWhenLoaded(songToSelectWhenLoaded); songListViewController.SongListRowSelected += SongListRowSelected; songListViewController.ReloadPressed += () => ReloadServerData(); ReloadServerData(); } }
public void OnApplicationStart() { client = new Client(); client.Start(); Loader.SongsLoadedEvent += (Loader _, ConcurrentDictionary <string, CustomPreviewBeatmapLevel> __) => { if (_alwaysOwnedContent == null) { _alwaysOwnedContent = Resources.FindObjectsOfTypeAll <AlwaysOwnedContentSO>().First(); } masterLevelList = new List <IPreviewBeatmapLevel>(); for (int i = 0; i < _alwaysOwnedContent.alwaysOwnedPacks.Count(); i++) { masterLevelList.AddRange(_alwaysOwnedContent.alwaysOwnedPacks[i].beatmapLevelCollection.beatmapLevels); } masterLevelList.AddRange(Loader.CustomLevelsCollection.beatmapLevels); client.SendSongList(masterLevelList); }; }
public void OnApplicationStart() { client = new Client(); client.Start(); Loader.SongsLoadedEvent += (Loader _, Dictionary <string, CustomPreviewBeatmapLevel> __) => { if (_alwaysOwnedContent == null) { _alwaysOwnedContent = Resources.FindObjectsOfTypeAll <AlwaysOwnedContentSO>().First(); } if (_primaryLevelCollection == null) { _primaryLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[0].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO; } if (_secondaryLevelCollection == null) { _secondaryLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[1].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO; } if (_tertiaryLevelCollection == null) { _tertiaryLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[2].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO; } if (_extrasLevelCollection == null) { _extrasLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == OstHelper.packs[3].PackID).beatmapLevelCollection as BeatmapLevelCollectionSO; } masterLevelList = new List <IPreviewBeatmapLevel>(); masterLevelList.AddRange(_primaryLevelCollection.beatmapLevels); masterLevelList.AddRange(_secondaryLevelCollection.beatmapLevels); masterLevelList.AddRange(_tertiaryLevelCollection.beatmapLevels); masterLevelList.AddRange(_extrasLevelCollection.beatmapLevels); masterLevelList.AddRange(Loader.CustomLevelsCollection.beatmapLevels); client.SendSongList(masterLevelList); }; }
protected override void DidActivate(bool firstActivation, ActivationType activationType) { if (activationType == ActivationType.AddedToHierarchy) { title = Plugin.Name; navigationController = BeatSaberUI.CreateViewController <GenericNavigationController>(); navigationController.didFinishEvent += (_) => mainFlowCoordinator.InvokeMethod("DismissFlowCoordinator", this, null, false); if (soloFreePlayFlowCoordinator == null) { soloFreePlayFlowCoordinator = Resources.FindObjectsOfTypeAll <SoloFreePlayFlowCoordinator>().First(); } if (_alwaysOwnedContent == null) { _alwaysOwnedContent = Resources.FindObjectsOfTypeAll <AlwaysOwnedContentSO>().First(); } if (_primaryLevelCollection == null) { _primaryLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == "OstVol1").beatmapLevelCollection as BeatmapLevelCollectionSO; } if (_secondaryLevelCollection == null) { _secondaryLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == "OstVol2").beatmapLevelCollection as BeatmapLevelCollectionSO; } if (_tertiaryLevelCollection == null) { _tertiaryLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == "OstVol3").beatmapLevelCollection as BeatmapLevelCollectionSO; } if (_extrasLevelCollection == null) { _extrasLevelCollection = _alwaysOwnedContent.alwaysOwnedPacks.First(x => x.packID == "Extras").beatmapLevelCollection as BeatmapLevelCollectionSO; } if (beatmapLevelPackCollection == null) { beatmapLevelPackCollection = soloFreePlayFlowCoordinator.GetField <IBeatmapLevelPackCollection>("_levelPackCollection"); } if (centerViewController == null) { centerViewController = BeatSaberUI.CreateViewController <CenterViewController>(); centerViewController.GenerateButtonPressed += () => { centerViewController.SetUIType(CenterViewController.UIType.ProgressBar); GeneratePlaylistWithMinTime(centerViewController.GetTimeValue(), centerViewController.UseOnlyPreferredDifficulty ? centerViewController.PreferredDifficulty : (BeatmapDifficulty?)null, async(playlist) => { var duration = 0f; foreach (var song in playlist) { duration += song.songDuration; Logger.Debug($"PLAYLIST ITEM: {song.songName} ({song.songDuration})"); } Logger.Debug($"TOTAL DURATION: {duration}"); centerViewController.SetUIType(CenterViewController.UIType.GenerationButton); //Launch first level Config.Enabled = true; Plugin.instance.loadedLevels = new Queue <IPreviewBeatmapLevel>(playlist); //Ensure the first level is an IBeatmapLevel var firstBeatmapLevel = Plugin.instance.loadedLevels.First(); if (firstBeatmapLevel is CustomPreviewBeatmapLevel) { var result = await SongHelpers.GetLevelFromPreview(firstBeatmapLevel); if (result != null && !(result?.isError == true)) { firstBeatmapLevel = result?.beatmapLevel; } } var firstMap = SongHelpers.GetClosestDifficultyPreferLower(firstBeatmapLevel as IBeatmapLevel, centerViewController.PreferredDifficulty); SongStitcher.songSwitched -= SongSwitched; SongStitcher.songSwitched += SongSwitched; var playerDataModel = Resources.FindObjectsOfTypeAll <PlayerDataModelSO>().First(); MenuTransitionsHelperSO menuTransitionHelper = Resources.FindObjectsOfTypeAll <MenuTransitionsHelperSO>().FirstOrDefault(); menuTransitionHelper.StartStandardLevel(firstMap, null, null, playerDataModel.playerData.gameplayModifiers, playerDataModel.playerData.playerSpecificSettings, null, "Menu", false, null, SongFinished); }); }; } ProvideInitialViewControllers(navigationController); SetViewControllersToNavigationConctroller(navigationController, new VRUIViewController[] { centerViewController }); } }