Beispiel #1
0
        /// <summary>
        ///     Set the playback state of the currently playing music track (Pause, Resume or Stop)
        /// </summary>
        /// <param name="state">The state to set</param>
        private void SetMusicPlaybackState(SoundState state)
        {
            if (currentInGameMusicInstance == null)
            {
                return;
            }

            switch (state)
            {
            case SoundState.Playing:
                currentInGameMusicInstance.Resume();
                TimeManager.ResumeTimer(currentInGameMusicInstance.GetHashCode().ToString());
                break;

            case SoundState.Paused:
                currentInGameMusicInstance.Pause();
                TimeManager.PauseTimer(currentInGameMusicInstance.GetHashCode().ToString());
                break;

            case SoundState.Stopped:
                currentInGameMusicInstance.Stop();
                TimeManager.RemoveTimer(currentInGameMusicInstance.GetHashCode().ToString());
                break;
            }
        }
Beispiel #2
0
        /// <summary>
        ///     Stops the currently playing music track and plays the specified one.
        /// </summary>
        /// <param name="musicTrack">The music track to play</param>
        private void PlayMusic(SoundEffect musicTrack)
        {
            if (musicTrack == null)
            {
                return;
            }

            if (currentInGameMusicInstance != null)
            {
                TimeManager.RemoveTimer(currentInGameMusicInstance.GetHashCode().ToString());
            }

            currentInGameMusicInstance?.Stop();
            currentInGameMusicInstance        = musicTrack.CreateInstance();
            currentInGameMusicInstance.Volume = currentMusicVolume;
            currentInGameMusicInstance.Play();

            TimeManager.CallFunctionInSeconds(currentInGameMusicInstance.GetHashCode().ToString(), PlayNextMusic,
                                              (float)musicTrack.Duration.TotalSeconds);
        }