From 285dfe305550dc3f47f934ef96ae0c1b0b87aa60 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Tue, 14 Apr 2009 03:22:02 +0000 Subject: Add the RegionLoaded(Scene) API to the new region module interface to allow region modules to use another region module's interfaces and events in a scene context --- .../RegionModulesControllerPlugin.cs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'OpenSim/ApplicationPlugins') diff --git a/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs b/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs index 49a400a..1914120 100644 --- a/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs +++ b/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs @@ -174,6 +174,26 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController module.AddRegion(scene); scene.AddRegionModule(module.Name, module); } + + // This is needed for all module types. Modules will register + // Interfaces with scene in AddScene, and will also need a means + // to access interfaces registered by other modules. Without + // this extra method, a module attempting to use another modules's + // interface would be successful only depending on load order, + // which can't be depended upon, or modules would need to resort + // to ugly kludges to attempt to request interfaces when needed + // and unneccessary caching logic repeated in all modules. + // The extra function stub is just that much cleaner + // + foreach (ISharedRegionModule module in m_sharedInstances) + { + module.RegionLoaded(scene); + } + + foreach (INonSharedRegionModule module in list) + { + module.RegionLoaded(scene); + } } public void RemoveRegionFromModules (Scene scene) -- cgit v1.1