aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorAdam Frisby2009-08-07 14:17:51 +1000
committerAdam Frisby2009-08-07 14:17:51 +1000
commit270ae50d700831ac996025045dc32341d68ee0f9 (patch)
tree590006ed8571195275f4bfce26fb6131a4b30d94
parentMerge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim (diff)
downloadopensim-SC-270ae50d700831ac996025045dc32341d68ee0f9.zip
opensim-SC-270ae50d700831ac996025045dc32341d68ee0f9.tar.gz
opensim-SC-270ae50d700831ac996025045dc32341d68ee0f9.tar.bz2
opensim-SC-270ae50d700831ac996025045dc32341d68ee0f9.tar.xz
* Implements MRM's Stop() interface member.
* MRM Scripts should do appropriate cleanup within this event, to allow for clean shutdowns and script updates. This means unbinding from events you are listening to, and releasing any resources.
-rw-r--r--OpenSim/Region/OptionalModules/Scripting/Minimodule/InventoryItem.cs1
-rw-r--r--OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs9
2 files changed, 10 insertions, 0 deletions
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/InventoryItem.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/InventoryItem.cs
index 40693ab..5bf29d7 100644
--- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/InventoryItem.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/InventoryItem.cs
@@ -81,6 +81,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
81 public int Type { get { return m_privateItem.Type; } } 81 public int Type { get { return m_privateItem.Type; } }
82 public UUID AssetID { get { return m_privateItem.AssetID; } } 82 public UUID AssetID { get { return m_privateItem.AssetID; } }
83 83
84 // This method exposes OpenSim/OpenMetaverse internals and needs to be replaced with a IAsset specific to MRM.
84 public T RetreiveAsset<T>() where T : OpenMetaverse.Assets.Asset, new() 85 public T RetreiveAsset<T>() where T : OpenMetaverse.Assets.Asset, new()
85 { 86 {
86 AssetBase a = m_rootSceene.AssetService.Get(AssetID.ToString()); 87 AssetBase a = m_rootSceene.AssetService.Get(AssetID.ToString());
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs
index 53145e2..eb807f2 100644
--- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs
@@ -73,6 +73,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
73 if (!source.Configs["MRM"].GetBoolean("Hidden", false)) 73 if (!source.Configs["MRM"].GetBoolean("Hidden", false))
74 { 74 {
75 scene.EventManager.OnRezScript += EventManager_OnRezScript; 75 scene.EventManager.OnRezScript += EventManager_OnRezScript;
76 scene.EventManager.OnStopScript += EventManager_OnStopScript;
76 } 77 }
77 78
78 scene.EventManager.OnFrame += EventManager_OnFrame; 79 scene.EventManager.OnFrame += EventManager_OnFrame;
@@ -90,6 +91,14 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
90 } 91 }
91 } 92 }
92 93
94 void EventManager_OnStopScript(uint localID, UUID itemID)
95 {
96 if(m_scripts.ContainsKey(itemID))
97 {
98 m_scripts[itemID].Stop();
99 }
100 }
101
93 void EventManager_OnFrame() 102 void EventManager_OnFrame()
94 { 103 {
95 m_microthreads.Tick(1000); 104 m_microthreads.Tick(1000);