From 5225e40f9e2cfdbc5a14099f45e794ed208838f5 Mon Sep 17 00:00:00 2001
From: Adam Frisby
Date: Wed, 1 Apr 2009 05:58:07 +0000
Subject: * Removes some hard-coded magic numbers relating to RegionSize. We
 now use Constants.RegionSize as expected. (Working towards enlarged or
 smaller regionsizes that arent multiples of 256m) * Adds minor functionality
 to MRM Scripting.

---
 OpenSim/Data/NHibernate/Terrain.cs                 | 12 ++---
 OpenSim/Data/Tests/BasicRegionTest.cs              | 10 ++---
 .../Scripting/Minimodule/IObject.cs                |  6 ++-
 .../Scripting/Minimodule/SOPObject.cs              | 51 ++++++++++------------
 4 files changed, 39 insertions(+), 40 deletions(-)

diff --git a/OpenSim/Data/NHibernate/Terrain.cs b/OpenSim/Data/NHibernate/Terrain.cs
index 292b3b4..bd6f992 100644
--- a/OpenSim/Data/NHibernate/Terrain.cs
+++ b/OpenSim/Data/NHibernate/Terrain.cs
@@ -74,15 +74,15 @@ namespace OpenSim.Data.NHibernate
 
         private static double[,] parseTerrain(byte[] data)
         {
-            double[,] terret = new double[256,256];
+            double[,] terret = new double[Constants.RegionSize, Constants.RegionSize];
             terret.Initialize();
 
             MemoryStream str = new MemoryStream(data);
             BinaryReader br = new BinaryReader(str);
             try {
-                for (int x = 0; x < 256; x++)
+                for (int x = 0; x < Constants.RegionSize; x++)
                 {
-                    for (int y = 0; y < 256; y++)
+                    for (int y = 0; y < Constants.RegionSize; y++)
                     {
                         terret[x, y] = br.ReadDouble();
                     }
@@ -97,13 +97,13 @@ namespace OpenSim.Data.NHibernate
 
         private static byte[] serializeTerrain(double[,] val)
         {
-            MemoryStream str = new MemoryStream((int)(65536 * sizeof (double)));
+            MemoryStream str = new MemoryStream((int) ((Constants.RegionSize*Constants.RegionSize)*sizeof (double)));
             BinaryWriter bw = new BinaryWriter(str);
 
             // TODO: COMPATIBILITY - Add byte-order conversions
-            for (int x = 0; x < 256; x++)
+            for (int x = 0; x < Constants.RegionSize; x++)
             {
-                for (int y = 0; y < 256; y++)
+                for (int y = 0; y < Constants.RegionSize; y++)
                 {
                     double height = val[x, y];
                     if (height <= 0.0)
diff --git a/OpenSim/Data/Tests/BasicRegionTest.cs b/OpenSim/Data/Tests/BasicRegionTest.cs
index 179692a..e7ce8af 100644
--- a/OpenSim/Data/Tests/BasicRegionTest.cs
+++ b/OpenSim/Data/Tests/BasicRegionTest.cs
@@ -882,10 +882,10 @@ namespace OpenSim.Data.Tests
 
         private double[,] GenTerrain(double value)
         {
-            double[,] terret = new double[256,256];
+            double[,] terret = new double[Constants.RegionSize, Constants.RegionSize];
             terret.Initialize();
-            for (int x = 0; x < 256; x++) 
-                for (int y = 0; y < 256; y++)
+            for (int x = 0; x < Constants.RegionSize; x++)
+                for (int y = 0; y < Constants.RegionSize; y++)
                     terret[x,y] = value;
             
             return terret;
@@ -893,8 +893,8 @@ namespace OpenSim.Data.Tests
         
         private bool CompareTerrain(double[,] one, double[,] two)
         {
-            for (int x = 0; x < 256; x++) 
-                for (int y = 0; y < 256; y++)
+            for (int x = 0; x < Constants.RegionSize; x++)
+                for (int y = 0; y < Constants.RegionSize; y++)
                     if (one[x,y] != two[x,y]) 
                         return false;
 
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/IObject.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IObject.cs
index 1ccc8a4..c7f9569 100644
--- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/IObject.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/IObject.cs
@@ -1,4 +1,4 @@
-/*
+/*
  * Copyright (c) Contributors, http://opensimulator.org/
  * See CONTRIBUTORS.TXT for a full list of copyright holders.
  *
@@ -37,6 +37,9 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
         uint LocalID { get; }
         UUID GlobalID { get; }
 
+        String Name { get; set; }
+        String Description { get; set; }
+
         IObject[] Children { get; }
 
         /// <summary>
@@ -48,6 +51,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
 
         Vector3 Scale { get; set; }
         Quaternion Rotation { get; set; }
+        Vector3 Position { get; set; }
 
         Vector3 SitTarget { get; set; }
         String SitTargetText { get; set; }
diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs
index e1b9f3e..538a496 100644
--- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs
+++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/SOPObject.cs
@@ -1,31 +1,4 @@
-/*
- * 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 OpenSimulator 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.Collections.Generic;
 using OpenMetaverse;
 using OpenSim.Framework;
 using OpenSim.Region.Framework.Scenes;
@@ -71,6 +44,18 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
             get { return GetSOP().UUID; }
         }
 
+        public string Name
+        {
+            get { return GetSOP().Name; }
+            set { GetSOP().Name = value; }
+        }
+
+        public string Description
+        {
+            get { return GetSOP().Description; }
+            set { GetSOP().Description = value; }
+        }
+
         public IObject[] Children
         {
             get
@@ -123,6 +108,16 @@ namespace OpenSim.Region.OptionalModules.Scripting.Minimodule
             set { throw new System.NotImplementedException(); }
         }
 
+        public Vector3 Position
+        {
+            get { return GetSOP().AbsolutePosition; }
+            set
+            {
+                SceneObjectPart pos = GetSOP();
+                pos.UpdateOffSet(value - pos.AbsolutePosition);
+            }
+        }
+
         public Vector3 SitTarget
         {
             get { throw new System.NotImplementedException(); }
-- 
cgit v1.1