public void PlayMusic(MyMusicTrack?track = null) { if (!m_canPlay) { return; } Mute = false; bool playRandom = false; if (track.HasValue) { if (HasAnyTransition()) { m_nextTransitions.Clear(); } if (!m_cueBank.IsValidTransitionCategory(track.Value.TransitionCategory, track.Value.MusicCategory)) { playRandom = true; } else { ApplyTransition(track.Value.TransitionCategory, 1, track.Value.MusicCategory, false); } } else if ((m_musicState == MyMusicState.Stopped) && /*(GetMusicCue() == null) &&*/ !HasAnyTransition()) { playRandom = true; } if (playRandom) { var transition = GetRandomTransitionEnum(); if (transition.HasValue) { ApplyTransition(transition.Value, 0, null, false); } } }
public bool IsValidTransitionCategory(MyStringId transitionCategory, MyStringId musicCategory) { return(m_canPlay ? m_cueBank.IsValidTransitionCategory(transitionCategory, musicCategory) : false); }