public void ShowLeaderboard(List <PlayerInfo> playerInfos, SongInfo song) { if (_leaderboardViewController == null) { _leaderboardViewController = BeatSaberUI.CreateViewController <LeaderboardViewController>(); _leaderboardViewController.playNowButtonPressed += PlayNow_Pressed; } if (_roomNavigationController.viewControllers.IndexOf(_leaderboardViewController) < 0) { PushViewControllerToNavigationController(_roomNavigationController, _leaderboardViewController, null, true); } IPreviewBeatmapLevel level = SongCore.Loader.CustomBeatmapLevelPackCollectionSO.beatmapLevelPacks.SelectMany(x => x.beatmapLevelCollection.beatmapLevels).FirstOrDefault(x => x.levelID.StartsWith(song.levelId)); if (level != null) { LoadBeatmapLevelAsync(level, (status, success, beatmapLevel) => { PreviewPlayer.CrossfadeTo(beatmapLevel.beatmapLevelData.audioClip, beatmapLevel.previewStartTime, (beatmapLevel.beatmapLevelData.audioClip.length - beatmapLevel.previewStartTime), 1f); }); } _leaderboardViewController.SetLeaderboard(); _leaderboardViewController.SetSong(song); }
public void ShowLeaderboard(List <PlayerInfo> playerInfos, SongInfo song) { if (_leaderboardViewController == null) { _leaderboardViewController = BeatSaberUI.CreateViewController <LeaderboardViewController>(); _leaderboardViewController.playNowButtonPressed += PlayNow_Pressed; } if (_roomNavigationController.viewControllers.IndexOf(_leaderboardViewController) < 0) { PushViewControllerToNavigationController(_roomNavigationController, _leaderboardViewController, null, true); } BeatmapLevelSO level = SongLoader.CustomBeatmapLevelPackCollectionSO.beatmapLevelPacks.SelectMany(x => x.beatmapLevelCollection.beatmapLevels).FirstOrDefault(x => x.levelID.StartsWith(song.levelId)) as BeatmapLevelSO; if (level != null) { if (level is CustomLevel) { SongLoader.Instance.LoadAudioClipForLevel((CustomLevel)level, SongLoaded); } else { PreviewPlayer.CrossfadeTo(level.beatmapLevelData.audioClip, level.previewStartTime, (level.beatmapLevelData.audioClip.length - level.previewStartTime), 1f); } } _leaderboardViewController.SetLeaderboard(playerInfos); _leaderboardViewController.SetSong(song); }