From 94aaf67dfaafbcbd4d871f674c465a34c1c1f332 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sun, 21 Sep 2008 21:47:00 +0000 Subject: Change the scirpt engine loading mechanism. Script engines are now ordinary region modules and are able to coexist in one instance. See http://opensimulator.org/wiki/ScriptEngines for details. There were changes to OpenSim.ini.example, please note DefaultScriptEngine. Also see the User docs and FAQ on the Wiki. Default is DotNetEngine. --- OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | 30 ++++++++++++++++++-------- 1 file changed, 21 insertions(+), 9 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/XEngine') diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index d6e6dae..c72d281 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs @@ -67,6 +67,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine private int m_SleepTime; private int m_SaveTime; private ThreadPriority m_Prio; + private bool m_Enabled = true; // disable warning: need to keep a reference to XEngine.EventManager // alive to avoid it being garbage collected @@ -151,21 +152,26 @@ namespace OpenSim.Region.ScriptEngine.XEngine // public void Initialise(Scene scene, IConfigSource configSource) { - AppDomain.CurrentDomain.AssemblyResolve += - OnAssemblyResolve; - - m_log.InfoFormat("[XEngine] Initializing scripts in region {0}", - scene.RegionInfo.RegionName); - m_Scene = scene; - m_ScriptConfig = configSource.Configs["XEngine"]; if (m_ScriptConfig == null) { - m_log.ErrorFormat("[XEngine] No script configuration found. Scripts disabled"); +// m_log.ErrorFormat("[XEngine] No script configuration found. Scripts disabled"); return; } + m_Enabled = m_ScriptConfig.GetBoolean("Enabled", true); + + if (!m_Enabled) + return; + + AppDomain.CurrentDomain.AssemblyResolve += + OnAssemblyResolve; + + m_log.InfoFormat("[XEngine] Initializing scripts in region {0}", + scene.RegionInfo.RegionName); + m_Scene = scene; + m_MinThreads = m_ScriptConfig.GetInt("MinThreads", 2); m_MaxThreads = m_ScriptConfig.GetInt("MaxThreads", 100); m_IdleTimeout = m_ScriptConfig.GetInt("IdleTimeout", 60); @@ -220,6 +226,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine public void PostInitialise() { + if (!m_Enabled) + return; + m_EventManager = new EventManager(this); m_Compiler = new Compiler(this); @@ -330,8 +339,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine get { return false; } } - public void OnRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez) + public void OnRezScript(uint localID, UUID itemID, string script, int startParam, bool postOnRez, string engine) { + if (engine != "XEngine") + return; + Object[] parms = new Object[]{localID, itemID, script, startParam, postOnRez}; lock (m_CompileQueue) -- cgit v1.1