コード例 #1
0
    void Start()
    {
        SongMetaManager.Instance.ScanFilesIfNotDoneYet();
        // Give the song search some time, otherwise the "no songs found" label flickers once.
        if (!SongMetaManager.IsSongScanFinished)
        {
            Thread.Sleep(100);
        }

        sceneData = SceneNavigator.Instance.GetSceneData(CreateDefaultSceneData());

        searchTextInputField = GameObjectUtils.FindObjectOfType <SearchInputField>(true);

        GetSongMetasFromManager();

        songRouletteController.SelectionClickedEventStream
        .Subscribe(selection => CheckAudioAndStartSingScene());

        statsManager = StatsManager.Instance.Statistics;

        InitSongRoulette();

        // Show a message when no songs have been found.
        noSongsFoundMessage.SetActive(songMetas.IsNullOrEmpty());
    }
コード例 #2
0
    public void FinishScene()
    {
        SongSelectSceneData songSelectSceneData = new SongSelectSceneData();

        songSelectSceneData.SongMeta = sceneData.SongMeta;
        sceneNavigator.LoadScene(EScene.SongSelectScene, songSelectSceneData);
    }
コード例 #3
0
    public void ContinueToSongSelectScene()
    {
        SongSelectSceneData songSelectSceneData;

        if (sceneData.PreviousSceneData is SongSelectSceneData)
        {
            songSelectSceneData = sceneData.PreviousSceneData as SongSelectSceneData;
        }
        else
        {
            songSelectSceneData          = new SongSelectSceneData();
            songSelectSceneData.SongMeta = sceneData.SelectedSongMeta;
        }
        SceneNavigator.Instance.LoadScene(EScene.SongSelectScene, songSelectSceneData);
    }
コード例 #4
0
    void Start()
    {
        sceneData = SceneNavigator.Instance.GetSceneData(CreateDefaultSceneData());

        searchTextInputField = GameObjectUtils.FindObjectOfType <SearchInputField>(true);

        songMetas = SongMetaManager.Instance.SongMetas;
        List <PlayerProfile> playerProfiles = SettingsManager.Instance.Settings.PlayerProfiles;

        songRouletteController = FindObjectOfType <SongRouletteController>();
        songRouletteController.SongSelectSceneController = this;

        InitSongRoulette();

        // Show a message when no songs have been found.
        noSongsFoundMessage.SetActive(songMetas.IsNullOrEmpty());
    }
コード例 #5
0
 public void FinishScene()
 {
     if (statistics.HasHighscore(sceneData.SongMeta))
     {
         // Go to highscore scene
         HighscoreSceneData highscoreSceneData = new HighscoreSceneData();
         highscoreSceneData.SongMeta   = sceneData.SongMeta;
         highscoreSceneData.Difficulty = sceneData.PlayerProfiles.FirstOrDefault().Difficulty;
         SceneNavigator.Instance.LoadScene(EScene.HighscoreScene, highscoreSceneData);
     }
     else
     {
         // No highscores to show, thus go to song select scene
         SongSelectSceneData songSelectSceneData = new SongSelectSceneData();
         songSelectSceneData.SongMeta = sceneData.SongMeta;
         SceneNavigator.Instance.LoadScene(EScene.SongSelectScene, songSelectSceneData);
     }
 }
コード例 #6
0
    void Start()
    {
        sceneData = SceneNavigator.Instance.GetSceneData(CreateDefaultSceneData());

        searchTextInputField = GameObjectUtils.FindObjectOfType <SearchInputField>(true);

        songMetas = SongMetaManager.Instance.SongMetas;
        List <PlayerProfile> playerProfiles = PlayerProfileManager.Instance.PlayerProfiles;

        PopulatePlayerProfileList(playerProfiles);

        songRouletteController = FindObjectOfType <SongRouletteController>();
        songRouletteController.SongSelectSceneController = this;
        songRouletteController.SetSongs(songMetas);
        if (sceneData.SongMeta != null)
        {
            songRouletteController.SelectSong(sceneData.SongMeta);
        }
    }
コード例 #7
0
    private SongSelectSceneData CreateDefaultSceneData()
    {
        SongSelectSceneData sceneData = new SongSelectSceneData();

        return(sceneData);
    }
コード例 #8
0
    private void Start()
    {
        SongMetaManager.Instance.ScanFilesIfNotDoneYet();
        // Give the song search some time, otherwise the "no songs found" label flickers once.
        if (!SongMetaManager.IsSongScanFinished)
        {
            Thread.Sleep(100);
        }

        sceneData = SceneNavigator.Instance.GetSceneData(CreateDefaultSceneData());

        InitSongMetas();

        HidePlayerSelectOverlay();
        HideMenuOverlay();
        HideSongDetailOverlay();

        SongOrderPickerControl = new SongOrderPickerControl(songOrderItemPicker);

        // Register Callbacks
        toggleFavoriteButton.RegisterCallbackButtonTriggered(() => ToggleSelectedSongIsFavorite());

        closePlayerSelectOverlayButton.RegisterCallbackButtonTriggered(() => HidePlayerSelectOverlay());

        fuzzySearchTextLabel.ShowByDisplay();
        songSelectSceneInputControl.FuzzySearchText
        .Subscribe(newValue => fuzzySearchTextLabel.text = newValue);

        startButton.RegisterCallbackButtonTriggered(() => CheckAudioAndStartSingScene());

        menuButton.RegisterCallbackButtonTriggered(() => ShowMenuOverlay());
        closeMenuOverlayButton.RegisterCallbackButtonTriggered(() => HideMenuOverlay());
        backToMainMenuButton.RegisterCallbackButtonTriggered(() => sceneNavigator.LoadScene(EScene.MainScene));

        toggleSongDetailOverlayButton.RegisterCallbackButtonTriggered(() =>
        {
            if (IsSongDetailOverlayVisible)
            {
                HideSongDetailOverlay();
            }
            else
            {
                ShowSongDetailOverlay();
            }
        });

        nextSongButton.RegisterCallbackButtonTriggered(() => songRouletteControl.SelectNextSong());
        previousSongButton.RegisterCallbackButtonTriggered(() => songRouletteControl.SelectPreviousSong());
        UpdateNextAndPreviousSongButtonLabels();
        inputManager.InputDeviceChangeEventStream.Subscribe(evt => UpdateNextAndPreviousSongButtonLabels());

        songIndexButton.RegisterCallbackButtonTriggered(() => songSearchControl.SetSearchText($"#{SelectedSongIndex + 1}"));

        SongSearchControl.SearchChangedEventStream.Subscribe(_ => OnSearchTextChanged());

        PlaylistChooserControl.Selection.Subscribe(_ => UpdateFilteredSongs());

        SongOrderPickerControl.Selection.Subscribe(newValue =>
        {
            settings.SongSelectSettings.songOrder = newValue;
            characterQuickJumpListControl.UpdateCharacters();
            UpdateFilteredSongs();
        });

        playlistManager.PlaylistChangeEventStream.Subscribe(playlistChangeEvent =>
        {
            if (playlistChangeEvent.Playlist == PlaylistChooserControl.Selection.Value)
            {
                UpdateFilteredSongs();
            }

            UpdateFavoriteIcon();
        });

        InitSongRouletteSongMetas();
        songRouletteControl.SelectionClickedEventStream
        .Subscribe(_ => CheckAudioAndStartSingScene());

        UpdateInputLegend();
        inputManager.InputDeviceChangeEventStream.Subscribe(_ => UpdateInputLegend());

        focusableNavigator.FocusSongRoulette();

        songAudioPlayer.AudioClipLoadedEventStream
        .Subscribe(_ => UpdateSongDurationLabel(songAudioPlayer.DurationOfSongInMillis));
    }