private void AddMusicCategory(MyMusicTransitionEnum musicTransition, string category, MySoundCuesEnum cueEnum) { if (m_musicTransitionCues[(int)musicTransition] == null) { m_musicTransitionCues[(int)musicTransition] = new Dictionary <string, MySoundCuesEnum>(); } m_musicTransitionCues[(int)musicTransition].Add(category, cueEnum); }
public string GetRandomTransitionCategory(MyMusicTransitionEnum transitionEnum) { int randomIndex = MyVRageUtils.GetRandomInt(m_musicTransitionCues[(int)transitionEnum].Count); int currentIndex = 0; foreach (var categoryCueKVP in m_musicTransitionCues[(int)transitionEnum]) { if (currentIndex == randomIndex) { return(categoryCueKVP.Key); } currentIndex++; } throw new InvalidBranchException(); }
private void SendMusicTransition(MyMusicEventEnum musicEventType, int? priority, MyMusicTransitionEnum? transitionEnum, string category, bool loop) { var msg = new MyEventMusicTransition(); msg.MusicEventType = musicEventType; msg.TransitionEnum = transitionEnum.HasValue ? (int)transitionEnum.Value : 0; msg.Priority = priority ?? 0; msg.Category = category; msg.Loop = loop; Peers.SendToAll(ref msg, NetDeliveryMethod.ReliableOrdered); }
public void SendApplyTransition(MyMusicTransitionEnum transitionEnum, int priority, string category, bool loop) { SendMusicTransition(MyMusicEventEnum.APPLY_TRANSITION, priority, transitionEnum, category, loop); }
static void AddMusicCategory(MyMusicTransitionEnum musicTransition, string category, MySoundCuesEnum cueEnum) { if (m_musicTransitionCues[(int)musicTransition] == null) { m_musicTransitionCues[(int)musicTransition] = new Dictionary<string, MySoundCuesEnum>(); } m_musicTransitionCues[(int)musicTransition].Add(category, cueEnum); }
private static string GetRandomTransitionCategory(MyMusicTransitionEnum transitionEnum) { int randomIndex = MyMwcUtils.GetRandomInt(m_musicTransitionCues[(int)transitionEnum].Count - 1); int currentIndex = 0; foreach (var categoryCueKVP in m_musicTransitionCues[(int)transitionEnum]) { if (currentIndex == randomIndex) { return categoryCueKVP.Key; } currentIndex++; } throw new MyMwcExceptionApplicationShouldNotGetHere(); }
public static bool ApplyTransition(MyMusicTransitionEnum transitionEnum, int priority = 0, string category = null, bool loop = true) { if (!m_canPlay) return false; if (!m_musicAllowed) return false; Debug.Assert(priority >= 0); if (category != null) { if (!m_musicTransitionCues[(int)transitionEnum].ContainsKey(category)) { Debug.Assert(false, "This category doesn't exist for this transition!"); return false; } } // if we try apply same transition and priority and category if (m_currentTransition != null && m_currentTransition.Value.Priority == priority && m_currentTransition.Value.TransitionEnum == transitionEnum && (category == null || m_currentTransition.Value.Category == category)) { if (m_musicState == MyMusicState.Transition && !m_transitionForward) { m_musicState = MyMusicState.Playing; return true; } else { return false; } } // if category not set, we take random category from this transition cues string transitionCategory = category != null ? category : GetRandomTransitionCategory(transitionEnum); // we set this transition as next m_nextTransitions[priority] = new MyMusicTransition(priority, transitionEnum, transitionCategory); // if new transition has lower priority then current, we don't want apply new transition now if (m_currentTransition != null && m_currentTransition.Value.Priority > priority) { return false; } m_loopMusic = loop; if (m_musicState == MyMusicState.Playing) { StartTransition(true); } else if (m_musicState == MyMusicState.Transition) { } else if (m_musicState == MyMusicState.Stopped) { } else { throw new MyMwcExceptionApplicationShouldNotGetHere(); } return true; }
public MyMusicTransition(int priority, MyMusicTransitionEnum transitionEnum, string category) { Priority = priority; TransitionEnum = transitionEnum; Category = category; }
public MySoundCuesEnum GetTransitionCue(MyMusicTransitionEnum transitionEnum, string category) { return(m_musicTransitionCues[(int)transitionEnum][category]); }
public bool IsValidTransitionCategory(MyMusicTransitionEnum transitionEnum, string category) { return(m_musicTransitionCues[(int)transitionEnum].ContainsKey(category)); }
public static bool ApplyTransition(MyMusicTransitionEnum transitionEnum, int priority = 0, string category = null, bool loop = true) { if (!m_canPlay) return false; if (!m_musicAllowed) return false; Debug.Assert(priority >= 0); if (category != null) { if (!m_cueBank.IsValidTransitionCategory(transitionEnum, category)) { Debug.Fail("This category doesn't exist for this transition!"); MyLog.Default.WriteLine(string.Format("Category {0} doesn't exist for this transition!", category)); return false; } } // if we try apply same transition and priority and category if ((m_currentTransition != null) && (m_currentTransition.Value.Priority == priority) && (m_currentTransition.Value.TransitionEnum == transitionEnum) && ((category == null) || (m_currentTransition.Value.Category == category))) { if ((m_musicState == MyMusicState.Transition) && !m_transitionForward) { m_musicState = MyMusicState.Playing; return true; } else return false; } // if category not set, we take random category from transition cues string transitionCategory = category ?? m_cueBank.GetRandomTransitionCategory(transitionEnum); // we set this transition as next m_nextTransitions[priority] = new MyMusicTransition(priority, transitionEnum, transitionCategory); MyTrace.Send(TraceWindow.Server, string.Format("Applying transition {0} {1} (priority = {2})", transitionEnum, transitionCategory, priority)); // if new transition has lower priority then current, we don't want apply new transition now if ((m_currentTransition != null) && (m_currentTransition.Value.Priority > priority)) return false; m_loopMusic = loop; if (m_musicState == MyMusicState.Playing) StartTransition(true); else if (m_musicState == MyMusicState.Transition) { } else if (m_musicState == MyMusicState.Stopped) { } else throw new InvalidBranchException(); return true; }