From 6e9d7484d059f8ad8b11a11d51d987de1ea2fe73 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Fri, 26 Sep 2008 16:19:50 +0000 Subject: Pluggable API module (XEngine style) support for DNE --- .../ScriptEngine/DotNetEngine/ScriptManager.cs | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'OpenSim/Region/ScriptEngine') diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs index 6d8096f..fca4617 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs @@ -52,6 +52,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine public string Source; public int StartParam; public AppDomain AppDomain; + public Dictionary Apis; } public class ScriptManager @@ -168,15 +169,21 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine // Add it to our script memstruct m_scriptEngine.m_ScriptManager.SetScript(localID, itemID, id); - LSL_Api LSL = new LSL_Api(); - OSSL_Api OSSL = new OSSL_Api(); + id.Apis = new Dictionary(); - LSL.Initialize(m_scriptEngine, m_host, localID, itemID); - OSSL.Initialize(m_scriptEngine, m_host, localID, itemID); + ApiManager am = new ApiManager(); - // Start the script - giving it the APIs - CompiledScript.InitApi("LSL", LSL); - CompiledScript.InitApi("OSSL", OSSL); + foreach (string api in am.GetApis()) + { + id.Apis[api] = am.CreateApi(api); + id.Apis[api].Initialize(m_scriptEngine, m_host, + localID, itemID); + } + + foreach (KeyValuePair kv in id.Apis) + { + CompiledScript.InitApi(kv.Key, kv.Value); + } // Fire the first start-event int eventFlags = -- cgit v1.1