aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorAdam Frisby2009-08-07 14:17:51 +1000
committerAdam Frisby2009-08-07 14:17:51 +1000
commit270ae50d700831ac996025045dc32341d68ee0f9 (patch)
tree590006ed8571195275f4bfce26fb6131a4b30d94 /OpenSim
parentMerge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim (diff)
downloadopensim-SC_OLD-270ae50d700831ac996025045dc32341d68ee0f9.zip
opensim-SC_OLD-270ae50d700831ac996025045dc32341d68ee0f9.tar.gz
opensim-SC_OLD-270ae50d700831ac996025045dc32341d68ee0f9.tar.bz2
opensim-SC_OLD-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.
Diffstat (limited to 'OpenSim')
-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);