diff options
author | Tedd Hansen | 2008-11-08 17:35:48 +0000 |
---|---|---|
committer | Tedd Hansen | 2008-11-08 17:35:48 +0000 |
commit | 9511a8c76370f21e839114007dcd2b25c69b009a (patch) | |
tree | b63323dfd96ecd1cc3cd560939bd66bb43ec9c1c /OpenSim/Framework/PluginLoader.cs | |
parent | * Added IClientIM to IClientCore interfaces (diff) | |
download | opensim-SC_OLD-9511a8c76370f21e839114007dcd2b25c69b009a.zip opensim-SC_OLD-9511a8c76370f21e839114007dcd2b25c69b009a.tar.gz opensim-SC_OLD-9511a8c76370f21e839114007dcd2b25c69b009a.tar.bz2 opensim-SC_OLD-9511a8c76370f21e839114007dcd2b25c69b009a.tar.xz |
Work in progress on SECS stuff. Have been holding it off until after 0.6 release. Still messy as hell and doesn't really work yet. Will undergo dramatic changes. AND MOST IMPORTANTLY: Will be conformed to work in coop with todays DNE and XEngine, hopefully one day providing a common interface for all components.
Diffstat (limited to 'OpenSim/Framework/PluginLoader.cs')
-rw-r--r-- | OpenSim/Framework/PluginLoader.cs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/OpenSim/Framework/PluginLoader.cs b/OpenSim/Framework/PluginLoader.cs index 497d9f5..440e0d5 100644 --- a/OpenSim/Framework/PluginLoader.cs +++ b/OpenSim/Framework/PluginLoader.cs | |||
@@ -171,6 +171,7 @@ namespace OpenSim.Framework | |||
171 | if (filters.ContainsKey (ext)) | 171 | if (filters.ContainsKey (ext)) |
172 | filter = filters [ext]; | 172 | filter = filters [ext]; |
173 | 173 | ||
174 | List<T> loadedPlugins = new List<T>(); | ||
174 | foreach (PluginExtensionNode node in AddinManager.GetExtensionNodes (ext)) | 175 | foreach (PluginExtensionNode node in AddinManager.GetExtensionNodes (ext)) |
175 | { | 176 | { |
176 | log.Info("[PLUGINS]: Trying plugin " + node.Path); | 177 | log.Info("[PLUGINS]: Trying plugin " + node.Path); |
@@ -179,8 +180,15 @@ namespace OpenSim.Framework | |||
179 | continue; | 180 | continue; |
180 | 181 | ||
181 | T plugin = (T) node.CreateInstance(); | 182 | T plugin = (T) node.CreateInstance(); |
182 | Initialiser.Initialise (plugin); | 183 | loadedPlugins.Add(plugin); |
183 | Plugins.Add (plugin); | 184 | } |
185 | // We do Initialise() in a second loop after CreateInstance | ||
186 | // So that modules who need init before others can do it | ||
187 | // Example: Script Engine Component System needs to load its components before RegionLoader starts | ||
188 | foreach (T plugin in loadedPlugins) | ||
189 | { | ||
190 | Initialiser.Initialise(plugin); | ||
191 | Plugins.Add(plugin); | ||
184 | } | 192 | } |
185 | } | 193 | } |
186 | } | 194 | } |