private void LoadModulesFromDllFile(string copiedDllFile) { List <IService> services = AuroraModuleLoader.LoadPlugins <IService>(copiedDllFile); List <IApplicationPlugin> appPlugins = AuroraModuleLoader.LoadPlugins <IApplicationPlugin>(copiedDllFile); List <INonSharedRegionModule> nsregionModule = AuroraModuleLoader.LoadPlugins <INonSharedRegionModule>(copiedDllFile); foreach (IService service in services) { service.Initialize(m_config, m_registry); service.Start(m_config, m_registry); service.FinishedStartup(); } foreach (IApplicationPlugin plugin in appPlugins) { plugin.PreStartup(m_registry.RequestModuleInterface <ISimulationBase>()); plugin.Initialize(m_registry.RequestModuleInterface <ISimulationBase>()); plugin.PostInitialise(); plugin.Start(); plugin.PostStart(); } IRegionModulesController rmc = m_registry.RequestModuleInterface <IRegionModulesController>(); ISceneManager manager = m_registry.RequestModuleInterface <ISceneManager>(); if (manager != null) { foreach (INonSharedRegionModule nsrm in nsregionModule) { nsrm.Initialise(m_config); nsrm.AddRegion(manager.Scene); nsrm.RegionLoaded(manager.Scene); rmc.AllModules.Add(nsrm); } } }
/// <summary> /// Load, Unload, and list Region modules in use /// </summary> /// <param name="cmd"></param> private void HandleModulesUnload(string[] cmd) { List <string> args = new List <string> (cmd); args.RemoveAt(0); string[] cmdparams = args.ToArray(); IRegionModulesController controller = m_OpenSimBase.ApplicationRegistry.RequestModuleInterface <IRegionModulesController> (); if (cmdparams.Length > 1) { foreach (IRegionModuleBase irm in controller.AllModules) { if (irm.Name.ToLower() == cmdparams[1].ToLower()) { MainConsole.Instance.Info(String.Format("Unloading module: {0}", irm.Name)); foreach (IScene scene in m_localScenes) { irm.RemoveRegion(scene); } irm.Close(); } } } }
/// <summary> /// Load, Unload, and list Region modules in use /// </summary> /// <param name="cmd"></param> private void HandleModulesList(IScene scene, string[] cmd) { List <string> args = new List <string>(cmd); args.RemoveAt(0); IRegionModulesController controller = m_SimBase.ApplicationRegistry.RequestModuleInterface <IRegionModulesController>(); foreach (IRegionModuleBase irm in controller.AllModules) { if (irm is INonSharedRegionModule) { MainConsole.Instance.Info(String.Format("Nonshared region module: {0}", irm.Name)); } else { MainConsole.Instance.Info(String.Format("Unknown type " + irm.GetType() + " region module: {0}", irm.Name)); } } }