From 2cd85e15dce6628c613f280fdbd058dce4efd134 Mon Sep 17 00:00:00 2001 From: Tedd Hansen Date: Sun, 24 Feb 2008 15:45:20 +0000 Subject: Changed so "BuiltIn_Commands" given to scripts is easily extendable. Added new OSSL_BuilIn_Commands class where we can start adding our own modular commands. --- .../Region/ScriptEngine/Common/BuilIn_Commands.cs | 46 ++++++++++++ OpenSim/Region/ScriptEngine/Common/IScript.cs | 2 +- .../Region/ScriptEngine/Common/LSL_BaseClass.cs | 4 +- .../ScriptEngine/Common/OSSL_BuilIn_Commands.cs | 82 ++++++++++++++++++++++ .../Common/OSSL_BuilIn_Commands_Interface.cs | 37 ++++++++++ .../ScriptEngine/DotNetEngine/ScriptManager.cs | 4 +- .../Region/ScriptEngine/LSOEngine/ScriptManager.cs | 2 +- 7 files changed, 170 insertions(+), 7 deletions(-) create mode 100644 OpenSim/Region/ScriptEngine/Common/BuilIn_Commands.cs create mode 100644 OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands.cs create mode 100644 OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands_Interface.cs diff --git a/OpenSim/Region/ScriptEngine/Common/BuilIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/BuilIn_Commands.cs new file mode 100644 index 0000000..26aae9a --- /dev/null +++ b/OpenSim/Region/ScriptEngine/Common/BuilIn_Commands.cs @@ -0,0 +1,46 @@ +/* +* 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.Text; +using libsecondlife; +using OpenSim.Region.Environment.Scenes; + +namespace OpenSim.Region.ScriptEngine.Common +{ + /// + /// This is the end of a chain of inherited builtin command implementations. This module will be instanced by script engines. + /// + public class BuilIn_Commands: OSSL_BuilIn_Commands + { + public BuilIn_Commands(ScriptEngineBase.ScriptEngine scriptEngine, SceneObjectPart host, uint localID, + LLUUID itemID) : base(scriptEngine, host, localID, itemID) + { + } + } +} diff --git a/OpenSim/Region/ScriptEngine/Common/IScript.cs b/OpenSim/Region/ScriptEngine/Common/IScript.cs index b6b978e..7ee10a6 100644 --- a/OpenSim/Region/ScriptEngine/Common/IScript.cs +++ b/OpenSim/Region/ScriptEngine/Common/IScript.cs @@ -35,7 +35,7 @@ namespace OpenSim.Region.ScriptEngine.Common string State { get; set; } ExecutorBase Exec { get; } string Source { get; set; } - void Start(LSL_BuiltIn_Commands_Interface BuiltIn_Commands); + void Start(BuilIn_Commands BuiltIn_Commands); EventQueueManager.Queue_llDetectParams_Struct llDetectParams { get; set; } } } \ No newline at end of file diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BaseClass.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BaseClass.cs index 870884c..58f58aa 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BaseClass.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BaseClass.cs @@ -86,7 +86,7 @@ namespace OpenSim.Region.ScriptEngine.Common } - public LSL_BuiltIn_Commands_Interface m_LSL_Functions; + public BuilIn_Commands m_LSL_Functions; private string _Source = String.Empty; public string Source { @@ -110,7 +110,7 @@ namespace OpenSim.Region.ScriptEngine.Common - public void Start(LSL_BuiltIn_Commands_Interface LSL_Functions) + public void Start(BuilIn_Commands LSL_Functions) { m_LSL_Functions = LSL_Functions; diff --git a/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands.cs new file mode 100644 index 0000000..dfa1a45 --- /dev/null +++ b/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands.cs @@ -0,0 +1,82 @@ +/* +* 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.Text; +using libsecondlife; +using OpenSim.Region.Environment.Scenes; + +namespace OpenSim.Region.ScriptEngine.Common +{ + public class OSSL_BuilIn_Commands : LSL_BuiltIn_Commands, OSSL_BuilIn_Commands_Interface + { + public OSSL_BuilIn_Commands(ScriptEngineBase.ScriptEngine scriptEngine, SceneObjectPart host, uint localID, + LLUUID itemID) + : base(scriptEngine, host, localID, itemID) + { + } + + private OSSLPrim Prim; + + public class OSSLPrim + { + + private LSL_Types.Vector3 _position; + public LSL_Types.Vector3 Position { + get { return _position; } + set { _position = value; } + } + private LSL_Types.Quaternion _rotation; + public LSL_Types.Quaternion Rotation { + get { return _rotation; } + set { _rotation = value; } + } + private string _text; + public string Text + { + get { return _text; } + set { _text = value; } + } + } + //public struct OSSLPrim_Position + //{ + // public int X; + // public int Y; + // public int Z; + //} + //public struct OSSLPrim_Rotation + //{ + // public double X; + // public double Y; + // public double Z; + // public double R; + //} + + + } +} diff --git a/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands_Interface.cs b/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands_Interface.cs new file mode 100644 index 0000000..2a2a3b7 --- /dev/null +++ b/OpenSim/Region/ScriptEngine/Common/OSSL_BuilIn_Commands_Interface.cs @@ -0,0 +1,37 @@ +/* +* 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.Text; + +namespace OpenSim.Region.ScriptEngine.Common +{ + public interface OSSL_BuilIn_Commands_Interface + { + } +} diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs index 68ac99c..b0ddf37 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs @@ -25,8 +25,6 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ -/* Original code: Tedd Hansen */ - using System; using libsecondlife; using OpenSim.Framework; @@ -97,7 +95,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine // this private copy will contain Read-Only FullitemID so that it can bring that on to the server whenever needed. - LSL_BuiltIn_Commands LSLB = new LSL_BuiltIn_Commands(m_scriptEngine, m_host, localID, itemID); + BuilIn_Commands LSLB = (BuilIn_Commands)new OSSL_BuilIn_Commands(m_scriptEngine, m_host, localID, itemID); // Start the script - giving it BuiltIns CompiledScript.Start(LSLB); diff --git a/OpenSim/Region/ScriptEngine/LSOEngine/ScriptManager.cs b/OpenSim/Region/ScriptEngine/LSOEngine/ScriptManager.cs index 4657e5c..8a91550 100644 --- a/OpenSim/Region/ScriptEngine/LSOEngine/ScriptManager.cs +++ b/OpenSim/Region/ScriptEngine/LSOEngine/ScriptManager.cs @@ -91,7 +91,7 @@ namespace OpenSim.Region.ScriptEngine.LSOEngine // this private copy will contain Read-Only FullitemID so that it can bring that on to the server whenever needed. - LSL_BuiltIn_Commands LSLB = new LSL_BuiltIn_Commands(m_scriptEngine, m_host, localID, itemID); + BuilIn_Commands LSLB = new BuilIn_Commands(m_scriptEngine, m_host, localID, itemID); // Start the script - giving it BuiltIns CompiledScript.Start(LSLB); -- cgit v1.1