From 17bdc45c5ce623549b185a6c4bd5e8fdf00c8d8e Mon Sep 17 00:00:00 2001 From: Melanie Date: Tue, 4 Aug 2009 03:17:13 +0100 Subject: Add plumbing for the SceneObjectDeleter to wait for the script engine to allow final deletion of objects. Meant to support the attach(NULL_KEY) event, --- OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs | 5 +++++ OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs | 1 + OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs | 5 +++++ OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | 9 +++++++++ 4 files changed, 20 insertions(+) (limited to 'OpenSim/Region/ScriptEngine') diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs index ec94afa..987827c 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs @@ -476,5 +476,10 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine { return ""; } + + public bool CanBeDeleted(UUID itemID) + { + return true; + } } } diff --git a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs index 64f7077..c2fce2f 100644 --- a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs @@ -95,6 +95,7 @@ namespace OpenSim.Region.ScriptEngine.Interfaces UUID GetDetectID(int idx); void SaveState(string assembly); void DestroyScriptInstance(); + bool CanBeDeleted(); IScriptApi GetApi(string name); diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs index 2457b3a..42d61a7 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs @@ -991,5 +991,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance { get { return m_RegionID; } } + + public bool CanBeDeleted() + { + return true; + } } } diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index dff53dd..c7673c7 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs @@ -1241,5 +1241,14 @@ namespace OpenSim.Region.ScriptEngine.XEngine return ""; return instance.GetXMLState(); } + + public bool CanBeDeleted(UUID itemID) + { + IScriptInstance instance = GetInstance(itemID); + if (instance == null) + return true; + + return instance.CanBeDeleted(); + } } } -- cgit v1.1