From 5ee2e38c11785e9b68ecf1767af7a4ea5b13b7c7 Mon Sep 17 00:00:00 2001
From: MW
Date: Sun, 29 Jul 2007 13:05:57 +0000
Subject: Deleting objects should now work. But beware they aren't send to your
 trash folder or anything so there is at the moment no way to recover deleted
 objects.

---
 OpenSim/Region/ClientStack/ClientView.API.cs       |   4 +-
 .../Region/ClientStack/RegionApplicationBase.cs    |   2 +-
 OpenSim/Region/Environment/Scenes/Primitive.cs     |   6 +-
 .../Environment/Scenes/Scene.PacketHandlers.cs     |  38 +-
 OpenSim/Region/Environment/Scenes/Scene.cs         |   3 +-
 OpenSim/Region/Environment/Scenes/ScenePresence.cs |   5 +-
 .../Region/Examples/SimpleApp/MyNpcCharacter.cs    |   2 +-
 .../BasicPhysicsPlugin/BasicPhysicsPlugin.cs       | 386 +++++++++++----------
 8 files changed, 244 insertions(+), 202 deletions(-)

(limited to 'OpenSim/Region')

diff --git a/OpenSim/Region/ClientStack/ClientView.API.cs b/OpenSim/Region/ClientStack/ClientView.API.cs
index 2733f0a..4b0352b 100644
--- a/OpenSim/Region/ClientStack/ClientView.API.cs
+++ b/OpenSim/Region/ClientStack/ClientView.API.cs
@@ -506,12 +506,12 @@ namespace OpenSim.Region.ClientStack
             OutPacket(pc);
         }
 
-        public void SendKillObject(ulong regionHandle, uint avatarLocalID)
+        public void SendKillObject(ulong regionHandle, uint localID)
         {
             KillObjectPacket kill = new KillObjectPacket();
             kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1];
             kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock();
-            kill.ObjectData[0].ID = avatarLocalID;
+            kill.ObjectData[0].ID = localID;
             OutPacket(kill);
         }
 
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
index bad7fec..008b4c7 100644
--- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs
+++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs
@@ -70,7 +70,7 @@ namespace OpenSim.Region.ClientStack
 
             Initialize();
             
-            ScenePresence.LoadTextureFile("avatar-texture.dat");
+            ScenePresence.CreateDefaultTextureEntry("avatar-texture.dat");
 
             m_httpServer = new BaseHttpServer( m_httpServerPort );
 
diff --git a/OpenSim/Region/Environment/Scenes/Primitive.cs b/OpenSim/Region/Environment/Scenes/Primitive.cs
index ba10893..60ea28f 100644
--- a/OpenSim/Region/Environment/Scenes/Primitive.cs
+++ b/OpenSim/Region/Environment/Scenes/Primitive.cs
@@ -33,9 +33,9 @@ namespace OpenSim.Region.Environment.Scenes
 
         public uint OwnerMask = FULL_MASK_PERMISSIONS;
         public uint NextOwnerMask = FULL_MASK_PERMISSIONS;
-        public uint GroupMask = FULL_MASK_PERMISSIONS;
-        public uint EveryoneMask = FULL_MASK_PERMISSIONS;
-        public uint BaseMask = FULL_MASK_PERMISSIONS;
+        public uint GroupMask = 0;// FULL_MASK_PERMISSIONS;
+        public uint EveryoneMask = 0;//FULL_MASK_PERMISSIONS;
+        public uint BaseMask = 0;//FULL_MASK_PERMISSIONS;
 
         private PrimitiveBaseShape m_Shape;
         private byte[] m_particleSystem = new byte[0];
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 70bd003..a90c5ff 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -217,7 +217,42 @@ namespace OpenSim.Region.Environment.Scenes
         /// <param name="simClient"></param>
         public void DeRezObject(Packet packet, IClientAPI simClient)
         {
+            DeRezObjectPacket DeRezPacket = (DeRezObjectPacket)packet;
 
+            
+            if (DeRezPacket.AgentBlock.DestinationID == LLUUID.Zero)
+            {
+                //currently following code not used (or don't know of any case of destination being zero
+            }
+            else
+            {
+                foreach (DeRezObjectPacket.ObjectDataBlock Data in DeRezPacket.ObjectData)
+                {
+                    EntityBase selectedEnt = null;
+                    //OpenSim.Framework.Console.MainConsole.Instance.WriteLine("LocalID:" + Data.ObjectLocalID.ToString());
+                    foreach (EntityBase ent in this.Entities.Values)
+                    {
+                        if (ent.LocalId == Data.ObjectLocalID)
+                        {
+                            selectedEnt = ent;
+                            break;
+                        }
+                    }
+                    if (selectedEnt != null)
+                    {
+                        List<ScenePresence> avatars = this.RequestAvatarList();
+                        foreach (ScenePresence avatar in avatars)
+                        {
+                            avatar.ControllingClient.SendKillObject(this.m_regionHandle, selectedEnt.LocalId);
+                        }
+                       
+                        lock (Entities)
+                        {
+                            Entities.Remove(selectedEnt.m_uuid);
+                        }
+                    }
+                }
+            }
         }
 
         /// <summary>
@@ -678,7 +713,7 @@ namespace OpenSim.Region.Environment.Scenes
                 asset.InvType = invType;
                 asset.Type = type;
                 asset.FullID = LLUUID.Random();
-                asset.Data = new byte[0];
+                asset.Data = new byte[1];
                 this.assetCache.AddAsset(asset);
 
                 InventoryItemBase item = new InventoryItemBase();
@@ -689,6 +724,7 @@ namespace OpenSim.Region.Environment.Scenes
                 item.inventoryDescription = description;
                 item.inventoryName = name;
                 item.assetType = invType;
+                item.invType = invType;
                 item.parentFolderID = folderID;
                 item.inventoryCurrentPermissions = 2147483647;
                 item.inventoryNextPermissions = nextOwnerMask;
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 39584ad..70aead3 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -550,7 +550,7 @@ namespace OpenSim.Region.Environment.Scenes
             m_estateManager.sendRegionHandshake(client);
             CreateAndAddScenePresence(client);
             m_LandManager.sendParcelOverlay(client);
-            //commsManager.UserProfiles.AddNewUser(client.AgentId);
+           // commsManager.UserProfiles.AddNewUser(client.AgentId);
         }
 
         protected virtual void SubscribeToClientEvents(IClientAPI client)
@@ -576,6 +576,7 @@ namespace OpenSim.Region.Environment.Scenes
             client.OnObjectSelect += SelectPrim;
             client.OnObjectDeselect += DeselectPrim;
             client.OnGrapUpdate += MoveObject;
+            client.OnDeRezObject += DeRezObject;
             client.OnNameFromUUIDRequest += commsManager.HandleUUIDNameRequest;
             client.OnObjectDescription += PrimDescription;
             client.OnObjectName += PrimName;
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index caa359e..4bb48b8 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -459,6 +459,9 @@ namespace OpenSim.Region.Environment.Scenes
                 this.m_scene.InformClientOfNeighbours(this.ControllingClient);
                 this.newAvatar = false;
             }
+
+          // this.SendFullUpdateToALLClients();
+          //  this.SendArrearanceToAllOtherAgents();
         }
 
         /// <summary>
@@ -640,7 +643,7 @@ namespace OpenSim.Region.Environment.Scenes
             }
         }
 
-        public static void LoadTextureFile(string name)
+        public static void CreateDefaultTextureEntry(string name)
         {
            /* FileInfo fInfo = new FileInfo(name);
             long numBytes = fInfo.Length;
diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs
index 6bcec5c..b9ffb71 100644
--- a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs
+++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs
@@ -121,7 +121,7 @@ namespace SimpleApp
         public virtual void SendWearables(AvatarWearable[] wearables) { }
         public virtual void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry) { }
         public virtual void SendStartPingCheck(byte seq) { }
-        public virtual void SendKillObject(ulong regionHandle, uint avatarLocalID) { }
+        public virtual void SendKillObject(ulong regionHandle, uint localID) { }
         public virtual void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId) { }
         public virtual void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID) { }
         public virtual void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID) { }
diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
index 4d0699b..b722fdf 100644
--- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
+++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
@@ -31,79 +31,97 @@ using OpenSim.Physics.Manager;
 
 namespace OpenSim.Region.Physics.BasicPhysicsPlugin
 {
-	/// <summary>
-	/// Will be the PhysX plugin but for now will be a very basic physics engine
-	/// </summary>
-	public class BasicPhysicsPlugin : IPhysicsPlugin
-	{
-		public BasicPhysicsPlugin()
-		{
-			
-		}
-		
-		public bool Init()
-		{
-			return true;
-		}
-		
-		public PhysicsScene GetScene()
-		{
-		    return new BasicScene();
-		}
-		
-		public string GetName()
-		{
-			return("basicphysics");
-		}
-		
-		public void Dispose()
-		{
-			
-		}
-	}
-	
-	public class BasicScene :PhysicsScene
-	{
-		private List<BasicActor> _actors = new List<BasicActor>();
-		private float[] _heightMap;
-		
-		public BasicScene()
-		{
-			
-		}
-		
-		public override PhysicsActor AddAvatar(PhysicsVector position)
-		{
-			BasicActor act = new BasicActor();
-			act.Position = position;
-			_actors.Add(act);
-			return act;
-		}
+    /// <summary>
+    /// Will be the PhysX plugin but for now will be a very basic physics engine
+    /// </summary>
+    public class BasicPhysicsPlugin : IPhysicsPlugin
+    {
+        public BasicPhysicsPlugin()
+        {
+
+        }
+
+        public bool Init()
+        {
+            return true;
+        }
+
+        public PhysicsScene GetScene()
+        {
+            return new BasicScene();
+        }
+
+        public string GetName()
+        {
+            return ("basicphysics");
+        }
+
+        public void Dispose()
+        {
+
+        }
+    }
+
+    public class BasicScene : PhysicsScene
+    {
+        private List<BasicActor> _actors = new List<BasicActor>();
+        private float[] _heightMap;
+
+        public BasicScene()
+        {
+
+        }
+
+        public override PhysicsActor AddAvatar(PhysicsVector position)
+        {
+            BasicActor act = new BasicActor();
+            act.Position = position;
+            _actors.Add(act);
+            return act;
+        }
 
         public override void RemoveAvatar(PhysicsActor actor)
         {
             BasicActor act = (BasicActor)actor;
-            if(_actors.Contains(act))
+            if (_actors.Contains(act))
             {
                 _actors.Remove(act);
             }
 
         }
 
-		public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size)
-		{
-			return null;
-		}
-		
-		public override void Simulate(float timeStep)
-		{
-			foreach (BasicActor actor in _actors)
-			{
-                float height = _heightMap[(int)actor.Position.Y * 256 + (int)actor.Position.X] + 1.2f;
+        public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size)
+        {
+            return null;
+        }
+
+        public override void Simulate(float timeStep)
+        {
+            foreach (BasicActor actor in _actors)
+            {
                 actor.Position.X = actor.Position.X + (actor.Velocity.X * timeStep);
                 actor.Position.Y = actor.Position.Y + (actor.Velocity.Y * timeStep);
+                if (actor.Position.Y < 0)
+                {
+                    actor.Position.Y = 0;
+                }
+                else if (actor.Position.Y > 256)
+                {
+                    actor.Position.Y = 256;
+                }
+
+                if (actor.Position.X < 0)
+                {
+                    actor.Position.X = 0;
+                }
+                else if (actor.Position.X > 256)
+                {
+                    actor.Position.X = 256;
+                }
+
+                float height = _heightMap[(int)actor.Position.Y * 256 + (int)actor.Position.X] + 1.2f;
                 if (actor.Flying)
-                    {
+                {
                     if (actor.Position.Z + (actor.Velocity.Z * timeStep) < _heightMap[(int)actor.Position.Y * 256 + (int)actor.Position.X] + 2)
                     {
                         actor.Position.Z = height;
@@ -120,145 +138,129 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin
                     actor.Velocity.Z = 0;
                 }
 
-                if (actor.Position.Y < 0)
-                {
-                    actor.Position.Y = 0;
-                }
-                else if (actor.Position.Y > 256)
-                {
-                    actor.Position.Y = 256;
-                }
 
-                if (actor.Position.X < 0)
-                {
-                    actor.Position.X = 0;
-                }
-                if (actor.Position.X > 256)
-                {
-                    actor.Position.X = 256;
-                }
             }
-		}
-		
-		public override void GetResults()
-		{
-		
-		}
-		
-		public override bool IsThreaded
-		{
-			get
-			{
-				return(false); // for now we won't be multithreaded
-			}
-		}
-		
-		public override void SetTerrain(float[] heightMap)
-		{
-			this._heightMap = heightMap;
-		}
+        }
+
+        public override void GetResults()
+        {
+
+        }
+
+        public override bool IsThreaded
+        {
+            get
+            {
+                return (false); // for now we won't be multithreaded
+            }
+        }
+
+        public override void SetTerrain(float[] heightMap)
+        {
+            this._heightMap = heightMap;
+        }
 
         public override void DeleteTerrain()
         {
 
         }
-	}
-	
-	public  class BasicActor : PhysicsActor
-	{
-		private PhysicsVector _position;
-		private PhysicsVector _velocity;
-		private PhysicsVector _acceleration;
-		private bool flying;
-		public BasicActor()
-		{
-			_velocity = new PhysicsVector();
-			_position = new PhysicsVector();
-			_acceleration = new PhysicsVector();
-		}
-		
-		public override bool Flying
-		{
-			get
-			{
+    }
+
+    public class BasicActor : PhysicsActor
+    {
+        private PhysicsVector _position;
+        private PhysicsVector _velocity;
+        private PhysicsVector _acceleration;
+        private bool flying;
+        public BasicActor()
+        {
+            _velocity = new PhysicsVector();
+            _position = new PhysicsVector();
+            _acceleration = new PhysicsVector();
+        }
+
+        public override bool Flying
+        {
+            get
+            {
                 return flying;
-			}
-			set
-			{
-				flying= value;
-			}
-		}
-		
-		public override PhysicsVector Position
-		{
-			get
-			{
-				return _position;
-			}
-			set
-			{
-				_position = value;
-			}
-		}
-		
-		public override PhysicsVector Velocity
-		{
-			get
-			{
-				return _velocity;
-			}
-			set
-			{
-				_velocity = value;
-			}
-		}
-		
-		public override Quaternion Orientation
-		{
-			get
-			{
-				return Quaternion.Identity;
-			}
-			set
-			{
-				
-			}
-		}
-		
-		public override PhysicsVector Acceleration
-		{
-			get
-			{
-				return _acceleration;
-			}
-			
-		}
-		
-		public override bool Kinematic
-		{
-			get
-			{
-				return true;
-			}
-			set
-			{
-				
-			}
-		}
-		public void SetAcceleration (PhysicsVector accel)
-		{
-			this._acceleration = accel;
-		}
-		
-		public override void AddForce(PhysicsVector force)
-		{
-			
-		}
-		
-		public override void SetMomentum(PhysicsVector momentum)
-		{
-			
-		}
-	}
+            }
+            set
+            {
+                flying = value;
+            }
+        }
+
+        public override PhysicsVector Position
+        {
+            get
+            {
+                return _position;
+            }
+            set
+            {
+                _position = value;
+            }
+        }
+
+        public override PhysicsVector Velocity
+        {
+            get
+            {
+                return _velocity;
+            }
+            set
+            {
+                _velocity = value;
+            }
+        }
+
+        public override Quaternion Orientation
+        {
+            get
+            {
+                return Quaternion.Identity;
+            }
+            set
+            {
+
+            }
+        }
+
+        public override PhysicsVector Acceleration
+        {
+            get
+            {
+                return _acceleration;
+            }
+
+        }
+
+        public override bool Kinematic
+        {
+            get
+            {
+                return true;
+            }
+            set
+            {
+
+            }
+        }
+        public void SetAcceleration(PhysicsVector accel)
+        {
+            this._acceleration = accel;
+        }
+
+        public override void AddForce(PhysicsVector force)
+        {
+
+        }
+
+        public override void SetMomentum(PhysicsVector momentum)
+        {
+
+        }
+    }
 
 }
-- 
cgit v1.1