public override void BeforeStart()
        {
            base.BeforeStart();

            if (m_obForLoading == null)
            {
                return;
            }

            int currentTime = MySandboxGame.TotalGamePlayTimeInMilliseconds;

            m_allSpawnInfos.Capacity = m_obForLoading.SpawnInfos.Count;
            foreach (var info in m_obForLoading.SpawnInfos)
            {
                var spawnInfo = new SpawnInfo(info, currentTime);
                m_allSpawnInfos.Add(spawnInfo);
                m_spawnInfoGrid.AddPoint(ref spawnInfo.Position, spawnInfo);
            }

            m_allTimeoutInfos.Capacity = m_obForLoading.TimeoutInfos.Count;
            foreach (var info in m_obForLoading.TimeoutInfos)
            {
                var timeoutInfo = new SpawnTimeoutInfo(info, currentTime);
                if (timeoutInfo.AnimalSpawnInfo == null) // do not add invalid timeout objects
                {
                    continue;
                }
                m_allTimeoutInfos.Add(timeoutInfo);
                m_timeoutInfoGrid.AddPoint(ref timeoutInfo.Position, timeoutInfo);
            }

            m_obForLoading = null;
        }
        public override void Init(MyObjectBuilder_SessionComponent sessionComponent)
        {
            base.Init(sessionComponent);

            m_obForLoading = sessionComponent as MyObjectBuilder_SpaceFaunaComponent;
        }