/// <summary> /// Call this from a region module to add a command to the OpenSim console. /// </summary> /// <param name="mod"></param> /// <param name="command"></param> /// <param name="shorthelp"></param> /// <param name="longhelp"></param> /// <param name="descriptivehelp"></param> /// <param name="callback"></param> public void AddCommand( object mod, string command, string shorthelp, string longhelp, string descriptivehelp, CommandDelegate callback) { if (MainConsole.Instance == null) { return; } string modulename = String.Empty; bool shared = false; if (mod != null) { if (mod is IRegionModule) { IRegionModule module = (IRegionModule)mod; modulename = module.Name; shared = module.IsSharedModule; } else if (mod is IRegionModuleBase) { IRegionModuleBase module = (IRegionModuleBase)mod; modulename = module.Name; shared = mod is ISharedRegionModule; } else { throw new Exception("AddCommand module parameter must be IRegionModule or IRegionModuleBase"); } } MainConsole.Instance.Commands.AddCommand( modulename, shared, command, shorthelp, longhelp, descriptivehelp, callback); }
/// <summary> /// Add a module to this scene. /// </summary> /// <param name="name"></param> /// <param name="module"></param> public void AddModule(string name, IRegionModule module) { if (!Modules.ContainsKey(name)) { Modules.Add(name, module); } }
/// <summary> /// Loads/initialises a Module instance that can be used by multiple Regions /// </summary> /// <param name="module"></param> public void LoadSharedModule(IRegionModule module) { if (!m_loadedSharedModules.ContainsKey(module.Name)) { m_loadedSharedModules.Add(module.Name, module); } }
public void LoadRegionModule(string dllName, string moduleName, Scene scene) { IRegionModule module = LoadModule(dllName, moduleName); if (module != null) { InitializeModule(module, scene); } }
/// <summary> /// Loads/initialises a Module instance that can be used by multiple Regions /// </summary> /// <param name="dllName"></param> /// <param name="moduleName"></param> public void LoadSharedModule(string dllName, string moduleName) { IRegionModule module = LoadModule(dllName, moduleName); if (module != null) { LoadSharedModule(module); } }
public void LoadDefaultSharedModule(IRegionModule module) { if (m_loadedSharedModules.ContainsKey(module.Name)) { m_log.ErrorFormat("[MODULES]: Module name \"{0}\" already exists in module list. Module not added!", module.Name); } else { m_loadedSharedModules.Add(module.Name, module); } }
public void LoadDefaultSharedModule(IRegionModule module) { if (m_loadedSharedModules.ContainsKey(module.Name)) { m_log.ErrorFormat("[MODULES]: Module name \"{0}\" already exists in module list. Module not added!", module.Name); } else { m_loadedSharedModules.Add(module.Name, module); } }
/// <summary> /// Setup modules for a scene. /// </summary> /// <param name="scene"></param> /// <param name="config"></param> /// <param name="modules"></param> public static void SetupSceneModules(Scene scene, IConfigSource config, params object[] modules) { List <IRegionModuleBase> newModules = new List <IRegionModuleBase>(); foreach (object module in modules) { if (module is IRegionModule) { IRegionModule m = (IRegionModule)module; m.Initialise(scene, config); scene.AddModule(m.Name, m); m.PostInitialise(); } else if (module is IRegionModuleBase) { // for the new system, everything has to be initialised first, // shared modules have to be post-initialised, then all get an AddRegion with the scene IRegionModuleBase m = (IRegionModuleBase)module; m.Initialise(config); newModules.Add(m); } } foreach (IRegionModuleBase module in newModules) { if (module is ISharedRegionModule) { ((ISharedRegionModule)module).PostInitialise(); } } foreach (IRegionModuleBase module in newModules) { module.AddRegion(scene); scene.AddRegionModule(module.Name, module); } // RegionLoaded is fired after all modules have been appropriately added to all scenes foreach (IRegionModuleBase module in newModules) { module.RegionLoaded(scene); } scene.SetModuleInterfaces(); }
/// <summary> /// Call this from a region module to add a command to the OpenSim console. /// </summary> /// <param name="mod"></param> /// <param name="command"></param> /// <param name="shorthelp"></param> /// <param name="longhelp"></param> /// <param name="descriptivehelp"></param> /// <param name="callback"></param> public void AddCommand(object mod, string command, string shorthelp, string longhelp, string descriptivehelp, CommandDelegate callback) { string moduleName = ""; if (mod != null) { if (mod is IRegionModule) { IRegionModule module = (IRegionModule)mod; moduleName = module.Name; } else if (mod is IRegionModuleBase) { IRegionModuleBase module = (IRegionModuleBase)mod; moduleName = module.Name; } else { throw new Exception("AddCommand module parameter must be IRegionModule or IRegionModuleBase"); } } AddCommand(moduleName, mod, command, shorthelp, longhelp, descriptivehelp, callback); }
public void InitializeModule(IRegionModule module, Scene scene) { module.Initialise(scene, m_config); scene.AddModule(module.Name, module); m_loadedModules.Add(module); }
public void UnloadModule(IRegionModule rm) { rm.Close(); m_loadedModules.Remove(rm); }
public void InitializeModule(IRegionModule module, Scene scene) { module.Initialise(scene, m_config); scene.AddModule(module.Name, module); m_loadedModules.Add(module); }
public void UnloadModule(IRegionModule rm) { rm.Close(); m_loadedModules.Remove(rm); }
/// <summary> /// Loads/initialises a Module instance that can be used by multiple Regions /// </summary> /// <param name="module"></param> public void LoadSharedModule(IRegionModule module) { if (!m_loadedSharedModules.ContainsKey(module.Name)) { m_loadedSharedModules.Add(module.Name, module); } }