public Engine(EngineConfig config) { m_engineConfig = ResolveEngineConfig(config); m_eventManager = new Event.EventManager(); m_engineEvents = new EngineEvents(m_eventManager); m_modules = new List <Module>(); m_apiContexts = new SortedDictionary <int, ApiContext>(); m_iNextApiContextUid = 0; m_iNextModuleUid = 0; m_iModuleAvailableEventUid = m_engineEvents.GetEventTypeUid(EngineEvents.Types.MODULE_AVAILABLE); m_iModuleUnavailableEventUid = m_engineEvents.GetEventTypeUid(EngineEvents.Types.MODULE_UNAVAILABLE); m_iApiConstructedEventUid = m_engineEvents.GetEventTypeUid(EngineEvents.Types.API_CONSTRUCTED); m_iDependencyRequestEventUid = m_engineEvents.GetEventTypeUid(EngineEvents.Types.DEPENDENCY_REQUEST); m_eventManager.AddEventListener(this, m_engineEvents.GetEventTypeUid(EngineEvents.Types.DEPENDENCY_REQUEST)); AddModule <Modules.Database.DatabaseModule>("database", null); AddModule <Modules.Disk.DiskModule>("disk", null); AddModule <Modules.Network.NetworkModule>("network", null); AddModule <Modules.Validation.ValidationModule>("validation", null); AddModule <Modules.Settings.SettingsModule>("settings", new List <string> { "database", "database" }); }
public ModuleConfig(int iUid, string sName, Event.EventManager eventManager, EngineEvents engineEvents, List <string> dependencies) { m_iUid = iUid; m_sName = sName; m_eventManager = eventManager; m_engineEvents = engineEvents; m_dependencies = (dependencies == null) ? new List <string>() : dependencies; }