Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        /// <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();
                    }
                }
            }
        }
Пример #3
0
        /// <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));
                }
            }
        }