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; }
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); } } }
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(); }