diff options
author | Adam Frisby | 2009-04-03 09:22:34 +0000 |
---|---|---|
committer | Adam Frisby | 2009-04-03 09:22:34 +0000 |
commit | 7e91f41535e27d992cf85a46bed25b781367dcf1 (patch) | |
tree | df10571e25be88239637d08efad9ea552e543997 /OpenSim | |
parent | fix an error in hollow cylinder face number calculation (diff) | |
download | opensim-SC_OLD-7e91f41535e27d992cf85a46bed25b781367dcf1.zip opensim-SC_OLD-7e91f41535e27d992cf85a46bed25b781367dcf1.tar.gz opensim-SC_OLD-7e91f41535e27d992cf85a46bed25b781367dcf1.tar.bz2 opensim-SC_OLD-7e91f41535e27d992cf85a46bed25b781367dcf1.tar.xz |
* Implements "ID" semi-global within MRM scripts. This is tied to the 'state ID' for MRMs.
* Implements IPersistence interface, allows simple KeyValue access for MRM scripts to a more permanent datastore.
Diffstat (limited to 'OpenSim')
5 files changed, 45 insertions, 7 deletions
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Host.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Host.cs index 5a3690f..394e024 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/Host.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/Host.cs | |||
@@ -25,10 +25,7 @@ | |||
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 System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Reflection; | 28 | using System.Reflection; |
31 | using System.Text; | ||
32 | using log4net; | 29 | using log4net; |
33 | 30 | ||
34 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | 31 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule |
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/IPersistence.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IPersistence.cs new file mode 100644 index 0000000..6020a7a --- /dev/null +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IPersistence.cs | |||
@@ -0,0 +1,31 @@ | |||
1 | using System; | ||
2 | using System.Collections.Generic; | ||
3 | using System.Text; | ||
4 | |||
5 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | ||
6 | { | ||
7 | interface IPersistence | ||
8 | { | ||
9 | Object Get(MRMBase state, Guid storageID); | ||
10 | Object Get(MRMBase state); | ||
11 | |||
12 | /// <summary> | ||
13 | /// Stores 'data' into the persistence system | ||
14 | /// associated with this object, however saved | ||
15 | /// under the ID 'storageID'. This data may | ||
16 | /// be accessed by other scripts however. | ||
17 | /// </summary> | ||
18 | /// <param name="state"></param> | ||
19 | /// <param name="storageID"></param> | ||
20 | /// <param name="data"></param> | ||
21 | void Put(MRMBase state, Guid storageID, Object data); | ||
22 | |||
23 | /// <summary> | ||
24 | /// Stores 'data' into the persistence system | ||
25 | /// using the default ID for this script. | ||
26 | /// </summary> | ||
27 | /// <param name="state"></param> | ||
28 | /// <param name="data"></param> | ||
29 | void Put(MRMBase state, Object data); | ||
30 | } | ||
31 | } | ||
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMBase.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMBase.cs index b98bb95..c47e592 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMBase.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMBase.cs | |||
@@ -25,17 +25,21 @@ | |||
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 abstract class MRMBase | 32 | public abstract class MRMBase |
31 | { | 33 | { |
32 | private IWorld m_world; | 34 | private IWorld m_world; |
33 | private IHost m_host; | 35 | private IHost m_host; |
36 | private UUID m_id; | ||
34 | 37 | ||
35 | public void InitMiniModule(IWorld world, IHost host) | 38 | public void InitMiniModule(IWorld world, IHost host, UUID uniqueID) |
36 | { | 39 | { |
37 | m_world = world; | 40 | m_world = world; |
38 | m_host = host; | 41 | m_host = host; |
42 | m_id = uniqueID; | ||
39 | } | 43 | } |
40 | 44 | ||
41 | protected IWorld World | 45 | protected IWorld World |
@@ -48,6 +52,11 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
48 | get { return m_host; } | 52 | get { return m_host; } |
49 | } | 53 | } |
50 | 54 | ||
55 | public UUID ID | ||
56 | { | ||
57 | get { return m_id; } | ||
58 | } | ||
59 | |||
51 | public abstract void Start(); | 60 | public abstract void Start(); |
52 | public abstract void Stop(); | 61 | public abstract void Stop(); |
53 | } | 62 | } |
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs index 7c87756..3e53bc5 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs | |||
@@ -82,7 +82,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | |||
82 | CompileFromDotNetText(script, itemID.ToString()), | 82 | CompileFromDotNetText(script, itemID.ToString()), |
83 | "OpenSim.MiniModule"); | 83 | "OpenSim.MiniModule"); |
84 | m_log.Info("[MRM] Created MRM Instance"); | 84 | m_log.Info("[MRM] Created MRM Instance"); |
85 | mmb.InitMiniModule(m_world, m_host); | 85 | mmb.InitMiniModule(m_world, m_host, itemID); |
86 | m_scripts[itemID] = mmb; | 86 | m_scripts[itemID] = mmb; |
87 | 87 | ||
88 | m_log.Info("[MRM] Starting MRM"); | 88 | m_log.Info("[MRM] Starting MRM"); |
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs index 8b7b470..5010a34 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs | |||
@@ -1,11 +1,12 @@ | |||
1 | using System.Collections.Generic; | 1 | using System; |
2 | using System.Collections.Generic; | ||
2 | using OpenMetaverse; | 3 | using OpenMetaverse; |
3 | using OpenSim.Framework; | 4 | using OpenSim.Framework; |
4 | using OpenSim.Region.Framework.Scenes; | 5 | using OpenSim.Region.Framework.Scenes; |
5 | 6 | ||
6 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule | 7 | namespace OpenSim.Region.OptionalModules.Scripting.Minimodule |
7 | { | 8 | { |
8 | class SOPObject : IObject | 9 | class SOPObject : MarshalByRefObject, IObject |
9 | { | 10 | { |
10 | private readonly Scene m_rootScene; | 11 | private readonly Scene m_rootScene; |
11 | private readonly uint m_localID; | 12 | private readonly uint m_localID; |