Example #1
0
        public static void ReportServerStatus()
        {
            MyInfinarioAnalytics.updateIndex++;
            if (MyMultiplayer.Static == null || MyMultiplayer.Static.IsServer == false)
            {
                return;
            }
            if (MySandboxGame.IsDedicated == false && MyMultiplayer.Static.MemberCount <= 1)
            {
                return;
            }
            try
            {
                IMyAnalytics analytics = MyPerGameSettings.AnalyticsTracker;
                if (analytics == null)
                {
                    return;
                }

                // Send events to analytics.
                int gridCount               = 0;
                int blockCount              = 0;
                int movingGrids             = 0;
                HashSet <MyEntity> entities = MyEntities.GetEntities();
                foreach (var entity in entities)
                {
                    if (entity is MyCubeGrid)
                    {
                        gridCount++;
                        blockCount += (entity as MyCubeGrid).BlocksCount;
                        if ((entity as MyCubeGrid).Physics != null && (entity as MyCubeGrid).Physics.LinearVelocity != Vector3.Zero)
                        {
                            movingGrids++;
                        }
                    }
                }
                analytics.ReportServerStatus(MyMultiplayer.Static.MemberCount, MyMultiplayer.Static.MemberLimit, Sync.ServerSimulationRatio, entities.Count, gridCount, blockCount, movingGrids, MyMultiplayer.Static.HostName);

                //MyLog.Default.WriteLine("Analytics helper server status reported");
            }
            catch (Exception exception)
            {
                MyLog.Default.WriteLine(exception);
            }
        }