diff options
Added IRegionCreator interface that all ApplicationPlugins that are creators of Scenes should implement and register with the ApplicationRegistry.StackModuleInterface<>(); So that other plugins can attach to their OnNewRegionCreated event.
Made some changes to IRegistryCore and RegistryCore so they support "Stacked" interfaces.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Framework/IRegionCreator.cs | 12 | ||||
-rw-r--r-- | OpenSim/Framework/IRegistryCore.cs | 5 | ||||
-rw-r--r-- | OpenSim/Framework/RegistryCore.cs | 10 |
3 files changed, 26 insertions, 1 deletions
diff --git a/OpenSim/Framework/IRegionCreator.cs b/OpenSim/Framework/IRegionCreator.cs new file mode 100644 index 0000000..7920ee4 --- /dev/null +++ b/OpenSim/Framework/IRegionCreator.cs | |||
@@ -0,0 +1,12 @@ | |||
1 | using System; | ||
2 | using System.Collections.Generic; | ||
3 | using System.Text; | ||
4 | |||
5 | namespace OpenSim.Framework | ||
6 | { | ||
7 | public delegate void NewRegionCreated(IScene scene); | ||
8 | public interface IRegionCreator | ||
9 | { | ||
10 | event NewRegionCreated OnNewRegionCreated; | ||
11 | } | ||
12 | } | ||
diff --git a/OpenSim/Framework/IRegistryCore.cs b/OpenSim/Framework/IRegistryCore.cs index 486dee6..9f251c5 100644 --- a/OpenSim/Framework/IRegistryCore.cs +++ b/OpenSim/Framework/IRegistryCore.cs | |||
@@ -4,10 +4,13 @@ using System.Text; | |||
4 | 4 | ||
5 | namespace OpenSim.Framework | 5 | namespace OpenSim.Framework |
6 | { | 6 | { |
7 | public interface IRegistryCore | 7 | public interface IRegistryCore |
8 | { | 8 | { |
9 | T Get<T>(); | 9 | T Get<T>(); |
10 | void RegisterInterface<T>(T iface); | 10 | void RegisterInterface<T>(T iface); |
11 | bool TryGet<T>(out T iface); | 11 | bool TryGet<T>(out T iface); |
12 | |||
13 | void StackModuleInterface<M>(M mod); | ||
14 | T[] RequestModuleInterfaces<T>(); | ||
12 | } | 15 | } |
13 | } | 16 | } |
diff --git a/OpenSim/Framework/RegistryCore.cs b/OpenSim/Framework/RegistryCore.cs index c703f9f..ee15845 100644 --- a/OpenSim/Framework/RegistryCore.cs +++ b/OpenSim/Framework/RegistryCore.cs | |||
@@ -40,5 +40,15 @@ namespace OpenSim.Framework | |||
40 | return (T)m_moduleInterfaces[typeof(T)]; | 40 | return (T)m_moduleInterfaces[typeof(T)]; |
41 | } | 41 | } |
42 | 42 | ||
43 | public void StackModuleInterface<M>(M mod) | ||
44 | { | ||
45 | |||
46 | } | ||
47 | |||
48 | public T[] RequestModuleInterfaces<T>() | ||
49 | { | ||
50 | return new T[] { default(T) }; | ||
51 | } | ||
52 | |||
43 | } | 53 | } |
44 | } | 54 | } |