diff options
author | Adam Frisby | 2009-05-12 13:10:04 +0000 |
---|---|---|
committer | Adam Frisby | 2009-05-12 13:10:04 +0000 |
commit | 559355189af9432b01eef00c76071dee684a6cc0 (patch) | |
tree | 6b3585f7391689a00d3accafcafceaa440a09c58 | |
parent | From: Alan Webb <alan_webb@us.ibm.com> (diff) | |
download | opensim-SC-559355189af9432b01eef00c76071dee684a6cc0.zip opensim-SC-559355189af9432b01eef00c76071dee684a6cc0.tar.gz opensim-SC-559355189af9432b01eef00c76071dee684a6cc0.tar.bz2 opensim-SC-559355189af9432b01eef00c76071dee684a6cc0.tar.xz |
* Applies Mantis #3630 - Adds support for outside MRM initialisation, makes MRMModule compatible with the Visual Studio MRMLoader ( http://forge.opensimulator.org/gf/project/mrmloader/ )
13 files changed, 32 insertions, 18 deletions
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Graphics.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Graphics.cs index 50e6f6c..0b937c1 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Graphics.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Graphics.cs | |||
@@ -33,7 +33,7 @@ using OpenSim.Region.Framework.Scenes; | |||
33 | 33 | ||
34 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | 34 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule |
35 | { | 35 | { |
36 | class Graphics : IGraphics | 36 | class Graphics : System.MarshalByRefObject, IGraphics |
37 | { | 37 | { |
38 | private readonly Scene m_scene; | 38 | private readonly Scene m_scene; |
39 | 39 | ||
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Heightmap.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Heightmap.cs index 9b9d686..47c3085 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Heightmap.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Heightmap.cs | |||
@@ -29,7 +29,7 @@ using OpenSim.Region.Framework.Scenes; | |||
29 | 29 | ||
30 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | 30 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule |
31 | { | 31 | { |
32 | public class Heightmap : IHeightmap | 32 | public class Heightmap : System.MarshalByRefObject, IHeightmap |
33 | { | 33 | { |
34 | private readonly Scene m_scene; | 34 | private readonly Scene m_scene; |
35 | 35 | ||
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Host.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Host.cs index 193461d..cbde283 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Host.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Host.cs | |||
@@ -32,7 +32,7 @@ using OpenSim.Region.OptionalModules.Scripting.Minimodule.Interfaces; | |||
32 | 32 | ||
33 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | 33 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule |
34 | { | 34 | { |
35 | class Host : IHost | 35 | class Host : System.MarshalByRefObject, IHost |
36 | { | 36 | { |
37 | private readonly IObject m_obj; | 37 | private readonly IObject m_obj; |
38 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 38 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/IMRMModule.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IMRMModule.cs index 486d0d9..9f48081 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/IMRMModule.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IMRMModule.cs | |||
@@ -25,10 +25,13 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | */ | 26 | */ |
27 | 27 | ||
28 | using OpenMetaverse; | ||
29 | |||
28 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | 30 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule |
29 | { | 31 | { |
30 | public interface IMRMModule | 32 | public interface IMRMModule |
31 | { | 33 | { |
32 | void RegisterExtension<T>(T instance); | 34 | void RegisterExtension<T>(T instance); |
35 | void InitializeMRM(MRMBase mmb, uint localID, UUID itemID); | ||
33 | } | 36 | } |
34 | } \ No newline at end of file | 37 | } |
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/LOParcel.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/LOParcel.cs index d2f3121..37c7434 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/LOParcel.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/LOParcel.cs | |||
@@ -30,7 +30,7 @@ using OpenSim.Region.Framework.Scenes; | |||
30 | 30 | ||
31 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | 31 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule |
32 | { | 32 | { |
33 | class LOParcel : IParcel | 33 | class LOParcel : System.MarshalByRefObject, IParcel |
34 | { | 34 | { |
35 | private readonly Scene m_scene; | 35 | private readonly Scene m_scene; |
36 | private readonly int m_parcelID; | 36 | private readonly int m_parcelID; |
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMBase.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMBase.cs index c47e592..6a23f5d 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMBase.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMBase.cs | |||
@@ -29,7 +29,7 @@ using OpenMetaverse; | |||
29 | 29 | ||
30 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | 30 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule |
31 | { | 31 | { |
32 | public abstract class MRMBase | 32 | public abstract class MRMBase : System.MarshalByRefObject |
33 | { | 33 | { |
34 | private IWorld m_world; | 34 | private IWorld m_world; |
35 | private IHost m_host; | 35 | private IHost m_host; |
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs index 3a6b1b1..e0b6150 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs | |||
@@ -108,15 +108,13 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
108 | try | 108 | try |
109 | { | 109 | { |
110 | m_log.Info("[MRM] Found C# MRM"); | 110 | m_log.Info("[MRM] Found C# MRM"); |
111 | IWorld m_world = new World(m_scene); | ||
112 | IHost m_host = new Host(new SOPObject(m_scene, localID), m_scene, new ExtensionHandler(m_extensions), | ||
113 | m_microthreads); | ||
114 | 111 | ||
115 | MRMBase mmb = (MRMBase)AppDomain.CurrentDomain.CreateInstanceFromAndUnwrap( | 112 | MRMBase mmb = (MRMBase)AppDomain.CurrentDomain.CreateInstanceFromAndUnwrap( |
116 | CompileFromDotNetText(script, itemID.ToString()), | 113 | CompileFromDotNetText(script, itemID.ToString()), |
117 | "OpenSim.MiniModule"); | 114 | "OpenSim.MiniModule"); |
118 | m_log.Info("[MRM] Created MRM Instance"); | 115 | |
119 | mmb.InitMiniModule(m_world, m_host, itemID); | 116 | InitializeMRM(mmb, localID, itemID); |
117 | |||
120 | m_scripts[itemID] = mmb; | 118 | m_scripts[itemID] = mmb; |
121 | 119 | ||
122 | m_log.Info("[MRM] Starting MRM"); | 120 | m_log.Info("[MRM] Starting MRM"); |
@@ -148,6 +146,19 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
148 | } | 146 | } |
149 | } | 147 | } |
150 | 148 | ||
149 | public void InitializeMRM(MRMBase mmb, uint localID, UUID itemID) | ||
150 | { | ||
151 | |||
152 | m_log.Info("[MRM] Created MRM Instance"); | ||
153 | |||
154 | IWorld m_world = new World(m_scene); | ||
155 | IHost m_host = new Host(new SOPObject(m_scene, localID), m_scene, new ExtensionHandler(m_extensions), | ||
156 | m_microthreads); | ||
157 | |||
158 | mmb.InitMiniModule(m_world, m_host, itemID); | ||
159 | |||
160 | } | ||
161 | |||
151 | public void PostInitialise() | 162 | public void PostInitialise() |
152 | { | 163 | { |
153 | 164 | ||
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MicroScheduler.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MicroScheduler.cs index aaa2848..73fe8b8 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MicroScheduler.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MicroScheduler.cs | |||
@@ -35,7 +35,7 @@ using OpenSim.Region.OptionalModules.Scripting.Minimodule.Interfaces; | |||
35 | 35 | ||
36 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | 36 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule |
37 | { | 37 | { |
38 | public class MicroScheduler : IMicrothreader | 38 | public class MicroScheduler : System.MarshalByRefObject, IMicrothreader |
39 | { | 39 | { |
40 | private readonly List<IEnumerator> m_threads = new List<IEnumerator>(); | 40 | private readonly List<IEnumerator> m_threads = new List<IEnumerator>(); |
41 | 41 | ||
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/ObjectAccessor.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/ObjectAccessor.cs index 2bd2e29..a64a1c2 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/ObjectAccessor.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/ObjectAccessor.cs | |||
@@ -35,7 +35,7 @@ using IEnumerable=System.Collections.IEnumerable; | |||
35 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | 35 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule |
36 | { | 36 | { |
37 | 37 | ||
38 | internal class IObjEnum : IEnumerator<IObject> | 38 | internal class IObjEnum : System.MarshalByRefObject, IEnumerator<IObject> |
39 | { | 39 | { |
40 | private readonly Scene m_scene; | 40 | private readonly Scene m_scene; |
41 | private readonly IEnumerator<EntityBase> m_sogEnum; | 41 | private readonly IEnumerator<EntityBase> m_sogEnum; |
@@ -75,7 +75,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
75 | } | 75 | } |
76 | } | 76 | } |
77 | 77 | ||
78 | public class ObjectAccessor : IObjectAccessor | 78 | public class ObjectAccessor : System.MarshalByRefObject, IObjectAccessor |
79 | { | 79 | { |
80 | private readonly Scene m_scene; | 80 | private readonly Scene m_scene; |
81 | 81 | ||
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SEUser.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SEUser.cs index ebf68b1..e2bdf5e 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SEUser.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SEUser.cs | |||
@@ -32,7 +32,7 @@ using OpenMetaverse; | |||
32 | 32 | ||
33 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | 33 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule |
34 | { | 34 | { |
35 | class SEUser : ISocialEntity | 35 | class SEUser : System.MarshalByRefObject, ISocialEntity |
36 | { | 36 | { |
37 | private readonly UUID m_uuid; | 37 | private readonly UUID m_uuid; |
38 | private readonly string m_name; | 38 | private readonly string m_name; |
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObjectMaterial.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObjectMaterial.cs index e6b99be..68f2f52 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObjectMaterial.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObjectMaterial.cs | |||
@@ -31,7 +31,7 @@ using OpenSim.Region.Framework.Scenes; | |||
31 | 31 | ||
32 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | 32 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule |
33 | { | 33 | { |
34 | class SOPObjectMaterial : IObjectMaterial | 34 | class SOPObjectMaterial : System.MarshalByRefObject, IObjectMaterial |
35 | { | 35 | { |
36 | private readonly int m_face; | 36 | private readonly int m_face; |
37 | private readonly SceneObjectPart m_parent; | 37 | private readonly SceneObjectPart m_parent; |
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SPAvatar.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SPAvatar.cs index 41074c3..0f2076e 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SPAvatar.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SPAvatar.cs | |||
@@ -31,7 +31,7 @@ using OpenSim.Region.Framework.Scenes; | |||
31 | 31 | ||
32 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | 32 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule |
33 | { | 33 | { |
34 | class SPAvatar : IAvatar | 34 | class SPAvatar : System.MarshalByRefObject, IAvatar |
35 | { | 35 | { |
36 | private readonly Scene m_rootScene; | 36 | private readonly Scene m_rootScene; |
37 | private readonly UUID m_ID; | 37 | private readonly UUID m_ID; |
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs index cbbe86d..dc80dcc 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/World.cs | |||
@@ -32,7 +32,7 @@ using OpenSim.Region.Framework.Scenes; | |||
32 | 32 | ||
33 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | 33 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule |
34 | { | 34 | { |
35 | public class World : IWorld | 35 | public class World : System.MarshalByRefObject, IWorld |
36 | { | 36 | { |
37 | private readonly Scene m_internalScene; | 37 | private readonly Scene m_internalScene; |
38 | private readonly Heightmap m_heights; | 38 | private readonly Heightmap m_heights; |