From 87e2a694e200f5774f71d38041247912b5ccf98d Mon Sep 17 00:00:00 2001
From: lbsa71
Date: Thu, 27 Dec 2007 14:00:30 +0000
Subject: * AssetServerBase: _ProcessRequest is now called GetAsset *
 PrimitiveBaseShape: The textures are now exposed as a 'TextureEntry
 Textures'; all serialization still using the 'byte[] TextureEntry' for
 backwards compatibility. * Scene: Re-added AddTree, since the Tree type isn't
 gone from libsl, merely relocated.

---
 .../Framework/Communications/Cache/AssetServer.cs  |  2 +-
 .../Communications/Cache/AssetServerBase.cs        |  8 ++---
 .../Communications/Cache/GridAssetClient.cs        |  2 +-
 .../Communications/Cache/SQLAssetServer.cs         |  2 +-
 OpenSim/Framework/Data.MySQL/MySQLDataStore.cs     |  5 ++-
 OpenSim/Framework/PrimitiveBaseShape.cs            | 42 +++++++++++++++++++---
 OpenSim/Region/ClientStack/ClientView.cs           |  2 +-
 .../Environment/Modules/DynamicTextureModule.cs    |  2 +-
 OpenSim/Region/Environment/Scenes/Scene.cs         |  7 ++--
 .../Region/Environment/Scenes/SceneObjectPart.cs   |  2 +-
 .../Compiler/Server_API/LSL_BuiltIn_Commands.cs    | 33 ++++++++---------
 .../OpenSim.DataStore.MSSQL/MSSQLDataStore.cs      |  8 +++--
 .../MonoSqliteDataStore.cs                         |  6 +++-
 13 files changed, 82 insertions(+), 39 deletions(-)

diff --git a/OpenSim/Framework/Communications/Cache/AssetServer.cs b/OpenSim/Framework/Communications/Cache/AssetServer.cs
index 4ad0f60..ae6494f 100644
--- a/OpenSim/Framework/Communications/Cache/AssetServer.cs
+++ b/OpenSim/Framework/Communications/Cache/AssetServer.cs
@@ -72,7 +72,7 @@ namespace OpenSim.Framework.Communications.Cache
             }
         }
 
-        protected override AssetBase _ProcessRequest(AssetRequest req)
+        protected override AssetBase GetAsset(AssetRequest req)
         {
             byte[] idata = null;
             bool found = false;
diff --git a/OpenSim/Framework/Communications/Cache/AssetServerBase.cs b/OpenSim/Framework/Communications/Cache/AssetServerBase.cs
index f5ebab7..43d3dd9 100644
--- a/OpenSim/Framework/Communications/Cache/AssetServerBase.cs
+++ b/OpenSim/Framework/Communications/Cache/AssetServerBase.cs
@@ -54,16 +54,16 @@ namespace OpenSim.Framework.Communications.Cache
         /// </summary>
         /// <param name="req"></param>
         /// <returns></returns>
-        protected abstract AssetBase _ProcessRequest(AssetRequest req);
+        protected abstract AssetBase GetAsset(AssetRequest req);
 
         /// <summary>
-        /// Process an asset request.  This method will call _ProcessRequest(AssetRequest req) 
+        /// Process an asset request.  This method will call GetAsset(AssetRequest req) 
         /// on the subclass.
         /// </summary>
         /// <param name="req"></param>
-        protected void ProcessRequest(AssetRequest req)
+        protected virtual void ProcessRequest(AssetRequest req)
         {
-            AssetBase asset = _ProcessRequest(req);
+            AssetBase asset = GetAsset(req);
 
             if (asset != null)
             {
diff --git a/OpenSim/Framework/Communications/Cache/GridAssetClient.cs b/OpenSim/Framework/Communications/Cache/GridAssetClient.cs
index 5801aa8..9c460c7 100644
--- a/OpenSim/Framework/Communications/Cache/GridAssetClient.cs
+++ b/OpenSim/Framework/Communications/Cache/GridAssetClient.cs
@@ -47,7 +47,7 @@ namespace OpenSim.Framework.Communications.Cache
 
         #region IAssetServer Members
 
-        protected override AssetBase _ProcessRequest(AssetRequest req)
+        protected override AssetBase GetAsset(AssetRequest req)
         {
             Stream s = null;
             try
diff --git a/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs b/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs
index 4fa7684..7fcff10 100644
--- a/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs
+++ b/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs
@@ -77,7 +77,7 @@ namespace OpenSim.Framework.Communications.Cache
             m_assetProviderPlugin.CommitAssets();
         }
 
-        protected override AssetBase _ProcessRequest(AssetRequest req)
+        protected override AssetBase GetAsset(AssetRequest req)
         {
             AssetBase asset;
             lock (syncLock)
diff --git a/OpenSim/Framework/Data.MySQL/MySQLDataStore.cs b/OpenSim/Framework/Data.MySQL/MySQLDataStore.cs
index 61b22a0..06a5814 100644
--- a/OpenSim/Framework/Data.MySQL/MySQLDataStore.cs
+++ b/OpenSim/Framework/Data.MySQL/MySQLDataStore.cs
@@ -916,7 +916,10 @@ namespace OpenSim.Framework.Data.MySQL
             s.ProfileEnd = Convert.ToUInt16(row["ProfileEnd"]);
             s.ProfileCurve = Convert.ToByte(row["ProfileCurve"]);
             s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]);
-            s.TextureEntry = (byte[])row["Texture"];
+            
+            byte[] textureEntry = (byte[])row["Texture"];
+            s.TextureEntry = textureEntry;
+            
             s.ExtraParams = (byte[])row["ExtraParams"];
 
             return s;
diff --git a/OpenSim/Framework/PrimitiveBaseShape.cs b/OpenSim/Framework/PrimitiveBaseShape.cs
index b06a885..98e583e 100644
--- a/OpenSim/Framework/PrimitiveBaseShape.cs
+++ b/OpenSim/Framework/PrimitiveBaseShape.cs
@@ -28,6 +28,7 @@
 
 using System.Xml.Serialization;
 using libsecondlife;
+using System;
 
 namespace OpenSim.Framework
 {
@@ -63,9 +64,10 @@ namespace OpenSim.Framework
         Flexible = 128
     }
 
+    [Serializable]
     public class PrimitiveBaseShape
     {
-        private static readonly byte[] m_defaultTextureEntry;
+        private static readonly LLObject.TextureEntry m_defaultTexture;
 
         public byte State;
         public byte PCode;
@@ -88,7 +90,35 @@ namespace OpenSim.Framework
         public sbyte PathTaperY;
         public sbyte PathTwist;
         public sbyte PathTwistBegin;
-        public byte[] TextureEntry; // a LL textureEntry in byte[] format
+
+        [XmlIgnore]        
+        public LLObject.TextureEntry Textures
+        {
+            get
+            {
+                return new LLObject.TextureEntry(m_textureEntry, 0, m_textureEntry.Length);
+            }
+
+            set
+            {
+                m_textureEntry = value.ToBytes();
+            }
+        }
+
+        private byte[] m_textureEntry;
+        public byte[] TextureEntry
+        {
+            get
+            {
+                return m_textureEntry;
+            }
+
+            set
+            {
+                m_textureEntry = value;
+            }
+        }
+
         public byte[] ExtraParams;
 
         public ProfileShape ProfileShape
@@ -117,17 +147,19 @@ namespace OpenSim.Framework
             get { return Scale; }
         }
 
+      
+
         static PrimitiveBaseShape()
         {
-            m_defaultTextureEntry =
-                new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-9999-000000000005")).ToBytes();
+            m_defaultTexture =
+                new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-9999-000000000005"));
         }
 
         public PrimitiveBaseShape()
         {
             PCode = (byte) PCodeEnum.Primitive;
             ExtraParams = new byte[1];
-            TextureEntry = m_defaultTextureEntry;
+            Textures = m_defaultTexture;
         }
 
         public static PrimitiveBaseShape Create()
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs
index 45806ff..f29d2f9 100644
--- a/OpenSim/Region/ClientStack/ClientView.cs
+++ b/OpenSim/Region/ClientStack/ClientView.cs
@@ -3474,7 +3474,7 @@ namespace OpenSim.Region.ClientStack
             shape.PathTwist = addPacket.ObjectData.PathTwist;
             shape.PathTwistBegin = addPacket.ObjectData.PathTwistBegin;
             LLObject.TextureEntry ntex = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-9999-000000000005"));
-            shape.TextureEntry = ntex.ToBytes();
+            shape.Textures = ntex;
             return shape;
         }
 
diff --git a/OpenSim/Region/Environment/Modules/DynamicTextureModule.cs b/OpenSim/Region/Environment/Modules/DynamicTextureModule.cs
index 2668812..6a0af45 100644
--- a/OpenSim/Region/Environment/Modules/DynamicTextureModule.cs
+++ b/OpenSim/Region/Environment/Modules/DynamicTextureModule.cs
@@ -182,7 +182,7 @@ namespace OpenSim.Region.Environment.Modules
                 LastAssetID = asset.FullID;
 
                 SceneObjectPart part = scene.GetSceneObjectPart(PrimID);
-                part.Shape.TextureEntry = new LLObject.TextureEntry(asset.FullID).ToBytes();
+                part.Shape.Textures = new LLObject.TextureEntry(asset.FullID);
                 part.ScheduleFullUpdate();
             }
         }
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 2a25316..0144c4c 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -1006,19 +1006,18 @@ namespace OpenSim.Region.Environment.Scenes
             }
         }
 
-/* Tree has been removed from libSL
         public void AddTree(LLVector3 scale, LLQuaternion rotation, LLVector3 position,
-           libsecondlife.ObjectManager.Tree treeType, bool newTree)
+           Tree treeType, bool newTree)
         {
             PrimitiveBaseShape treeShape = new PrimitiveBaseShape();
             treeShape.PathCurve = 16;
             treeShape.PathEnd = 49900;
-            treeShape.PCode = newTree ? (byte)libsecondlife.ObjectManager.PCode.NewTree : (byte)libsecondlife.ObjectManager.PCode.Tree;
+            treeShape.PCode = newTree ? (byte)PCode.NewTree : (byte)PCode.Tree;
             treeShape.Scale = scale;
             treeShape.State = (byte)treeType;
             AddNewPrim(LLUUID.Random(), position, rotation, treeShape);
         }
-*/
+
         public void RemovePrim(uint localID, LLUUID avatar_deleter)
         {
             m_innerScene.RemovePrim(localID, avatar_deleter);
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index e8ff007..29a163b 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -1323,7 +1323,7 @@ namespace OpenSim.Region.Environment.Scenes
         /// <param name="textureEntry"></param>
         public void UpdateTextureEntry(byte[] textureEntry)
         {
-            m_shape.TextureEntry = textureEntry;
+            m_shape.Textures = new LLObject.TextureEntry( textureEntry, 0, textureEntry.Length );
             ScheduleFullUpdate();
         }
 
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs
index 63b4773..bc47241 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs
@@ -459,7 +459,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
         public void llSetColor(LSL_Types.Vector3 color, int face)
         {
-            LLObject.TextureEntry tex = new LLObject.TextureEntry(m_host.Shape.TextureEntry, 0, m_host.Shape.TextureEntry.Length);
+            LLObject.TextureEntry tex = m_host.Shape.Textures;
             LLColor texcolor;
             if (face > -1)
             {
@@ -498,7 +498,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
         public double llGetAlpha(int face)
         {
-            LLObject.TextureEntry tex = new LLObject.TextureEntry(m_host.Shape.TextureEntry, 0, m_host.Shape.TextureEntry.Length);
+            LLObject.TextureEntry tex = m_host.Shape.Textures;
             if (face == -1) // TMP: Until we can determine number of sides, ALL_SIDES (-1) will return default color
             {
                 return (double)((tex.DefaultTexture.RGBA.A * 255) / 255);
@@ -512,7 +512,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
         public void llSetAlpha(double alpha, int face)
         {
-            LLObject.TextureEntry tex = new LLObject.TextureEntry(m_host.Shape.TextureEntry, 0, m_host.Shape.TextureEntry.Length);
+            LLObject.TextureEntry tex = m_host.Shape.Textures;
             LLColor texcolor;
             if (face > -1)
             {
@@ -545,7 +545,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
         public LSL_Types.Vector3 llGetColor(int face)
         {
-            LLObject.TextureEntry tex = new LLObject.TextureEntry(m_host.Shape.TextureEntry, 0, m_host.Shape.TextureEntry.Length);
+            LLObject.TextureEntry tex = m_host.Shape.Textures;
             LLColor texcolor;
             LSL_Types.Vector3 rgb;
             if (face == -1) // TMP: Until we can determine number of sides, ALL_SIDES (-1) will return default color
@@ -570,7 +570,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
         public void llSetTexture(string texture, int face)
         {
-            LLObject.TextureEntry tex = new LLObject.TextureEntry(m_host.Shape.TextureEntry, 0, m_host.Shape.TextureEntry.Length);
+            LLObject.TextureEntry tex = m_host.Shape.Textures;
+
             if (face > -1)
             {
                 LLObject.TextureEntryFace texface = tex.CreateFace((uint)face);
@@ -598,7 +599,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
         public void llScaleTexture(double u, double v, int face)
         {
-            LLObject.TextureEntry tex = new LLObject.TextureEntry(m_host.Shape.TextureEntry, 0, m_host.Shape.TextureEntry.Length);
+            LLObject.TextureEntry tex = m_host.Shape.Textures;
             if (face > -1)
             {
                 LLObject.TextureEntryFace texface = tex.CreateFace((uint)face);
@@ -629,7 +630,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
         public void llOffsetTexture(double u, double v, int face)
         {
-            LLObject.TextureEntry tex = new LLObject.TextureEntry(m_host.Shape.TextureEntry, 0, m_host.Shape.TextureEntry.Length);
+            LLObject.TextureEntry tex = m_host.Shape.Textures;
             if (face > -1)
             {
                 LLObject.TextureEntryFace texface = tex.CreateFace((uint)face);
@@ -660,7 +661,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
         public void llRotateTexture(double rotation, int face)
         {
-            LLObject.TextureEntry tex = new LLObject.TextureEntry(m_host.Shape.TextureEntry, 0, m_host.Shape.TextureEntry.Length);
+            LLObject.TextureEntry tex = m_host.Shape.Textures;
             if (face > -1)
             {
                 LLObject.TextureEntryFace texface = tex.CreateFace((uint)face);
@@ -688,7 +689,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
         public string llGetTexture(int face)
         {
-            LLObject.TextureEntry tex = new LLObject.TextureEntry(m_host.Shape.TextureEntry, 0, m_host.Shape.TextureEntry.Length);
+            LLObject.TextureEntry tex = m_host.Shape.Textures;
             if (face == -1)
             {
                 face = 0;
@@ -1172,7 +1173,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
             SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(linknumber);
             if (linknumber > -1)
             {
-                LLObject.TextureEntry tex = new LLObject.TextureEntry(part.Shape.TextureEntry, 0, part.Shape.TextureEntry.Length);
+                LLObject.TextureEntry tex = part.Shape.Textures;
                 LLColor texcolor;
                 if (face > -1)
                 {
@@ -1219,7 +1220,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
                 {
                     linknumber = w;
                     part = m_host.ParentGroup.GetLinkNumPart(linknumber);
-                    LLObject.TextureEntry tex = new LLObject.TextureEntry(part.Shape.TextureEntry, 0, part.Shape.TextureEntry.Length);
+                    LLObject.TextureEntry tex = part.Shape.Textures;
                     LLColor texcolor;
                     if (face > -1)
                     {
@@ -1467,7 +1468,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
         public LSL_Types.Vector3 llGetTextureOffset(int face)
         {
-            LLObject.TextureEntry tex = new LLObject.TextureEntry(m_host.Shape.TextureEntry, 0, m_host.Shape.TextureEntry.Length);
+            LLObject.TextureEntry tex = m_host.Shape.Textures;
             LSL_Types.Vector3 offset;
             if (face == -1)
             {
@@ -1481,7 +1482,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
         public LSL_Types.Vector3 llGetTextureScale(int side)
         {
-            LLObject.TextureEntry tex = new LLObject.TextureEntry(m_host.Shape.TextureEntry, 0, m_host.Shape.TextureEntry.Length);
+            LLObject.TextureEntry tex = m_host.Shape.Textures;
             LSL_Types.Vector3 scale;
             if (side == -1)
             {
@@ -1495,7 +1496,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
 
         public double llGetTextureRot(int face)
         {
-            LLObject.TextureEntry tex = new LLObject.TextureEntry(m_host.Shape.TextureEntry, 0, m_host.Shape.TextureEntry.Length);
+            LLObject.TextureEntry tex = m_host.Shape.Textures;
             if (face == -1)
             {
                 face = 0;
@@ -2413,7 +2414,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
             SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(linknumber);
             if (linknumber > -1)
             {
-                LLObject.TextureEntry tex = new LLObject.TextureEntry(part.Shape.TextureEntry, 0, part.Shape.TextureEntry.Length);
+                LLObject.TextureEntry tex = part.Shape.Textures;
                 LLColor texcolor;
                 if (face > -1)
                 {
@@ -2452,7 +2453,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler
                 {
                     linknumber = w;
                     part = m_host.ParentGroup.GetLinkNumPart(linknumber);
-                    LLObject.TextureEntry tex = new LLObject.TextureEntry(part.Shape.TextureEntry, 0, part.Shape.TextureEntry.Length);
+                    LLObject.TextureEntry tex = part.Shape.Textures;
                     LLColor texcolor;
                     if (face > -1)
                     {
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.MSSQL/MSSQLDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.MSSQL/MSSQLDataStore.cs
index 91edf5e..0a48126 100644
--- a/OpenSim/Region/Storage/OpenSim.DataStore.MSSQL/MSSQLDataStore.cs
+++ b/OpenSim/Region/Storage/OpenSim.DataStore.MSSQL/MSSQLDataStore.cs
@@ -634,9 +634,13 @@ namespace OpenSim.DataStore.MSSQL
             s.ProfileEnd = Convert.ToUInt16(row["ProfileEnd"]);
             s.ProfileCurve = Convert.ToByte(row["ProfileCurve"]);
             s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]);
+          
             // text TODO: this isn't right] = but I'm not sure the right
-            // way to specify this as a blob atm
-            s.TextureEntry = (byte[])row["Texture"];
+            // way to specify this as a blob atm          
+            byte[] textureEntry = (byte[])row["Texture"];
+            s.TextureEntry = textureEntry;
+          
+
             s.ExtraParams = (byte[])row["ExtraParams"];
             // System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
             //             string texture = encoding.GetString((Byte[])row["Texture"]);
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
index 5bf4551..9118082 100644
--- a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
+++ b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs
@@ -1014,7 +1014,11 @@ namespace OpenSim.DataStore.MonoSqlite
             s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]);
             // text TODO: this isn't right] = but I'm not sure the right
             // way to specify this as a blob atm
-            s.TextureEntry = (byte[]) row["Texture"];
+          
+            byte[] textureEntry = (byte[])row["Texture"];
+            s.TextureEntry = textureEntry;
+          
+
             s.ExtraParams = (byte[]) row["ExtraParams"];
             // System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
             //             string texture = encoding.GetString((Byte[])row["Texture"]);
-- 
cgit v1.1