From ed1208d04378b2ef9928ed270c99f4f99f3a30d5 Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Sun, 12 Aug 2007 19:04:07 +0000 Subject: ScriptEngine successfully compiles script, we are now even further than LSO was. Also added C# script support. --- .../ScriptEngine/DotNetEngine/ScriptManager.cs | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs') diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs index 832807d..c34889a 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs @@ -114,15 +114,23 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine FileName = ScriptID; // * Does script need compile? Send it to LSL compiler first. (TODO: Use (and clean) compiler cache) - if (FileName.ToLower().EndsWith(".lsl")) + Common.SendToDebug("ScriptManager Script extension: " + System.IO.Path.GetExtension(FileName).ToLower()); + switch (System.IO.Path.GetExtension(FileName).ToLower()) { - Common.SendToDebug("ScriptManager Script is LSL, compiling to .Net Assembly"); - // Create a new instance of the compiler (currently we don't want reuse) - OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.Compiler LSLCompiler = new OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.Compiler(); - // Compile - FileName = LSLCompiler.Compile(FileName); + case ".txt": + case ".lsl": + case ".cs": + Common.SendToDebug("ScriptManager Script is CS/LSL, compiling to .Net Assembly"); + // Create a new instance of the compiler (currently we don't want reuse) + OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.Compiler LSLCompiler = new OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.Compiler(); + // Compile + FileName = LSLCompiler.Compile(FileName); + break; + default: + throw new Exception("Unknown script type."); } + Common.SendToDebug("Compilation done"); // * Insert yield into code FileName = ProcessYield(FileName); @@ -197,7 +205,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine Type t; //try //{ - t = a.GetType("LSL_ScriptObject", true); + t = a.GetType("SecondLife.Script", true); //} //catch (Exception e) //{ -- cgit v1.1