Example #1
0
        public void UnloadDataComponents(bool beforeLoadWorld = false)
        {
            // Unload in reverse so dependencies can be relied on.
            for (int i = m_loadOrder.Count - 1; i >= 0; --i)
            {
                m_loadOrder[i].UnloadDataConditional();
            }

            //foreach (var component in m_sessionComponents)
            //{
            //    component.UnloadDataConditional();
            //}

            MySessionComponentMapping.Clear();

            m_sessionComponents.Clear();
            m_loadOrder.Clear();

            foreach (var compList in m_sessionComponentsForUpdate.Values)
            {
                compList.Clear();
            }

            if (!beforeLoadWorld)
            {
                Sync.Players.UnregisterEvents();
                Sync.Clients.Clear();
                MyNetworkReader.Clear();
            }

            m_lasers.Clear();

            Ready = false;
        }
Example #2
0
        public void LoadObjectBuildersComponents(List <MyObjectBuilder_SessionComponent> objectBuilderData)
        {
            var mappedObjectBuilders = MySessionComponentMapping.GetMappedSessionObjectBuilders(objectBuilderData);
            MyObjectBuilder_SessionComponent tmpOb = null;

            foreach (var comp in m_sessionComponents.Values)
            {
                if (mappedObjectBuilders.TryGetValue(comp.ComponentType, out tmpOb))
                {
                    comp.Init(tmpOb);
                }
            }
        }
Example #3
0
        public void LoadObjectBuildersComponents(List <MyObjectBuilder_SessionComponent> objectBuilderData)
        {
            foreach (var obdata in objectBuilderData)
            {
                Type scType;
                MySessionComponentBase comp;
                if ((scType = MySessionComponentMapping.TryGetMappedSessionComponentType(obdata.GetType())) != null &&
                    m_sessionComponents.TryGetValue(scType, out comp))
                {
                    comp.Init(obdata);
                }
            }

            InitDataComponents();
        }