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);
        }
Example #2
0
        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);
        }
Example #3
0
 private bool HasMask(ProvideDataMask mask, ProvideDataMask h)
 {
     return((mask & h) == h);
 }