diff options
author | Adam Frisby | 2009-08-07 14:17:51 +1000 |
---|---|---|
committer | Adam Frisby | 2009-08-07 14:17:51 +1000 |
commit | 270ae50d700831ac996025045dc32341d68ee0f9 (patch) | |
tree | 590006ed8571195275f4bfce26fb6131a4b30d94 /OpenSim | |
parent | Merge branch 'master' of ssh://melanie@opensimulator.org/var/git/opensim (diff) | |
download | opensim-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.cs | 1 | ||||
-rw-r--r-- | OpenSim/Region/OptionalModules/Scripting/Minimodule/MRMModule.cs | 9 |
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); |