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

(limited to 'OpenSim')

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
+{
+    /// <summary>
+    /// This is the end of a chain of inherited builtin command implementations. This module will be instanced by script engines.
+    /// </summary>
+    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