private object MakeProvideDatas(ProvideDataMask mask, Func <ProvideData, object> selector) { bool isTourney = ortdp.TourneyListenerManagersCount != 0; var ret = new { tourneyMode = isTourney, count = isTourney ? ortdp.TourneyListenerManagersCount : 1, list = new List <object>() }; if (isTourney) { for (int i = 0; i < ortdp.TourneyListenerManagersCount; i++) { var manager = ortdp.TourneyListenerManagers[i]; var data = manager.GetCurrentData(mask); ret.list.Add(selector(data)); } } else { var manager = ortdp.ListenerManager; var data = manager.GetCurrentData(mask); ret.list.Add(selector(data)); } return(ret); }
public ProvideData GetCurrentData(ProvideDataMask mask) { ProvideData data = new ProvideData(); data.ClientID = m_osu_id; data.Status = m_last_osu_status; data.PlayMode = OsuPlayMode.Unknown; data.Beatmap = Beatmap.Empty; data.Mods = ModsInfo.Empty; data.Combo = 0; data.Count300 = 0; data.Count100 = 0; data.Count50 = 0; data.CountMiss = 0; data.CountGeki = 0; data.CountKatu = 0; data.HealthPoint = 0; data.Accuracy = 0; data.Time = 0; data.Score = 0; data.PlayType = PlayType.Unknown; data.HitEvents = new List <HitEvent>(); if (HasMask(mask, ProvideDataMask.Beatmap)) { if (OnBeatmapChanged == null) { OnBeatmapChanged += (t) => { } } ; data.Beatmap = m_last_beatmap; } if (HasMask(mask, ProvideDataMask.HealthPoint)) { if (OnHealthPointChanged == null) { OnHealthPointChanged += (t) => { } } ; data.HealthPoint = m_last_hp; } if (HasMask(mask, ProvideDataMask.Accuracy)) { if (OnAccuracyChanged == null) { OnAccuracyChanged += (t) => { } } ; data.Accuracy = m_last_acc; } if (HasMask(mask, ProvideDataMask.Combo)) { if (OnComboChanged == null) { OnComboChanged += (t) => { } } ; data.Combo = m_last_combo; } if (HasMask(mask, ProvideDataMask.Count300)) { if (OnCount300Changed == null) { OnCount300Changed += (t) => { } } ; data.Count300 = m_last_300; } if (HasMask(mask, ProvideDataMask.Count100)) { if (OnCount100Changed == null) { OnCount100Changed += (t) => { } } ; data.Count100 = m_last_100; } if (HasMask(mask, ProvideDataMask.Count50)) { if (OnCount50Changed == null) { OnCount50Changed += (t) => { } } ; data.Count50 = m_last_50; } if (HasMask(mask, ProvideDataMask.CountMiss)) { if (OnCountMissChanged == null) { OnCountMissChanged += (t) => { } } ; data.CountMiss = m_last_miss; } if (HasMask(mask, ProvideDataMask.CountGeki)) { if (OnCountGekiChanged == null) { OnCountGekiChanged += (t) => { } } ; data.CountGeki = m_last_geki; } if (HasMask(mask, ProvideDataMask.CountKatu)) { if (OnCountKatuChanged == null) { OnCountKatuChanged += (t) => { } } ; data.CountKatu = m_last_katu; } if (HasMask(mask, ProvideDataMask.Time)) { if (OnPlayingTimeChanged == null) { OnPlayingTimeChanged += (t) => { } } ; data.Time = m_playing_time; } if (HasMask(mask, ProvideDataMask.Mods)) { if (OnModsChanged == null) { OnModsChanged += (t) => { } } ; data.Mods = m_last_mods; } if (HasMask(mask, ProvideDataMask.GameMode)) { if (OnPlayModeChanged == null) { OnPlayModeChanged += (t, t2) => { } } ; data.PlayMode = m_last_mode; } if (HasMask(mask, ProvideDataMask.Score)) { if (OnScoreChanged == null) { OnScoreChanged += (s) => { } } ; data.Score = m_last_score; } if (HasMask(mask, ProvideDataMask.ErrorStatistics)) { if (OnErrorStatisticsChanged == null) { OnErrorStatisticsChanged += (e) => { } } ; data.ErrorStatistics = m_last_error_statistics; } if (HasMask(mask, ProvideDataMask.Playername)) { if (OnPlayerChanged == null) { OnPlayerChanged += (e) => { } } ; data.Playername = m_last_playername; } if (HasMask(mask, ProvideDataMask.HitEvent)) { if (OnHitEventsChanged == null) { OnHitEventsChanged += (t, l) => { } } ; data.PlayType = m_play_type; data.HitEvents = m_hit_events; } return(data); }
private bool HasMask(ProvideDataMask mask, ProvideDataMask h) { return((mask & h) == h); }