From e93828fe00f3ccc222c760eaf930de33cbc6c0e0 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sat, 8 Nov 2008 14:35:52 +0000 Subject: Add some discovery code, laying groundwork for region-crossing scripts No user functionality yet --- .../Scenes/SceneObjectPart.Inventory.cs | 26 ++++++++++++++++++++++ OpenSim/Region/Interfaces/IScriptModule.cs | 3 +++ .../ScriptEngine/Interfaces/IScriptEngine.cs | 3 --- 3 files changed, 29 insertions(+), 3 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs index d4346e4..2f08322 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs @@ -32,6 +32,7 @@ using OpenMetaverse; using log4net; using OpenSim.Framework; using OpenSim.Framework.Communications.Cache; +using OpenSim.Region.Interfaces; using OpenSim.Region.Environment.Interfaces; using OpenSim.Region.Environment.Scenes.Scripting; @@ -763,5 +764,30 @@ namespace OpenSim.Region.Environment.Scenes return ret; } + + string[] GetScriptAssemblies() + { + IScriptModule[] engines = m_parentGroup.Scene.RequestModuleInterfaces(); + + List ret = new List(); + + foreach (TaskInventoryItem item in m_taskInventory.Values) + { + if (item.InvType == 10) + { + foreach (IScriptModule e in engines) + { + string n = e.GetAssemblyName(item.ItemID); + if (n != "") + { + if (!ret.Contains(n)) + ret.Add(n); + break; + } + } + } + } + return ret.ToArray(); + } } } diff --git a/OpenSim/Region/Interfaces/IScriptModule.cs b/OpenSim/Region/Interfaces/IScriptModule.cs index e01b472..9dca862 100644 --- a/OpenSim/Region/Interfaces/IScriptModule.cs +++ b/OpenSim/Region/Interfaces/IScriptModule.cs @@ -34,5 +34,8 @@ namespace OpenSim.Region.Interfaces public interface IScriptModule { string ScriptEngineName { get; } + + string GetAssemblyName(UUID itemID); + string GetXMLState(UUID itemID); } } diff --git a/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs b/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs index 29b83dc..db05d47 100644 --- a/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs +++ b/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs @@ -72,8 +72,5 @@ namespace OpenSim.Region.ScriptEngine.Interfaces string ScriptEngineName { get; } ILog Log { get; } IScriptApi GetApi(UUID itemID, string name); - - string GetAssemblyName(UUID itemID); - string GetXMLState(UUID itemID); } } -- cgit v1.1