From e94d6f12eeb3bd84a752fc401847b4c25d39cdac Mon Sep 17 00:00:00 2001
From: Tedd Hansen
Date: Wed, 17 Sep 2008 16:46:23 +0000
Subject: More ScriptEngine cleanup
---
.../ScriptEngine/DotNetEngine/AppDomainManager.cs | 223 --
OpenSim/Grid/ScriptEngine/DotNetEngine/Common.cs | 58 -
.../DotNetEngine/Compiler/LSL/Compiler.cs | 144 --
.../DotNetEngine/Compiler/LSL/LSL2CSConverter.cs | 314 ---
.../DotNetEngine/Compiler/LSL/LSL_BaseClass.cs | 2128 ------------------
.../DotNetEngine/Compiler/LSO/Common.cs | 87 -
.../DotNetEngine/Compiler/LSO/Engine.cs | 291 ---
.../Compiler/LSO/IL_common_functions.cs | 51 -
.../DotNetEngine/Compiler/LSO/LSL_BaseClass.cs | 82 -
.../Compiler/LSO/LSL_BaseClass_Builtins.cs | 405 ----
.../Compiler/LSO/LSL_BaseClass_OPCODES.cs | 393 ----
.../DotNetEngine/Compiler/LSO/LSL_CLRInterface.cs | 75 -
.../Compiler/LSO/LSL_OPCODE_IL_processor.cs | 435 ----
.../DotNetEngine/Compiler/LSO/LSO_Enums.cs | 561 -----
.../DotNetEngine/Compiler/LSO/LSO_Parser.cs | 728 -------
.../DotNetEngine/Compiler/LSO/LSO_Struct.cs | 143 --
.../Compiler/Server_API/LSL_BuiltIn_Commands.cs | 2290 --------------------
.../DotNetEngine/Compiler/c_sharp_example.txt | 12 -
.../Grid/ScriptEngine/DotNetEngine/EventManager.cs | 222 --
.../ScriptEngine/DotNetEngine/EventQueueManager.cs | 335 ---
.../ScriptEngine/DotNetEngine/LSLLongCmdHandler.cs | 354 ---
.../DotNetEngine/Properties/AssemblyInfo.cs | 65 -
.../Grid/ScriptEngine/DotNetEngine/ScriptEngine.cs | 119 -
.../ScriptEngine/DotNetEngine/ScriptManager.cs | 421 ----
.../TempDotNetMicroThreadingCodeInjector.cs | 68 -
25 files changed, 10004 deletions(-)
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/AppDomainManager.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Common.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSO/Common.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSO/Engine.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSO/IL_common_functions.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSO/LSL_BaseClass.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSO/LSL_BaseClass_Builtins.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSO/LSL_BaseClass_OPCODES.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSO/LSL_CLRInterface.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSO/LSL_OPCODE_IL_processor.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSO/LSO_Enums.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSO/LSO_Parser.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSO/LSO_Struct.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/c_sharp_example.txt
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/EventManager.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/EventQueueManager.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/LSLLongCmdHandler.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/Properties/AssemblyInfo.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/ScriptEngine.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/ScriptManager.cs
delete mode 100644 OpenSim/Grid/ScriptEngine/DotNetEngine/TempDotNetMicroThreadingCodeInjector.cs
(limited to 'OpenSim/Grid/ScriptEngine/DotNetEngine')
diff --git a/OpenSim/Grid/ScriptEngine/DotNetEngine/AppDomainManager.cs b/OpenSim/Grid/ScriptEngine/DotNetEngine/AppDomainManager.cs
deleted file mode 100644
index c5b5e95..0000000
--- a/OpenSim/Grid/ScriptEngine/DotNetEngine/AppDomainManager.cs
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Reflection;
-using OpenSim.Grid.ScriptEngine.DotNetEngine.Compiler.LSL;
-
-namespace OpenSim.Grid.ScriptEngine.DotNetEngine
-{
- public class AppDomainManager
- {
- private int maxScriptsPerAppDomain = 1;
-
- ///
- /// Internal list of all AppDomains
- ///
- private List appDomains = new List();
-
- ///
- /// Structure to keep track of data around AppDomain
- ///
- private class AppDomainStructure
- {
- ///
- /// The AppDomain itself
- ///
- public AppDomain CurrentAppDomain;
-
- ///
- /// Number of scripts loaded into AppDomain
- ///
- public int ScriptsLoaded;
-
- ///
- /// Number of dead scripts
- ///
- public int ScriptsWaitingUnload;
- }
-
- ///
- /// Current AppDomain
- ///
- private AppDomainStructure currentAD;
-
- private object getLock = new object(); // Mutex
- private object freeLock = new object(); // Mutex
-
- //private ScriptEngine m_scriptEngine;
- //public AppDomainManager(ScriptEngine scriptEngine)
- public AppDomainManager()
- {
- //m_scriptEngine = scriptEngine;
- }
-
- ///
- /// Find a free AppDomain, creating one if necessary
- ///
- /// Free AppDomain
- private AppDomainStructure GetFreeAppDomain()
- {
- Console.WriteLine("Finding free AppDomain");
- lock (getLock)
- {
- // Current full?
- if (currentAD != null && currentAD.ScriptsLoaded >= maxScriptsPerAppDomain)
- {
- // Add it to AppDomains list and empty current
- appDomains.Add(currentAD);
- currentAD = null;
- }
- // No current
- if (currentAD == null)
- {
- // Create a new current AppDomain
- currentAD = new AppDomainStructure();
- currentAD.CurrentAppDomain = PrepareNewAppDomain();
- }
-
- Console.WriteLine("Scripts loaded in this Appdomain: " + currentAD.ScriptsLoaded);
- return currentAD;
- }
- }
-
- private int AppDomainNameCount;
-
- ///
- /// Create and prepare a new AppDomain for scripts
- ///
- /// The new AppDomain
- private AppDomain PrepareNewAppDomain()
- {
- // Create and prepare a new AppDomain
- AppDomainNameCount++;
- // TODO: Currently security match current appdomain
-
- // Construct and initialize settings for a second AppDomain.
- AppDomainSetup ads = new AppDomainSetup();
- ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;
- ads.DisallowBindingRedirects = false;
- ads.DisallowCodeDownload = true;
- ads.LoaderOptimization = LoaderOptimization.MultiDomain; // Sounds good ;)
- ads.ShadowCopyFiles = "true"; // Enabled shadowing
- ads.ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
-
- AppDomain AD = AppDomain.CreateDomain("ScriptAppDomain_" + AppDomainNameCount, null, ads);
- Console.WriteLine("Loading: " +
- AssemblyName.GetAssemblyName("OpenSim.Region.ScriptEngine.Common.dll").ToString());
- AD.Load(AssemblyName.GetAssemblyName("OpenSim.Region.ScriptEngine.Common.dll"));
-
- // Return the new AppDomain
- return AD;
- }
-
- ///
- /// Unload appdomains that are full and have only dead scripts
- ///
- private void UnloadAppDomains()
- {
- lock (freeLock)
- {
- // Go through all
- foreach (AppDomainStructure ads in new ArrayList(appDomains))
- {
- // Don't process current AppDomain
- if (ads.CurrentAppDomain != currentAD.CurrentAppDomain)
- {
- // Not current AppDomain
- // Is number of unloaded bigger or equal to number of loaded?
- if (ads.ScriptsLoaded <= ads.ScriptsWaitingUnload)
- {
- Console.WriteLine("Found empty AppDomain, unloading");
- // Remove from internal list
- appDomains.Remove(ads);
-#if DEBUG
- long m = GC.GetTotalMemory(true);
-#endif
- // Unload
- AppDomain.Unload(ads.CurrentAppDomain);
-#if DEBUG
- Console.WriteLine("AppDomain unload freed " + (m - GC.GetTotalMemory(true)) +
- " bytes of memory");
-#endif
- }
- }
- }
- }
- }
-
- public LSL_BaseClass LoadScript(string FileName)
- {
- // Find next available AppDomain to put it in
- AppDomainStructure FreeAppDomain = GetFreeAppDomain();
-
- Console.WriteLine("Loading into AppDomain: " + FileName);
- LSL_BaseClass mbrt =
- (LSL_BaseClass)
- FreeAppDomain.CurrentAppDomain.CreateInstanceFromAndUnwrap(FileName, "SecondLife.Script");
- //Console.WriteLine("ScriptEngine AppDomainManager: is proxy={0}", RemotingServices.IsTransparentProxy(mbrt));
- FreeAppDomain.ScriptsLoaded++;
-
- return mbrt;
- }
-
- ///
- /// Increase "dead script" counter for an AppDomain
- ///
- ///
- //[Obsolete("Needs fixing, needs a real purpose in life!!!")]
- public void StopScript(AppDomain ad)
- {
- lock (freeLock)
- {
- Console.WriteLine("Stopping script in AppDomain");
- // Check if it is current AppDomain
- if (currentAD.CurrentAppDomain == ad)
- {
- // Yes - increase
- currentAD.ScriptsWaitingUnload++;
- return;
- }
-
- // Lopp through all AppDomains
- foreach (AppDomainStructure ads in new ArrayList(appDomains))
- {
- if (ads.CurrentAppDomain == ad)
- {
- // Found it
- ads.ScriptsWaitingUnload++;
- break;
- }
- }
- }
-
- UnloadAppDomains(); // Outsite lock, has its own GetLock
- }
- }
-}
diff --git a/OpenSim/Grid/ScriptEngine/DotNetEngine/Common.cs b/OpenSim/Grid/ScriptEngine/DotNetEngine/Common.cs
deleted file mode 100644
index 444c2e8..0000000
--- a/OpenSim/Grid/ScriptEngine/DotNetEngine/Common.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* Original code: Tedd Hansen */
-
-namespace OpenSim.Grid.ScriptEngine.DotNetEngine
-{
- public static class Common
- {
- private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
-
- public static bool debug = true;
- public static ScriptEngine mySE;
-
- //public delegate void SendToDebugEventDelegate(string Message);
- //public delegate void SendToLogEventDelegate(string Message);
- //static public event SendToDebugEventDelegate SendToDebugEvent;
- //static public event SendToLogEventDelegate SendToLogEvent;
-
- public static void SendToDebug(string Message)
- {
- //if (Debug == true)
- mySE.m_log.Info("[ScriptEngine]: Debug: " + Message);
- //SendToDebugEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + Message);
- }
-
- public static void SendToLog(string Message)
- {
- //if (Debug == true)
- mySE.m_log.Info("[ScriptEngine]: LOG: " + Message);
- //SendToLogEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + Message);
- }
- }
-}
diff --git a/OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs b/OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs
deleted file mode 100644
index 353d59e..0000000
--- a/OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.CodeDom.Compiler;
-using System.IO;
-using System.Reflection;
-using Microsoft.CSharp;
-
-namespace OpenSim.Grid.ScriptEngine.DotNetEngine.Compiler.LSL
-{
- public class Compiler
- {
- private LSL2CSConverter LSL_Converter = new LSL2CSConverter();
- private CSharpCodeProvider codeProvider = new CSharpCodeProvider();
- private static UInt64 scriptCompileCounter = 0;
- //private ICodeCompiler icc = codeProvider.CreateCompiler();
- public string CompileFromFile(string LSOFileName)
- {
- switch (Path.GetExtension(LSOFileName).ToLower())
- {
- case ".txt":
- case ".lsl":
- Common.SendToDebug("Source code is LSL, converting to CS");
- return CompileFromLSLText(File.ReadAllText(LSOFileName));
- case ".cs":
- Common.SendToDebug("Source code is CS");
- return CompileFromCSText(File.ReadAllText(LSOFileName));
- default:
- throw new Exception("Unknown script type.");
- }
- }
-
- ///
- /// Converts script from LSL to CS and calls CompileFromCSText
- ///
- /// LSL script
- /// Filename to .dll assembly
- public string CompileFromLSLText(string Script)
- {
- if (Script.Substring(0, 4).ToLower() == "//c#")
- {
- return CompileFromCSText(Script);
- }
- else
- {
- return CompileFromCSText(LSL_Converter.Convert(Script));
- }
- }
-
- ///
- /// Compile CS script to .Net assembly (.dll)
- ///
- /// CS script
- /// Filename to .dll assembly
- public string CompileFromCSText(string Script)
- {
- // Output assembly name
- scriptCompileCounter++;
- string OutFile = Path.Combine("ScriptEngines", "Script_" + scriptCompileCounter + ".dll");
- try
- {
- File.Delete(OutFile);
- }
- catch (Exception e)
- {
- Console.WriteLine("Exception attempting to delete old compiled script: " + e.ToString());
- }
- //string OutFile = Path.Combine("ScriptEngines", "SecondLife.Script.dll");
-
- // DEBUG - write source to disk
- try
- {
- File.WriteAllText(
- Path.Combine("ScriptEngines", "debug_" + Path.GetFileNameWithoutExtension(OutFile) + ".cs"), Script);
- }
- catch
- {
- }
-
- // Do actual compile
- CompilerParameters parameters = new CompilerParameters();
- parameters.IncludeDebugInformation = true;
- // Add all available assemblies
- foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies())
- {
- //Console.WriteLine("Adding assembly: " + asm.Location);
- //parameters.ReferencedAssemblies.Add(asm.Location);
- }
-
- string rootPath = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory);
- string rootPathSE = Path.GetDirectoryName(GetType().Assembly.Location);
- //Console.WriteLine("Assembly location: " + rootPath);
- parameters.ReferencedAssemblies.Add(Path.Combine(rootPath, "OpenSim.Region.ScriptEngine.Common.dll"));
- parameters.ReferencedAssemblies.Add(Path.Combine(rootPathSE, "OpenSim.Grid.ScriptEngine.DotNetEngine.dll"));
-
- //parameters.ReferencedAssemblies.Add("OpenSim.Region.Environment");
- parameters.GenerateExecutable = false;
- parameters.OutputAssembly = OutFile;
- parameters.IncludeDebugInformation = false;
- CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, Script);
-
- // Go through errors
- // TODO: Return errors to user somehow
- if (results.Errors.Count > 0)
- {
- string errtext = "";
- foreach (CompilerError CompErr in results.Errors)
- {
- errtext += "Line number " + (CompErr.Line - 1) +
- ", Error Number: " + CompErr.ErrorNumber +
- ", '" + CompErr.ErrorText + "'\r\n";
- }
- throw new Exception(errtext);
- }
-
- return OutFile;
- }
- }
-}
diff --git a/OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs b/OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs
deleted file mode 100644
index 639cd54..0000000
--- a/OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs
+++ /dev/null
@@ -1,314 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System.Collections.Generic;
-using System.Text.RegularExpressions;
-
-namespace OpenSim.Grid.ScriptEngine.DotNetEngine.Compiler.LSL
-{
- public class LSL2CSConverter
- {
- //private Regex rnw = new Regex(@"[a-zA-Z0-9_\-]", RegexOptions.Compiled);
- private Dictionary dataTypes = new Dictionary();
- private Dictionary quotes = new Dictionary();
-
- public LSL2CSConverter()
- {
- // Only the types we need to convert
- dataTypes.Add("void", "void");
- dataTypes.Add("integer", "int");
- dataTypes.Add("float", "double");
- dataTypes.Add("string", "string");
- dataTypes.Add("key", "string");
- dataTypes.Add("vector", "LSL_Types.Vector3");
- dataTypes.Add("rotation", "LSL_Types.Quaternion");
- dataTypes.Add("list", "list");
- dataTypes.Add("null", "null");
- }
-
- public string Convert(string Script)
- {
- string Return = "";
- Script = " \r\n" + Script;
-
- //
- // Prepare script for processing
- //
-
- // Clean up linebreaks
- Script = Regex.Replace(Script, @"\r\n", "\n");
- Script = Regex.Replace(Script, @"\n", "\r\n");
-
-
- // QUOTE REPLACEMENT
- // temporarily replace quotes so we can work our magic on the script without
- // always considering if we are inside our outside ""'s
- string _Script = "";
- string C;
- bool in_quote = false;
- bool quote_replaced = false;
- string quote_replacement_string = "Q_U_O_T_E_REPLACEMENT_";
- string quote = "";
- bool last_was_escape = false;
- int quote_replaced_count = 0;
- for (int p = 0; p < Script.Length; p++)
- {
- C = Script.Substring(p, 1);
- while (true)
- {
- // found " and last was not \ so this is not an escaped \"
- if (C == "\"" && last_was_escape == false)
- {
- // Toggle inside/outside quote
- in_quote = !in_quote;
- if (in_quote)
- {
- quote_replaced_count++;
- }
- else
- {
- if (quote == "")
- {
- // We didn't replace quote, probably because of empty string?
- _Script += quote_replacement_string +
- quote_replaced_count.ToString().PadLeft(5, "0".ToCharArray()[0]);
- }
- // We just left a quote
- quotes.Add(
- quote_replacement_string +
- quote_replaced_count.ToString().PadLeft(5, "0".ToCharArray()[0]), quote);
- quote = "";
- }
- break;
- }
-
- if (!in_quote)
- {
- // We are not inside a quote
- quote_replaced = false;
- }
- else
- {
- // We are inside a quote
- if (!quote_replaced)
- {
- // Replace quote
- _Script += quote_replacement_string +
- quote_replaced_count.ToString().PadLeft(5, "0".ToCharArray()[0]);
- quote_replaced = true;
- }
- quote += C;
- break;
- }
- _Script += C;
- break;
- }
- last_was_escape = false;
- if (C == @"\")
- {
- last_was_escape = true;
- }
- }
- Script = _Script;
- //
- // END OF QUOTE REPLACEMENT
- //
-
- //
- // PROCESS STATES
- // Remove state definitions and add state names to start of each event within state
- //
- int ilevel = 0;
- int lastlevel = 0;
- string ret = "";
- string cache = "";
- bool in_state = false;
- string current_statename = "";
- for (int p = 0; p < Script.Length; p++)
- {
- C = Script.Substring(p, 1);
- while (true)
- {
- // inc / dec level
- if (C == @"{")
- ilevel++;
- if (C == @"}")
- ilevel--;
- if (ilevel < 0)
- ilevel = 0;
- cache += C;
-
- // if level == 0, add to return
- if (ilevel == 1 && lastlevel == 0)
- {
- // 0 => 1: Get last
- Match m =
- Regex.Match(cache, @"(?![a-zA-Z_]+)\s*([a-zA-Z_]+)[^a-zA-Z_\(\)]*{",
- RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
-
- in_state = false;
- if (m.Success)
- {
- // Go back to level 0, this is not a state
- in_state = true;
- current_statename = m.Groups[1].Captures[0].Value;
- //Console.WriteLine("Current statename: " + current_statename);
- cache =
- Regex.Replace(cache,
- @"(?(?![a-zA-Z_]+)\s*)" + @"([a-zA-Z_]+)(?[^a-zA-Z_\(\)]*){",
- "${s1}${s2}",
- RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
- }
- ret += cache;
- cache = "";
- }
- if (ilevel == 0 && lastlevel == 1)
- {
- // 1 => 0: Remove last }
- if (in_state == true)
- {
- cache = cache.Remove(cache.Length - 1, 1);
- //cache = Regex.Replace(cache, "}$", "", RegexOptions.Multiline | RegexOptions.Singleline);
-
- //Replace function names
- // void dataserver(key query_id, string data) {
- //cache = Regex.Replace(cache, @"([^a-zA-Z_]\s*)((?!if|switch|for)[a-zA-Z_]+\s*\([^\)]*\)[^{]*{)", "$1" + "" + "$2", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
- //Console.WriteLine("Replacing using statename: " + current_statename);
- cache =
- Regex.Replace(cache,
- @"^(\s*)((?!(if|switch|for)[^a-zA-Z0-9_])[a-zA-Z0-9_]*\s*\([^\)]*\)[^;]*\{)",
- @"$1public " + current_statename + "_event_$2",
- RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
- }
-
- ret += cache;
- cache = "";
- in_state = true;
- current_statename = "";
- }
-
- break;
- }
- lastlevel = ilevel;
- }
- ret += cache;
- cache = "";
-
- Script = ret;
- ret = "";
-
-
- foreach (string key in dataTypes.Keys)
- {
- string val;
- dataTypes.TryGetValue(key, out val);
-
- // Replace CAST - (integer) with (int)
- Script =
- Regex.Replace(Script, @"\(" + key + @"\)", @"(" + val + ")",
- RegexOptions.Compiled | RegexOptions.Multiline);
- // Replace return types and function variables - integer a() and f(integer a, integer a)
- Script =
- Regex.Replace(Script, @"(^|;|}|[\(,])(\s*)" + key + @"(\s*)", @"$1$2" + val + "$3",
- RegexOptions.Compiled | RegexOptions.Multiline);
- }
-
- // Add "void" in front of functions that needs it
- Script =
- Regex.Replace(Script,
- @"^(\s*public\s+)((?!(if|switch|for)[^a-zA-Z0-9_])[a-zA-Z0-9_]*\s*\([^\)]*\)[^;]*\{)",
- @"$1void $2", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
-
- // Replace and
- Script =
- Regex.Replace(Script, @"<([^,>]*,[^,>]*,[^,>]*,[^,>]*)>", @"new LSL_Types.Quaternion($1)",
- RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
- Script =
- Regex.Replace(Script, @"<([^,>]*,[^,>]*,[^,>]*)>", @"new LSL_Types.Vector3($1)",
- RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
-
- // Replace List []'s
- Script =
- Regex.Replace(Script, @"\[([^\]]*)\]", @"List.Parse($1)",
- RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
-
-
- // Replace (string) to .ToString() //
- Script =
- Regex.Replace(Script, @"\(string\)\s*([a-zA-Z0-9_]+(\s*\([^\)]*\))?)", @"$1.ToString()",
- RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
- Script =
- Regex.Replace(Script, @"\((float|int)\)\s*([a-zA-Z0-9_]+(\s*\([^\)]*\))?)", @"$1.Parse($2)",
- RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
-
-
- // REPLACE BACK QUOTES
- foreach (string key in quotes.Keys)
- {
- string val;
- quotes.TryGetValue(key, out val);
- Script = Script.Replace(key, "\"" + val + "\"");
- }
-
-
- // Add namespace, class name and inheritance
-
- Return = "" +
- "using OpenSim.Region.ScriptEngine.Common;";
- //"using System; " +
- //"using System.Collections.Generic; " +
- //"using System.Text; " +
- //"using OpenSim.Region.ScriptEngine.Common; " +
- //"using integer = System.Int32; " +
- //"using key = System.String; ";
-
- //// Make a Using out of DataTypes
- //// Using integer = System.Int32;
- //string _val;
- //foreach (string key in DataTypes.Keys)
- //{
- // DataTypes.TryGetValue(key, out _val);
- // if (key != _val)
- // {
- // Return += "using " + key + " = " + _val + "; ";
- // }
- //}
-
-
- Return += "" +
- "namespace SecondLife { ";
- Return += "" +
- //"[Serializable] " +
- "public class Script : OpenSim.Grid.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass { ";
- Return += @"public Script() { } ";
- Return += Script;
- Return += "} }\r\n";
-
- return Return;
- }
- }
-}
diff --git a/OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs b/OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs
deleted file mode 100644
index be22484..0000000
--- a/OpenSim/Grid/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs
+++ /dev/null
@@ -1,2128 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSim Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.Runtime.Remoting.Lifetime;
-using System.Threading;
-using OpenSim.Region.ScriptEngine.Common;
-using integer = System.Int32;
-using key = System.String;
-using vector = OpenSim.Region.ScriptEngine.Common.LSL_Types.Vector3;
-using rotation = OpenSim.Region.ScriptEngine.Common.LSL_Types.Quaternion;
-
-namespace OpenSim.Grid.ScriptEngine.DotNetEngine.Compiler.LSL
-{
- //[Serializable]
- public class LSL_BaseClass : MarshalByRefObject, LSL_BuiltIn_Commands_Interface, IScript
- {
- private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
-
- // Object never expires
- public override Object InitializeLifetimeService()
- {
- //Console.WriteLine("LSL_BaseClass: InitializeLifetimeService()");
- // return null;
- ILease lease = (ILease) base.InitializeLifetimeService();
-
- if (lease.CurrentState == LeaseState.Initial)
- {
- lease.InitialLeaseTime = TimeSpan.Zero; // TimeSpan.FromMinutes(1);
- //lease.SponsorshipTimeout = TimeSpan.FromMinutes(2);
- //lease.RenewOnCallTime = TimeSpan.FromSeconds(2);
- }
- return lease;
- }
-
-
- private Executor m_Exec;
-
- public Executor Exec
- {
- get
- {
- if (m_Exec == null)
- m_Exec = new Executor(this);
- return m_Exec;
- }
- }
-
- public LSL_BuiltIn_Commands_Interface m_LSL_Functions;
- public string SourceCode = "";
-
- public LSL_BaseClass()
- {
- }
-
- public string State()
- {
- return m_LSL_Functions.State();
- }
-
-
- public void Start(LSL_BuiltIn_Commands_Interface LSL_Functions)
- {
- m_LSL_Functions = LSL_Functions;
-
- //m_log.Info("[ScriptEngine]: LSL_BaseClass.Start() called.");
-
- // Get this AppDomain's settings and display some of them.
- AppDomainSetup ads = AppDomain.CurrentDomain.SetupInformation;
- Console.WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}",
- ads.ApplicationName,
- ads.ApplicationBase,
- ads.ConfigurationFile
- );
-
- // Display the name of the calling AppDomain and the name
- // of the second domain.
- // NOTE: The application's thread has transitioned between
- // AppDomains.
- Console.WriteLine("Calling to '{0}'.",
- Thread.GetDomain().FriendlyName
- );
-
- return;
- }
-
-
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- // They are only forwarders to LSL_BuiltIn_Commands.cs
- //
- public double llSin(double f)
- {
- return m_LSL_Functions.llSin(f);
- }
-
- public double llCos(double f)
- {
- return m_LSL_Functions.llCos(f);
- }
-
- public double llTan(double f)
- {
- return m_LSL_Functions.llTan(f);
- }
-
- public double llAtan2(double x, double y)
- {
- return m_LSL_Functions.llAtan2(x, y);
- }
-
- public double llSqrt(double f)
- {
- return m_LSL_Functions.llSqrt(f);
- }
-
- public double llPow(double fbase, double fexponent)
- {
- return m_LSL_Functions.llPow(fbase, fexponent);
- }
-
- public int llAbs(int i)
- {
- return m_LSL_Functions.llAbs(i);
- }
-
- public double llFabs(double f)
- {
- return m_LSL_Functions.llFabs(f);
- }
-
- public double llFrand(double mag)
- {
- return m_LSL_Functions.llFrand(mag);
- }
-
- public int llFloor(double f)
- {
- return m_LSL_Functions.llFloor(f);
- }
-
- public int llCeil(double f)
- {
- return m_LSL_Functions.llCeil(f);
- }
-
- public int llRound(double f)
- {
- return m_LSL_Functions.llRound(f);
- }
-
- public double llVecMag(vector v)
- {
- return m_LSL_Functions.llVecMag(v);
- }
-
- public vector llVecNorm(vector v)
- {
- return m_LSL_Functions.llVecNorm(v);
- }
-
- public double llVecDist(vector a, vector b)
- {
- return m_LSL_Functions.llVecDist(a, b);
- }
-
- public vector llRot2Euler(rotation r)
- {
- return m_LSL_Functions.llRot2Euler(r);
- }
-
- public rotation llEuler2Rot(vector v)
- {
- return m_LSL_Functions.llEuler2Rot(v);
- }
-
- public rotation llAxes2Rot(vector fwd, vector left, vector up)
- {
- return m_LSL_Functions.llAxes2Rot(fwd, left, up);
- }
-
- public vector llRot2Fwd(rotation r)
- {
- return m_LSL_Functions.llRot2Fwd(r);
- }
-
- public vector llRot2Left(rotation r)
- {
- return m_LSL_Functions.llRot2Left(r);
- }
-
- public vector llRot2Up(rotation r)
- {
- return m_LSL_Functions.llRot2Up(r);
- }
-
- public rotation llRotBetween(vector start, vector end)
- {
- return m_LSL_Functions.llRotBetween(start, end);
- }
-
- public void llWhisper(int channelID, string text)
- {
- m_LSL_Functions.llWhisper(channelID, text);
- }
-
- public void llSay(int channelID, string text)
- {
- m_LSL_Functions.llSay(channelID, text);
- }
-
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llShout(int channelID, string text)
- {
- m_LSL_Functions.llShout(channelID, text);
- }
-
- public void llOwnerSay(string msg)
- {
- m_LSL_Functions.llOwnerSay(msg);
- }
-
- public int llListen(int channelID, string name, string ID, string msg)
- {
- return m_LSL_Functions.llListen(channelID, name, ID, msg);
- }
-
- public void llListenControl(int number, int active)
- {
- m_LSL_Functions.llListenControl(number, active);
- }
-
- public void llListenRemove(int number)
- {
- m_LSL_Functions.llListenRemove(number);
- }
-
- public void llSensor(string name, string id, int type, double range, double arc)
- {
- m_LSL_Functions.llSensor(name, id, type, range, arc);
- }
-
- public void llSensorRepeat(string name, string id, int type, double range, double arc, double rate)
- {
- m_LSL_Functions.llSensorRepeat(name, id, type, range, arc, rate);
- }
-
- public void llSensorRemove()
- {
- m_LSL_Functions.llSensorRemove();
- }
-
- public string llDetectedName(int number)
- {
- return m_LSL_Functions.llDetectedName(number);
- }
-
- public string llDetectedKey(int number)
- {
- return m_LSL_Functions.llDetectedKey(number);
- }
-
- public string llDetectedOwner(int number)
- {
- return m_LSL_Functions.llDetectedOwner(number);
- }
-
- public int llDetectedType(int number)
- {
- return m_LSL_Functions.llDetectedType(number);
- }
-
- public vector llDetectedPos(int number)
- {
- return m_LSL_Functions.llDetectedPos(number);
- }
-
- public vector llDetectedVel(int number)
- {
- return m_LSL_Functions.llDetectedVel(number);
- }
-
- public vector llDetectedGrab(int number)
- {
- return m_LSL_Functions.llDetectedGrab(number);
- }
-
- public rotation llDetectedRot(int number)
- {
- return m_LSL_Functions.llDetectedRot(number);
- }
-
- public int llDetectedGroup(int number)
- {
- return m_LSL_Functions.llDetectedGroup(number);
- }
-
- public int llDetectedLinkNumber(int number)
- {
- return m_LSL_Functions.llDetectedLinkNumber(number);
- }
-
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llDie()
- {
- m_LSL_Functions.llDie();
- }
-
- public double llGround(vector offset)
- {
- return m_LSL_Functions.llGround(offset);
- }
-
- public double llCloud(vector offset)
- {
- return m_LSL_Functions.llCloud(offset);
- }
-
- public vector llWind(vector offset)
- {
- return m_LSL_Functions.llWind(offset);
- }
-
- public void llSetStatus(int status, int value)
- {
- m_LSL_Functions.llSetStatus(status, value);
- }
-
- public int llGetStatus(int status)
- {
- return m_LSL_Functions.llGetStatus(status);
- }
-
- public void llSetScale(vector scale)
- {
- m_LSL_Functions.llSetScale(scale);
- }
-
- public vector llGetScale()
- {
- return m_LSL_Functions.llGetScale();
- }
-
- public void llSetColor(vector color, int face)
- {
- m_LSL_Functions.llSetColor(color, face);
- }
-
- public double llGetAlpha(int face)
- {
- return m_LSL_Functions.llGetAlpha(face);
- }
-
- public void llSetAlpha(double alpha, int face)
- {
- m_LSL_Functions.llSetAlpha(alpha, face);
- }
-
- public vector llGetColor(int face)
- {
- return m_LSL_Functions.llGetColor(face);
- }
-
- public void llSetTexture(string texture, int face)
- {
- m_LSL_Functions.llSetTexture(texture, face);
- }
-
- public void llScaleTexture(double u, double v, int face)
- {
- m_LSL_Functions.llScaleTexture(u, v, face);
- }
-
- public void llOffsetTexture(double u, double v, int face)
- {
- m_LSL_Functions.llOffsetTexture(u, v, face);
- }
-
- public void llRotateTexture(double rotation, int face)
- {
- m_LSL_Functions.llRotateTexture(rotation, face);
- }
-
- public string llGetTexture(int face)
- {
- return m_LSL_Functions.llGetTexture(face);
- }
-
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llSetPos(vector pos)
- {
- m_LSL_Functions.llSetPos(pos);
- }
-
- public vector llGetPos()
- {
- return m_LSL_Functions.llGetPos();
- }
-
- public vector llGetLocalPos()
- {
- return m_LSL_Functions.llGetLocalPos();
- }
-
- public void llSetRot(rotation rot)
- {
- m_LSL_Functions.llSetRot(rot);
- }
-
- public rotation llGetRot()
- {
- return m_LSL_Functions.llGetRot();
- }
-
- public rotation llGetLocalRot()
- {
- return m_LSL_Functions.llGetLocalRot();
- }
-
- public void llSetForce(vector force, int local)
- {
- m_LSL_Functions.llSetForce(force, local);
- }
-
- public vector llGetForce()
- {
- return m_LSL_Functions.llGetForce();
- }
-
- public int llTarget(vector position, double range)
- {
- return m_LSL_Functions.llTarget(position, range);
- }
-
- public void llTargetRemove(int number)
- {
- m_LSL_Functions.llTargetRemove(number);
- }
-
- public int llRotTarget(rotation rot, double error)
- {
- return m_LSL_Functions.llRotTarget(rot, error);
- }
-
- public void llRotTargetRemove(int number)
- {
- m_LSL_Functions.llRotTargetRemove(number);
- }
-
- public void llMoveToTarget(vector target, double tau)
- {
- m_LSL_Functions.llMoveToTarget(target, tau);
- }
-
- public void llStopMoveToTarget()
- {
- m_LSL_Functions.llStopMoveToTarget();
- }
-
- public void llApplyImpulse(vector force, int local)
- {
- m_LSL_Functions.llApplyImpulse(force, local);
- }
-
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llApplyRotationalImpulse(vector force, int local)
- {
- m_LSL_Functions.llApplyRotationalImpulse(force, local);
- }
-
- public void llSetTorque(vector torque, int local)
- {
- m_LSL_Functions.llSetTorque(torque, local);
- }
-
- public vector llGetTorque()
- {
- return m_LSL_Functions.llGetTorque();
- }
-
- public void llSetForceAndTorque(vector force, vector torque, int local)
- {
- m_LSL_Functions.llSetForceAndTorque(force, torque, local);
- }
-
- public vector llGetVel()
- {
- return m_LSL_Functions.llGetVel();
- }
-
- public vector llGetAccel()
- {
- return m_LSL_Functions.llGetAccel();
- }
-
- public vector llGetOmega()
- {
- return m_LSL_Functions.llGetOmega();
- }
-
- public double llGetTimeOfDay()
- {
- return m_LSL_Functions.llGetTimeOfDay();
- }
-
- public double llGetWallclock()
- {
- return m_LSL_Functions.llGetWallclock();
- }
-
- public double llGetTime()
- {
- return m_LSL_Functions.llGetTime();
- }
-
- public void llResetTime()
- {
- m_LSL_Functions.llResetTime();
- }
-
- public double llGetAndResetTime()
- {
- return m_LSL_Functions.llGetAndResetTime();
- }
-
- public void llSound()
- {
- m_LSL_Functions.llSound();
- }
-
- public void llPlaySound(string sound, double volume)
- {
- m_LSL_Functions.llPlaySound(sound, volume);
- }
-
- public void llLoopSound(string sound, double volume)
- {
- m_LSL_Functions.llLoopSound(sound, volume);
- }
-
- public void llLoopSoundMaster(string sound, double volume)
- {
- m_LSL_Functions.llLoopSoundMaster(sound, volume);
- }
-
- public void llLoopSoundSlave(string sound, double volume)
- {
- m_LSL_Functions.llLoopSoundSlave(sound, volume);
- }
-
- public void llPlaySoundSlave(string sound, double volume)
- {
- m_LSL_Functions.llPlaySoundSlave(sound, volume);
- }
-
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llTriggerSound(string sound, double volume)
- {
- m_LSL_Functions.llTriggerSound(sound, volume);
- }
-
- public void llStopSound()
- {
- m_LSL_Functions.llStopSound();
- }
-
- public void llPreloadSound(string sound)
- {
- m_LSL_Functions.llPreloadSound(sound);
- }
-
- public string llGetSubString(string src, int start, int end)
- {
- return m_LSL_Functions.llGetSubString(src, start, end);
- }
-
- public string llDeleteSubString(string src, int start, int end)
- {
- return m_LSL_Functions.llDeleteSubString(src, start, end);
- }
-
- public string llInsertString(string dst, int position, string src)
- {
- return m_LSL_Functions.llInsertString(dst, position, src);
- }
-
- public string llToUpper(string source)
- {
- return m_LSL_Functions.llToUpper(source);
- }
-
- public string llToLower(string source)
- {
- return m_LSL_Functions.llToLower(source);
- }
-
- public int llGiveMoney(string destination, int amount)
- {
- return m_LSL_Functions.llGiveMoney(destination, amount);
- }
-
- public void llMakeExplosion()
- {
- m_LSL_Functions.llMakeExplosion();
- }
-
- public void llMakeFountain()
- {
- m_LSL_Functions.llMakeFountain();
- }
-
- public void llMakeSmoke()
- {
- m_LSL_Functions.llMakeSmoke();
- }
-
- public void llMakeFire()
- {
- m_LSL_Functions.llMakeFire();
- }
-
- public void llRezObject(string inventory, vector pos, rotation rot, int param)
- {
- m_LSL_Functions.llRezObject(inventory, pos, rot, param);
- }
-
- public void llLookAt(vector target, double strength, double damping)
- {
- m_LSL_Functions.llLookAt(target, strength, damping);
- }
-
- public void llStopLookAt()
- {
- m_LSL_Functions.llStopLookAt();
- }
-
- public void llSetTimerEvent(double sec)
- {
- m_LSL_Functions.llSetTimerEvent(sec);
- }
-
- public void llSleep(double sec)
- {
- m_LSL_Functions.llSleep(sec);
- }
-
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public double llGetMass()
- {
- return m_LSL_Functions.llGetMass();
- }
-
- public void llCollisionFilter(string name, string id, int accept)
- {
- m_LSL_Functions.llCollisionFilter(name, id, accept);
- }
-
- public void llTakeControls(int controls, int accept, int pass_on)
- {
- m_LSL_Functions.llTakeControls(controls, accept, pass_on);
- }
-
- public void llReleaseControls()
- {
- m_LSL_Functions.llReleaseControls();
- }
-
- public void llAttachToAvatar(int attachment)
- {
- m_LSL_Functions.llAttachToAvatar(attachment);
- }
-
- public void llDetachFromAvatar()
- {
- m_LSL_Functions.llDetachFromAvatar();
- }
-
- public void llTakeCamera()
- {
- m_LSL_Functions.llTakeCamera();
- }
-
- public void llReleaseCamera()
- {
- m_LSL_Functions.llReleaseCamera();
- }
-
- public string llGetOwner()
- {
- return m_LSL_Functions.llGetOwner();
- }
-
- public void llInstantMessage(string user, string message)
- {
- m_LSL_Functions.llInstantMessage(user, message);
- }
-
- public void llEmail(string address, string subject, string message)
- {
- m_LSL_Functions.llEmail(address, subject, message);
- }
-
- public void llGetNextEmail(string address, string subject)
- {
- m_LSL_Functions.llGetNextEmail(address, subject);
- }
-
- public string llGetKey()
- {
- return m_LSL_Functions.llGetKey();
- }
-
- public void llSetBuoyancy(double buoyancy)
- {
- m_LSL_Functions.llSetBuoyancy(buoyancy);
- }
-
- public void llSetHoverHeight(double height, int water, double tau)
- {
- m_LSL_Functions.llSetHoverHeight(height, water, tau);
- }
-
- public void llStopHover()
- {
- m_LSL_Functions.llStopHover();
- }
-
- public void llMinEventDelay(double delay)
- {
- m_LSL_Functions.llMinEventDelay(delay);
- }
-
- public void llSoundPreload()
- {
- m_LSL_Functions.llSoundPreload();
- }
-
- public void llRotLookAt(rotation target, double strength, double damping)
- {
- m_LSL_Functions.llRotLookAt(target, strength, damping);
- }
-
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public int llStringLength(string str)
- {
- return m_LSL_Functions.llStringLength(str);
- }
-
- public void llStartAnimation(string anim)
- {
- m_LSL_Functions.llStartAnimation(anim);
- }
-
- public void llStopAnimation(string anim)
- {
- m_LSL_Functions.llStopAnimation(anim);
- }
-
- public void llPointAt()
- {
- m_LSL_Functions.llPointAt();
- }
-
- public void llStopPointAt()
- {
- m_LSL_Functions.llStopPointAt();
- }
-
- public void llTargetOmega(vector axis, double spinrate, double gain)
- {
- m_LSL_Functions.llTargetOmega(axis, spinrate, gain);
- }
-
- public int llGetStartParameter()
- {
- return m_LSL_Functions.llGetStartParameter();
- }
-
- public void llGodLikeRezObject(string inventory, vector pos)
- {
- m_LSL_Functions.llGodLikeRezObject(inventory, pos);
- }
-
- public void llRequestPermissions(string agent, int perm)
- {
- m_LSL_Functions.llRequestPermissions(agent, perm);
- }
-
- public string llGetPermissionsKey()
- {
- return m_LSL_Functions.llGetPermissionsKey();
- }
-
- public int llGetPermissions()
- {
- return m_LSL_Functions.llGetPermissions();
- }
-
- public int llGetLinkNumber()
- {
- return m_LSL_Functions.llGetLinkNumber();
- }
-
- public void llSetLinkColor(int linknumber, vector color, int face)
- {
- m_LSL_Functions.llSetLinkColor(linknumber, color, face);
- }
-
- public void llCreateLink(string target, int parent)
- {
- m_LSL_Functions.llCreateLink(target, parent);
- }
-
- public void llBreakLink(int linknum)
- {
- m_LSL_Functions.llBreakLink(linknum);
- }
-
- public void llBreakAllLinks()
- {
- m_LSL_Functions.llBreakAllLinks();
- }
-
- public string llGetLinkKey(int linknum)
- {
- return m_LSL_Functions.llGetLinkKey(linknum);
- }
-
- public void llGetLinkName(int linknum)
- {
- m_LSL_Functions.llGetLinkName(linknum);
- }
-
- public int llGetInventoryNumber(int type)
- {
- return m_LSL_Functions.llGetInventoryNumber(type);
- }
-
- public string llGetInventoryName(int type, int number)
- {
- return m_LSL_Functions.llGetInventoryName(type, number);
- }
-
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llSetScriptState(string name, int run)
- {
- m_LSL_Functions.llSetScriptState(name, run);
- }
-
- public double llGetEnergy()
- {
- return m_LSL_Functions.llGetEnergy();
- }
-
- public void llGiveInventory(string destination, string inventory)
- {
- m_LSL_Functions.llGiveInventory(destination, inventory);
- }
-
- public void llRemoveInventory(string item)
- {
- m_LSL_Functions.llRemoveInventory(item);
- }
-
- public void llSetText(string text, vector color, double alpha)
- {
- m_LSL_Functions.llSetText(text, color, alpha);
- }
-
- public double llWater(vector offset)
- {
- return m_LSL_Functions.llWater(offset);
- }
-
- public void llPassTouches(int pass)
- {
- m_LSL_Functions.llPassTouches(pass);
- }
-
- public string llRequestAgentData(string id, int data)
- {
- return m_LSL_Functions.llRequestAgentData(id, data);
- }
-
- public string llRequestInventoryData(string name)
- {
- return m_LSL_Functions.llRequestInventoryData(name);
- }
-
- public void llSetDamage(double damage)
- {
- m_LSL_Functions.llSetDamage(damage);
- }
-
- public void llTeleportAgentHome(string agent)
- {
- m_LSL_Functions.llTeleportAgentHome(agent);
- }
-
- public void llModifyLand(int action, int brush)
- {
- m_LSL_Functions.llModifyLand(action, brush);
- }
-
- public void llCollisionSound(string impact_sound, double impact_volume)
- {
- m_LSL_Functions.llCollisionSound(impact_sound, impact_volume);
- }
-
- public void llCollisionSprite(string impact_sprite)
- {
- m_LSL_Functions.llCollisionSprite(impact_sprite);
- }
-
- public string llGetAnimation(string id)
- {
- return m_LSL_Functions.llGetAnimation(id);
- }
-
- public void llResetScript()
- {
- m_LSL_Functions.llResetScript();
- }
-
- public void llMessageLinked(int linknum, int num, string str, string id)
- {
- m_LSL_Functions.llMessageLinked(linknum, num, str, id);
- }
-
- public void llPushObject(string target, vector impulse, vector ang_impulse, int local)
- {
- m_LSL_Functions.llPushObject(target, impulse, ang_impulse, local);
- }
-
- public void llPassCollisions(int pass)
- {
- m_LSL_Functions.llPassCollisions(pass);
- }
-
- public string llGetScriptName()
- {
- return m_LSL_Functions.llGetScriptName();
- }
-
- public int llGetNumberOfSides()
- {
- return m_LSL_Functions.llGetNumberOfSides();
- }
-
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public rotation llAxisAngle2Rot(vector axis, double angle)
- {
- return m_LSL_Functions.llAxisAngle2Rot(axis, angle);
- }
-
- public vector llRot2Axis(rotation rot)
- {
- return m_LSL_Functions.llRot2Axis(rot);
- }
-
- public void llRot2Angle()
- {
- m_LSL_Functions.llRot2Angle();
- }
-
- public double llAcos(double val)
- {
- return m_LSL_Functions.llAcos(val);
- }
-
- public double llAsin(double val)
- {
- return m_LSL_Functions.llAsin(val);
- }
-
- public double llAngleBetween(rotation a, rotation b)
- {
- return m_LSL_Functions.llAngleBetween(a, b);
- }
-
- public string llGetInventoryKey(string name)
- {
- return m_LSL_Functions.llGetInventoryKey(name);
- }
-
- public void llAllowInventoryDrop(int add)
- {
- m_LSL_Functions.llAllowInventoryDrop(add);
- }
-
- public vector llGetSunDirection()
- {
- return m_LSL_Functions.llGetSunDirection();
- }
-
- public vector llGetTextureOffset(int face)
- {
- return m_LSL_Functions.llGetTextureOffset(face);
- }
-
- public vector llGetTextureScale(int side)
- {
- return m_LSL_Functions.llGetTextureScale(side);
- }
-
- public double llGetTextureRot(int side)
- {
- return m_LSL_Functions.llGetTextureRot(side);
- }
-
- public int llSubStringIndex(string source, string pattern)
- {
- return m_LSL_Functions.llSubStringIndex(source, pattern);
- }
-
- public string llGetOwnerKey(string id)
- {
- return m_LSL_Functions.llGetOwnerKey(id);
- }
-
- public vector llGetCenterOfMass()
- {
- return m_LSL_Functions.llGetCenterOfMass();
- }
-
- public List llListSort(List src, int stride, int ascending)
- {
- return m_LSL_Functions.llListSort(src, stride, ascending);
- }
-
- public int llGetListLength(List src)
- {
- return m_LSL_Functions.llGetListLength(src);
- }
-
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public int llList2Integer(List src, int index)
- {
- return m_LSL_Functions.llList2Integer(src, index);
- }
-
- public double llList2double(List src, int index)
- {
- return m_LSL_Functions.llList2double(src, index);
- }
-
- public string llList2String(List src, int index)
- {
- return m_LSL_Functions.llList2String(src, index);
- }
-
- public string llList2Key(List src, int index)
- {
- return m_LSL_Functions.llList2Key(src, index);
- }
-
- public vector llList2Vector(List src, int index)
- {
- return m_LSL_Functions.llList2Vector(src, index);
- }
-
- public rotation llList2Rot(List src, int index)
- {
- return m_LSL_Functions.llList2Rot(src, index);
- }
-
- public List llList2List(List src, int start, int end)
- {
- return m_LSL_Functions.llList2List(src, start, end);
- }
-
- public List llDeleteSubList(List src, int start, int end)
- {
- return m_LSL_Functions.llDeleteSubList(src, start, end);
- }
-
- public int llGetListEntryType(List src, int index)
- {
- return m_LSL_Functions.llGetListEntryType(src, index);
- }
-
- public string llList2CSV(List src)
- {
- return m_LSL_Functions.llList2CSV(src);
- }
-
- public List llCSV2List(string src)
- {
- return m_LSL_Functions.llCSV2List(src);
- }
-
- public List llListRandomize(List src, int stride)
- {
- return m_LSL_Functions.llListRandomize(src, stride);
- }
-
- public List llList2ListStrided(List src, int start, int end, int stride)
- {
- return m_LSL_Functions.llList2ListStrided(src, start, end, stride);
- }
-
- public vector llGetRegionCorner()
- {
- return m_LSL_Functions.llGetRegionCorner();
- }
-
- public List llListInsertList(List dest, List src, int start)
- {
- return m_LSL_Functions.llListInsertList(dest, src, start);
- }
-
- public int llListFindList(List src, List test)
- {
- return m_LSL_Functions.llListFindList(src, test);
- }
-
- public string llGetObjectName()
- {
- return m_LSL_Functions.llGetObjectName();
- }
-
- public void llSetObjectName(string name)
- {
- m_LSL_Functions.llSetObjectName(name);
- }
-
- public string llGetDate()
- {
- return m_LSL_Functions.llGetDate();
- }
-
- public int llEdgeOfWorld(vector pos, vector dir)
- {
- return m_LSL_Functions.llEdgeOfWorld(pos, dir);
- }
-
- public int llGetAgentInfo(string id)
- {
- return m_LSL_Functions.llGetAgentInfo(id);
- }
-
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llAdjustSoundVolume(double volume)
- {
- m_LSL_Functions.llAdjustSoundVolume(volume);
- }
-
- public void llSetSoundQueueing(int queue)
- {
- m_LSL_Functions.llSetSoundQueueing(queue);
- }
-
- public void llSetSoundRadius(double radius)
- {
- m_LSL_Functions.llSetSoundRadius(radius);
- }
-
- public string llKey2Name(string id)
- {
- return m_LSL_Functions.llKey2Name(id);
- }
-
- public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate)
- {
- m_LSL_Functions.llSetTextureAnim(mode, face, sizex, sizey, start, length, rate);
- }
-
- public void llTriggerSoundLimited(string sound, double volume, vector top_north_east, vector bottom_south_west)
- {
- m_LSL_Functions.llTriggerSoundLimited(sound, volume, top_north_east, bottom_south_west);
- }
-
- public void llEjectFromLand(string pest)
- {
- m_LSL_Functions.llEjectFromLand(pest);
- }
-
- public void llParseString2List()
- {
- m_LSL_Functions.llParseString2List();
- }
-
- public int llOverMyLand(string id)
- {
- return m_LSL_Functions.llOverMyLand(id);
- }
-
- public string llGetLandOwnerAt(vector pos)
- {
- return m_LSL_Functions.llGetLandOwnerAt(pos);
- }
-
- public string llGetNotecardLine(string name, int line)
- {
- return m_LSL_Functions.llGetNotecardLine(name, line);
- }
-
- public vector llGetAgentSize(string id)
- {
- return m_LSL_Functions.llGetAgentSize(id);
- }
-
- public int llSameGroup(string agent)
- {
- return m_LSL_Functions.llSameGroup(agent);
- }
-
- public void llUnSit(string id)
- {
- m_LSL_Functions.llUnSit(id);
- }
-
- public vector llGroundSlope(vector offset)
- {
- return m_LSL_Functions.llGroundSlope(offset);
- }
-
- public vector llGroundNormal(vector offset)
- {
- return m_LSL_Functions.llGroundNormal(offset);
- }
-
- public vector llGroundContour(vector offset)
- {
- return m_LSL_Functions.llGroundContour(offset);
- }
-
- public int llGetAttached()
- {
- return m_LSL_Functions.llGetAttached();
- }
-
- public int llGetFreeMemory()
- {
- return m_LSL_Functions.llGetFreeMemory();
- }
-
- public string llGetRegionName()
- {
- return m_LSL_Functions.llGetRegionName();
- }
-
- public double llGetRegionTimeDilation()
- {
- return m_LSL_Functions.llGetRegionTimeDilation();
- }
-
- public double llGetRegionFPS()
- {
- return m_LSL_Functions.llGetRegionFPS();
- }
-
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llParticleSystem(List