From 0232f01a58a3c0a88e95c22589efec21f502f081 Mon Sep 17 00:00:00 2001
From: mingchen
Date: Wed, 27 Jun 2007 19:43:46 +0000
Subject: *Moved all the classes into their own file from LLSDHelpers.cs *Some
folder renaming to follow project Name *Updated prebuild.xml
---
.../Environment/Scenes/Scene.PacketHandlers.cs | 305 +++++++++++++++++++++
1 file changed, 305 insertions(+)
create mode 100644 OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
new file mode 100644
index 0000000..1d55c4d
--- /dev/null
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -0,0 +1,305 @@
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.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 libsecondlife.Packets;
+using OpenSim.Physics.Manager;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Types;
+using OpenSim.Framework.Inventory;
+using OpenSim.Framework.Utilities;
+
+namespace OpenSim.Region.Environment.Scenes
+{
+ public partial class Scene
+ {
+ ///
+ /// Modifies terrain using the specified information
+ ///
+ /// The height at which the user started modifying the terrain
+ /// The number of seconds the modify button was pressed
+ /// The size of the brush used
+ /// The action to be performed
+ /// Distance from the north border where the cursor is located
+ /// Distance from the west border where the cursor is located
+ public void ModifyTerrain(float height, float seconds, byte brushsize, byte action, float north, float west)
+ {
+ // Shiny.
+ double size = (double)(1 << brushsize);
+
+ switch (action)
+ {
+ case 0:
+ // flatten terrain
+ Terrain.flatten(north, west, size, (double)seconds / 100.0);
+ RegenerateTerrain(true, (int)north, (int)west);
+ break;
+ case 1:
+ // raise terrain
+ Terrain.raise(north, west, size, (double)seconds / 100.0);
+ RegenerateTerrain(true, (int)north, (int)west);
+ break;
+ case 2:
+ //lower terrain
+ Terrain.lower(north, west, size, (double)seconds / 100.0);
+ RegenerateTerrain(true, (int)north, (int)west);
+ break;
+ case 3:
+ // smooth terrain
+ Terrain.smooth(north, west, size, (double)seconds / 100.0);
+ RegenerateTerrain(true, (int)north, (int)west);
+ break;
+ case 4:
+ // noise
+ Terrain.noise(north, west, size, (double)seconds / 100.0);
+ RegenerateTerrain(true, (int)north, (int)west);
+ break;
+ case 5:
+ // revert
+ Terrain.revert(north, west, size, (double)seconds / 100.0);
+ RegenerateTerrain(true, (int)north, (int)west);
+ break;
+
+ // CLIENT EXTENSIONS GO HERE
+ case 128:
+ // erode-thermal
+ break;
+ case 129:
+ // erode-aerobic
+ break;
+ case 130:
+ // erode-hydraulic
+ break;
+ }
+ return;
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void SimChat(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID)
+ {
+ Console.WriteLine("Chat message");
+ ScenePresence avatar = null;
+ foreach (IClientAPI client in m_clientThreads.Values)
+ {
+ int dis = -1000;
+ if (this.Avatars.ContainsKey(client.AgentId))
+ {
+
+ avatar = this.Avatars[client.AgentId];
+ // int dis = Util.fast_distance2d((int)(client.ClientAvatar.Pos.X - simClient.ClientAvatar.Pos.X), (int)(client.ClientAvatar.Pos.Y - simClient.ClientAvatar.Pos.Y));
+ dis= (int)avatar.Pos.GetDistanceTo(fromPos);
+ Console.WriteLine("found avatar at " +dis);
+
+ }
+
+ switch (type)
+ {
+ case 0: // Whisper
+ if ((dis < 10) && (dis > -10))
+ {
+ //should change so the message is sent through the avatar rather than direct to the ClientView
+ client.SendChatMessage(message, type, fromPos, fromName, fromAgentID);
+ }
+ break;
+ case 1: // Say
+ if ((dis < 30) && (dis > -30))
+ {
+ Console.WriteLine("sending chat");
+ client.SendChatMessage(message, type, fromPos, fromName, fromAgentID);
+ }
+ break;
+ case 2: // Shout
+ if ((dis < 100) && (dis > -100))
+ {
+ client.SendChatMessage(message, type, fromPos, fromName, fromAgentID);
+ }
+ break;
+
+ case 0xff: // Broadcast
+ client.SendChatMessage(message, type, fromPos, fromName, fromAgentID);
+ break;
+ }
+
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void RezObject(AssetBase primAsset, LLVector3 pos)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void DeRezObject(Packet packet, IClientAPI simClient)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ public void SendAvatarsToClient(IClientAPI remoteClient)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void LinkObjects(uint parentPrim, List childPrims)
+ {
+
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void UpdatePrimShape(uint primLocalID, ObjectShapePacket.ObjectDataBlock shapeBlock)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void SelectPrim(uint primLocalID, IClientAPI remoteClient)
+ {
+ foreach (Entity ent in Entities.Values)
+ {
+ if (ent.LocalId == primLocalID)
+ {
+ ((OpenSim.Region.Environment.Scenes.Primitive)ent).GetProperites(remoteClient);
+ break;
+ }
+ }
+ }
+
+ public void MoveObject(LLUUID objectID, LLVector3 offset, LLVector3 pos, IClientAPI remoteClient)
+ {
+ if (this.Entities.ContainsKey(objectID))
+ {
+ ((Primitive)this.Entities[objectID]).GrapMovement(offset, pos, remoteClient);
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void UpdatePrimFlags(uint localID, Packet packet, IClientAPI remoteClient)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void UpdatePrimTexture(uint localID, byte[] texture, IClientAPI remoteClient)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void UpdatePrimPosition(uint localID, LLVector3 pos, IClientAPI remoteClient)
+ {
+ foreach (Entity ent in Entities.Values)
+ {
+ if (ent.LocalId == localID)
+ {
+ ((OpenSim.Region.Environment.Scenes.Primitive)ent).UpdatePosition(pos);
+ break;
+ }
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void UpdatePrimRotation(uint localID, LLQuaternion rot, IClientAPI remoteClient)
+ {
+
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void UpdatePrimScale(uint localID, LLVector3 scale, IClientAPI remoteClient)
+ {
+ }
+
+ ///
+ /// Sends prims to a client
+ ///
+ /// Client to send to
+ public void GetInitialPrims(IClientAPI RemoteClient)
+ {
+
+ }
+ }
+}
--
cgit v1.1
From 9800c05c1b3c7804466d6f3a9c38a739156625fd Mon Sep 17 00:00:00 2001
From: MW
Date: Sun, 1 Jul 2007 17:26:33 +0000
Subject: Started change to having SceneObject and then that having child
Primitives which in turn have a Shape object (currently PrimitiveBaseShape).
The plan is only for the SceneObject to interface with the physics engines.
As a physics Entity should be able to have mulitple shapes connected to it.
---
.../Region/Environment/Scenes/Scene.PacketHandlers.cs | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 1d55c4d..f3d461a 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -214,12 +214,16 @@ namespace OpenSim.Region.Environment.Scenes
///
public void SelectPrim(uint primLocalID, IClientAPI remoteClient)
{
- foreach (Entity ent in Entities.Values)
+ Console.WriteLine("prim selected :" + primLocalID);
+ foreach (EntityBase ent in Entities.Values)
{
- if (ent.LocalId == primLocalID)
+ if (ent is SceneObject)
{
- ((OpenSim.Region.Environment.Scenes.Primitive)ent).GetProperites(remoteClient);
- break;
+ if (((SceneObject)ent).rootLocalID == primLocalID)
+ {
+ ((OpenSim.Region.Environment.Scenes.SceneObject)ent).GetProperites(remoteClient);
+ break;
+ }
}
}
}
@@ -228,7 +232,7 @@ namespace OpenSim.Region.Environment.Scenes
{
if (this.Entities.ContainsKey(objectID))
{
- ((Primitive)this.Entities[objectID]).GrapMovement(offset, pos, remoteClient);
+ ((PrimitiveOld)this.Entities[objectID]).GrapMovement(offset, pos, remoteClient);
}
}
@@ -266,7 +270,7 @@ namespace OpenSim.Region.Environment.Scenes
{
if (ent.LocalId == localID)
{
- ((OpenSim.Region.Environment.Scenes.Primitive)ent).UpdatePosition(pos);
+ ((OpenSim.Region.Environment.Scenes.PrimitiveOld)ent).UpdatePosition(pos);
break;
}
}
--
cgit v1.1
From 54ef77f0fda5fabc6f4677e145fafb74d225a77e Mon Sep 17 00:00:00 2001
From: MW
Date: Sun, 1 Jul 2007 18:33:44 +0000
Subject: Can change the name and description of a prim.
---
.../Environment/Scenes/Scene.PacketHandlers.cs | 45 +++++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index f3d461a..f55c118 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -214,7 +214,6 @@ namespace OpenSim.Region.Environment.Scenes
///
public void SelectPrim(uint primLocalID, IClientAPI remoteClient)
{
- Console.WriteLine("prim selected :" + primLocalID);
foreach (EntityBase ent in Entities.Values)
{
if (ent is SceneObject)
@@ -228,6 +227,50 @@ namespace OpenSim.Region.Environment.Scenes
}
}
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void PrimDescription(uint primLocalID, string description)
+ {
+ Primitive prim = null;
+ foreach (EntityBase ent in Entities.Values)
+ {
+ if (ent is SceneObject)
+ {
+ prim = ((SceneObject)ent).HasChildPrim(primLocalID);
+ if (prim != null)
+ {
+ prim.Description = description;
+ break;
+ }
+ }
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void PrimName(uint primLocalID, string name)
+ {
+ Primitive prim = null;
+ foreach (EntityBase ent in Entities.Values)
+ {
+ if (ent is SceneObject)
+ {
+ prim = ((SceneObject)ent).HasChildPrim(primLocalID);
+ if (prim != null)
+ {
+ prim.Name = name;
+ break;
+ }
+ }
+ }
+ }
+
public void MoveObject(LLUUID objectID, LLVector3 offset, LLVector3 pos, IClientAPI remoteClient)
{
if (this.Entities.ContainsKey(objectID))
--
cgit v1.1
From 2852cda727f86567c18c6fab193ed31195c9934c Mon Sep 17 00:00:00 2001
From: MW
Date: Sun, 1 Jul 2007 21:04:33 +0000
Subject: More work on SceneObject/Primitive and building (Linking is a work in
progress as is all). Committing now as I've finished for the night and will
be continued tomorrow.
---
.../Environment/Scenes/Scene.PacketHandlers.cs | 40 ++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index f55c118..d8533b0 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -193,8 +193,41 @@ namespace OpenSim.Region.Environment.Scenes
///
public void LinkObjects(uint parentPrim, List childPrims)
{
-
+ SceneObject parenPrim = null;
+ foreach (EntityBase ent in Entities.Values)
+ {
+ if (ent is SceneObject)
+ {
+ if (((SceneObject)ent).rootLocalID == parentPrim)
+ {
+ parenPrim = (SceneObject)ent;
+ break;
+ }
+ }
+ }
+ List children = new List();
+ if (parenPrim != null)
+ {
+ for (int i = 0; i < childPrims.Count; i++)
+ {
+ foreach (EntityBase ent in Entities.Values)
+ {
+ if (ent is SceneObject)
+ {
+ if (((SceneObject)ent).rootLocalID == childPrims[i])
+ {
+ children.Add((SceneObject)ent);
+ }
+ }
+ }
+ }
+ }
+
+ foreach (SceneObject sceneObj in children)
+ {
+ parenPrim.AddNewChildPrims(sceneObj);
+ }
}
///
@@ -275,7 +308,10 @@ namespace OpenSim.Region.Environment.Scenes
{
if (this.Entities.ContainsKey(objectID))
{
- ((PrimitiveOld)this.Entities[objectID]).GrapMovement(offset, pos, remoteClient);
+ if (this.Entities[objectID] is SceneObject)
+ {
+ ((SceneObject)this.Entities[objectID]).GrapMovement(offset, pos, remoteClient);
+ }
}
}
--
cgit v1.1
From 9b6b6d05d45cf0f754a0b26bf6240ef50be66563 Mon Sep 17 00:00:00 2001
From: lbsa71
Date: Tue, 3 Jul 2007 14:37:29 +0000
Subject: * Optimized usings (the 'LL ate my scripts' commit) * added some
licensing info
---
OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index d8533b0..669039f 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -27,14 +27,10 @@
*/
using System;
using System.Collections.Generic;
-using System.Text;
using libsecondlife;
using libsecondlife.Packets;
-using OpenSim.Physics.Manager;
using OpenSim.Framework.Interfaces;
using OpenSim.Framework.Types;
-using OpenSim.Framework.Inventory;
-using OpenSim.Framework.Utilities;
namespace OpenSim.Region.Environment.Scenes
{
@@ -253,7 +249,7 @@ namespace OpenSim.Region.Environment.Scenes
{
if (((SceneObject)ent).rootLocalID == primLocalID)
{
- ((OpenSim.Region.Environment.Scenes.SceneObject)ent).GetProperites(remoteClient);
+ ((SceneObject)ent).GetProperites(remoteClient);
break;
}
}
@@ -349,7 +345,7 @@ namespace OpenSim.Region.Environment.Scenes
{
if (ent.LocalId == localID)
{
- ((OpenSim.Region.Environment.Scenes.PrimitiveOld)ent).UpdatePosition(pos);
+ ((PrimitiveOld)ent).UpdatePosition(pos);
break;
}
}
--
cgit v1.1
From bd8018fa1cb32aa42e2a1a41ebb01fc0f1b0a04b Mon Sep 17 00:00:00 2001
From: MW
Date: Tue, 3 Jul 2007 20:10:20 +0000
Subject: Today's work on Building support/tools. Think I am slowly getting
there.
---
.../Environment/Scenes/Scene.PacketHandlers.cs | 82 +++++++++++++++++++---
1 file changed, 74 insertions(+), 8 deletions(-)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 669039f..0927903 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -233,7 +233,19 @@ namespace OpenSim.Region.Environment.Scenes
///
public void UpdatePrimShape(uint primLocalID, ObjectShapePacket.ObjectDataBlock shapeBlock)
{
-
+ Primitive prim = null;
+ foreach (EntityBase ent in Entities.Values)
+ {
+ if (ent is SceneObject)
+ {
+ prim = ((SceneObject)ent).HasChildPrim(primLocalID);
+ if (prim != null)
+ {
+ prim.UpdateShape(shapeBlock);
+ break;
+ }
+ }
+ }
}
///
@@ -263,7 +275,7 @@ namespace OpenSim.Region.Environment.Scenes
///
public void PrimDescription(uint primLocalID, string description)
{
- Primitive prim = null;
+ Primitive prim = null;
foreach (EntityBase ent in Entities.Values)
{
if (ent is SceneObject)
@@ -271,7 +283,7 @@ namespace OpenSim.Region.Environment.Scenes
prim = ((SceneObject)ent).HasChildPrim(primLocalID);
if (prim != null)
{
- prim.Description = description;
+ prim.Description = description;
break;
}
}
@@ -341,12 +353,41 @@ namespace OpenSim.Region.Environment.Scenes
///
public void UpdatePrimPosition(uint localID, LLVector3 pos, IClientAPI remoteClient)
{
- foreach (Entity ent in Entities.Values)
+ Primitive prim = null;
+ foreach (EntityBase ent in Entities.Values)
{
- if (ent.LocalId == localID)
+ if (ent is SceneObject)
{
- ((PrimitiveOld)ent).UpdatePosition(pos);
- break;
+ prim = ((SceneObject)ent).HasChildPrim(localID);
+ if (prim != null)
+ {
+ prim.UpdatePosition(pos);
+ break;
+ }
+ }
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void UpdatePrimRotation(uint localID, LLVector3 pos, LLQuaternion rot, IClientAPI remoteClient)
+ {
+ Primitive prim = null;
+ foreach (EntityBase ent in Entities.Values)
+ {
+ if (ent is SceneObject)
+ {
+ prim = ((SceneObject)ent).HasChildPrim(localID);
+ if (prim != null)
+ {
+ prim.UpdateGroupMouseRotation( pos, rot);
+ break;
+ }
}
}
}
@@ -359,7 +400,19 @@ namespace OpenSim.Region.Environment.Scenes
///
public void UpdatePrimRotation(uint localID, LLQuaternion rot, IClientAPI remoteClient)
{
-
+ Primitive prim = null;
+ foreach (EntityBase ent in Entities.Values)
+ {
+ if (ent is SceneObject)
+ {
+ prim = ((SceneObject)ent).HasChildPrim(localID);
+ if (prim != null)
+ {
+ prim.UpdateRotation(rot);
+ break;
+ }
+ }
+ }
}
///
@@ -370,6 +423,19 @@ namespace OpenSim.Region.Environment.Scenes
///
public void UpdatePrimScale(uint localID, LLVector3 scale, IClientAPI remoteClient)
{
+ Primitive prim = null;
+ foreach (EntityBase ent in Entities.Values)
+ {
+ if (ent is SceneObject)
+ {
+ prim = ((SceneObject)ent).HasChildPrim(localID);
+ if (prim != null)
+ {
+ prim.ResizeGoup(scale);
+ break;
+ }
+ }
+ }
}
///
--
cgit v1.1
From beb3073bec9438a439e13eaec40a8320a9279adc Mon Sep 17 00:00:00 2001
From: MW
Date: Wed, 4 Jul 2007 19:07:27 +0000
Subject: A bit more work on Building tools/support. updated Axiom.MathLib.dll.
---
.../Environment/Scenes/Scene.PacketHandlers.cs | 60 ++++++++++++++++++++--
1 file changed, 57 insertions(+), 3 deletions(-)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 0927903..b3d9d15 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -107,7 +107,7 @@ namespace OpenSim.Region.Environment.Scenes
///
public void SimChat(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID)
{
- Console.WriteLine("Chat message");
+ // Console.WriteLine("Chat message");
ScenePresence avatar = null;
foreach (IClientAPI client in m_clientThreads.Values)
{
@@ -118,7 +118,7 @@ namespace OpenSim.Region.Environment.Scenes
avatar = this.Avatars[client.AgentId];
// int dis = Util.fast_distance2d((int)(client.ClientAvatar.Pos.X - simClient.ClientAvatar.Pos.X), (int)(client.ClientAvatar.Pos.Y - simClient.ClientAvatar.Pos.Y));
dis= (int)avatar.Pos.GetDistanceTo(fromPos);
- Console.WriteLine("found avatar at " +dis);
+ //Console.WriteLine("found avatar at " +dis);
}
@@ -314,13 +314,27 @@ namespace OpenSim.Region.Environment.Scenes
public void MoveObject(LLUUID objectID, LLVector3 offset, LLVector3 pos, IClientAPI remoteClient)
{
+ Primitive prim = null;
+ foreach (EntityBase ent in Entities.Values)
+ {
+ if (ent is SceneObject)
+ {
+ prim = ((SceneObject)ent).HasChildPrim(objectID);
+ if (prim != null)
+ {
+ ((SceneObject)ent).GrapMovement(offset, pos, remoteClient);
+ break;
+ }
+ }
+ }
+ /*
if (this.Entities.ContainsKey(objectID))
{
if (this.Entities[objectID] is SceneObject)
{
((SceneObject)this.Entities[objectID]).GrapMovement(offset, pos, remoteClient);
}
- }
+ }*/
}
///
@@ -368,6 +382,23 @@ namespace OpenSim.Region.Environment.Scenes
}
}
+ public void UpdatePrimSinglePosition(uint localID, LLVector3 pos, IClientAPI remoteClient)
+ {
+ Primitive prim = null;
+ foreach (EntityBase ent in Entities.Values)
+ {
+ if (ent is SceneObject)
+ {
+ prim = ((SceneObject)ent).HasChildPrim(localID);
+ if (prim != null)
+ {
+ prim.UpdateSinglePosition(pos);
+ break;
+ }
+ }
+ }
+ }
+
///
///
///
@@ -419,6 +450,29 @@ namespace OpenSim.Region.Environment.Scenes
///
///
///
+ ///
+ ///
+ public void UpdatePrimSingleRotation(uint localID, LLQuaternion rot, IClientAPI remoteClient)
+ {
+ Primitive prim = null;
+ foreach (EntityBase ent in Entities.Values)
+ {
+ if (ent is SceneObject)
+ {
+ prim = ((SceneObject)ent).HasChildPrim(localID);
+ if (prim != null)
+ {
+ prim.UpdateSingleRotation(rot);
+ break;
+ }
+ }
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
///
///
public void UpdatePrimScale(uint localID, LLVector3 scale, IClientAPI remoteClient)
--
cgit v1.1
From 70d8731aa2b50f4ef615e0623c02ac1da0067366 Mon Sep 17 00:00:00 2001
From: MW
Date: Thu, 5 Jul 2007 19:19:39 +0000
Subject: Fixed rotation editing of individual prims in a group. I think
positioning and rotations should now be correct (for both groups and on
editing individuals of a group). Resizing still needs work.
---
OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 1 +
1 file changed, 1 insertion(+)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index b3d9d15..bcef137 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -454,6 +454,7 @@ namespace OpenSim.Region.Environment.Scenes
///
public void UpdatePrimSingleRotation(uint localID, LLQuaternion rot, IClientAPI remoteClient)
{
+ //Console.WriteLine("trying to update single prim rotation");
Primitive prim = null;
foreach (EntityBase ent in Entities.Values)
{
--
cgit v1.1
From bdab40280b64e31b763a99f6c2011e7e91e7d0fa Mon Sep 17 00:00:00 2001
From: Adam Frisby
Date: Sun, 8 Jul 2007 03:32:27 +0000
Subject: * Added instant message support for the local region. Grid support
forthcoming.
---
.../Environment/Scenes/Scene.PacketHandlers.cs | 24 ++++++++++++++++++++++
1 file changed, 24 insertions(+)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index bcef137..7535049 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -100,6 +100,30 @@ namespace OpenSim.Region.Environment.Scenes
///
///
///
+ /// Inefficient. TODO: Fixme
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void InstantMessage(LLUUID fromAgentID, LLUUID toAgentID, uint timestamp, string fromAgentName, string message)
+ {
+ if (this.Avatars.ContainsKey(toAgentID))
+ {
+ // Local sim message
+ ScenePresence avatar = this.Avatars[toAgentID];
+
+
+ }
+ else
+ {
+ // Grid message
+ }
+ }
+
+ ///
+ ///
+ ///
///
///
///
--
cgit v1.1
From 855ebe739b27fda5ab45ab993cbc76668125a9b1 Mon Sep 17 00:00:00 2001
From: Adam Frisby
Date: Sun, 8 Jul 2007 03:36:17 +0000
Subject: * Missed a line - IM support in local simulator should now work.
---
OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 7535049..4cb0bec 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -113,7 +113,7 @@ namespace OpenSim.Region.Environment.Scenes
// Local sim message
ScenePresence avatar = this.Avatars[toAgentID];
-
+ avatar.ControllingClient.SendInstantMessage(message, toAgentID);
}
else
{
--
cgit v1.1
From 74410efb22046688f0b3abe84ef4fdda8b166da6 Mon Sep 17 00:00:00 2001
From: Adam Frisby
Date: Sun, 8 Jul 2007 03:45:06 +0000
Subject: * Bugfix with instant message handlers. Looking at implementing grid
IM server, ideally using a known scalable infrastructure.
---
OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 4cb0bec..e078348 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -110,10 +110,16 @@ namespace OpenSim.Region.Environment.Scenes
{
if (this.Avatars.ContainsKey(toAgentID))
{
- // Local sim message
- ScenePresence avatar = this.Avatars[toAgentID];
-
- avatar.ControllingClient.SendInstantMessage(message, toAgentID);
+ if (this.Avatars.ContainsKey(fromAgentID))
+ {
+ // Local sim message
+ ScenePresence avatar = this.Avatars[fromAgentID];
+ avatar.ControllingClient.SendInstantMessage(message, toAgentID);
+ }
+ else
+ {
+ // Message came from a user outside the sim, ignore?
+ }
}
else
{
--
cgit v1.1
From e8acf1cca92592fea38208dbfe4137555431434d Mon Sep 17 00:00:00 2001
From: Adam Frisby
Date: Mon, 9 Jul 2007 15:29:39 +0000
Subject: * Begun work on Primitive Duplication. Not hooked up yet, but
theoretically could be done so. In practice, more work needs to be done.
---
.../Environment/Scenes/Scene.PacketHandlers.cs | 33 ++++++++++++++++++++++
1 file changed, 33 insertions(+)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index e078348..35e0ea6 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -215,6 +215,39 @@ namespace OpenSim.Region.Environment.Scenes
///
///
///
+ ///
+ ///
+ ///
+ public void DuplicateObject(uint originalPrim, LLVector3 offset, uint flags)
+ {
+ SceneObject originPrim = null;
+ foreach (EntityBase ent in Entities.Values)
+ {
+ if (ent is SceneObject)
+ {
+ if (((SceneObject)ent).rootLocalID == originalPrim)
+ {
+ originPrim = (SceneObject)ent;
+ break;
+ }
+ }
+ }
+
+ if (originPrim != null)
+ {
+ //SceneObject copy = originPrim.Copy();
+
+ }
+ else
+ {
+ OpenSim.Framework.Console.MainLog.Instance.Warn("Attempted to duplicate nonexistant prim");
+ }
+
+ }
+
+ ///
+ ///
+ ///
///
///
public void LinkObjects(uint parentPrim, List childPrims)
--
cgit v1.1
From 93f3ef7e0d1c7d8b9c578ffdf4e45d9c0d2dde6c Mon Sep 17 00:00:00 2001
From: MW
Date: Mon, 9 Jul 2007 15:59:35 +0000
Subject: Done a little bit of renaming in primitive.cs and on a few events in
IClientAPI. Disabled CAPS asset uploading as it seems it now crashes the
server.
---
OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 35e0ea6..6dc9968 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -438,7 +438,7 @@ namespace OpenSim.Region.Environment.Scenes
prim = ((SceneObject)ent).HasChildPrim(localID);
if (prim != null)
{
- prim.UpdatePosition(pos);
+ prim.UpdateGroupPosition(pos);
break;
}
}
@@ -502,7 +502,7 @@ namespace OpenSim.Region.Environment.Scenes
prim = ((SceneObject)ent).HasChildPrim(localID);
if (prim != null)
{
- prim.UpdateRotation(rot);
+ prim.UpdateGroupRotation(rot);
break;
}
}
--
cgit v1.1
From 08a1fa3f96eee5e067475da453a3770ff15780f9 Mon Sep 17 00:00:00 2001
From: lbsa71
Date: Mon, 9 Jul 2007 21:03:36 +0000
Subject: * Introduced ClientManager for great justice.
---
.../Environment/Scenes/Scene.PacketHandlers.cs | 84 +++++++++++-----------
1 file changed, 43 insertions(+), 41 deletions(-)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 6dc9968..bb19996 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -139,48 +139,50 @@ namespace OpenSim.Region.Environment.Scenes
{
// Console.WriteLine("Chat message");
ScenePresence avatar = null;
- foreach (IClientAPI client in m_clientThreads.Values)
- {
- int dis = -1000;
- if (this.Avatars.ContainsKey(client.AgentId))
- {
-
- avatar = this.Avatars[client.AgentId];
- // int dis = Util.fast_distance2d((int)(client.ClientAvatar.Pos.X - simClient.ClientAvatar.Pos.X), (int)(client.ClientAvatar.Pos.Y - simClient.ClientAvatar.Pos.Y));
- dis= (int)avatar.Pos.GetDistanceTo(fromPos);
- //Console.WriteLine("found avatar at " +dis);
-
- }
-
- switch (type)
- {
- case 0: // Whisper
- if ((dis < 10) && (dis > -10))
- {
- //should change so the message is sent through the avatar rather than direct to the ClientView
- client.SendChatMessage(message, type, fromPos, fromName, fromAgentID);
- }
- break;
- case 1: // Say
- if ((dis < 30) && (dis > -30))
- {
- Console.WriteLine("sending chat");
- client.SendChatMessage(message, type, fromPos, fromName, fromAgentID);
- }
- break;
- case 2: // Shout
- if ((dis < 100) && (dis > -100))
- {
- client.SendChatMessage(message, type, fromPos, fromName, fromAgentID);
- }
- break;
- case 0xff: // Broadcast
- client.SendChatMessage(message, type, fromPos, fromName, fromAgentID);
- break;
- }
-
- }
+ m_clientThreads.ForEachClient(delegate(IClientAPI client)
+ {
+ int dis = -1000;
+ if (this.Avatars.ContainsKey(client.AgentId))
+ {
+ avatar = this.Avatars[client.AgentId];
+ // int dis = Util.fast_distance2d((int)(client.ClientAvatar.Pos.X - simClient.ClientAvatar.Pos.X), (int)(client.ClientAvatar.Pos.Y - simClient.ClientAvatar.Pos.Y));
+ dis = (int) avatar.Pos.GetDistanceTo(fromPos);
+ //Console.WriteLine("found avatar at " +dis);
+ }
+
+ switch (type)
+ {
+ case 0: // Whisper
+ if ((dis < 10) && (dis > -10))
+ {
+ //should change so the message is sent through the avatar rather than direct to the ClientView
+ client.SendChatMessage(message, type, fromPos, fromName,
+ fromAgentID);
+ }
+ break;
+ case 1: // Say
+ if ((dis < 30) && (dis > -30))
+ {
+ Console.WriteLine("sending chat");
+ client.SendChatMessage(message, type, fromPos, fromName,
+ fromAgentID);
+ }
+ break;
+ case 2: // Shout
+ if ((dis < 100) && (dis > -100))
+ {
+ client.SendChatMessage(message, type, fromPos, fromName,
+ fromAgentID);
+ }
+ break;
+
+ case 0xff: // Broadcast
+ client.SendChatMessage(message, type, fromPos, fromName,
+ fromAgentID);
+ break;
+ }
+ });
}
///
--
cgit v1.1
From 85dd493614cda12488eb7920713ddda07c921dbc Mon Sep 17 00:00:00 2001
From: lbsa71
Date: Mon, 9 Jul 2007 21:25:43 +0000
Subject: * some follow up renaming of members et c.
---
OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index bb19996..e64e147 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -140,7 +140,7 @@ namespace OpenSim.Region.Environment.Scenes
// Console.WriteLine("Chat message");
ScenePresence avatar = null;
- m_clientThreads.ForEachClient(delegate(IClientAPI client)
+ m_clientManager.ForEachClient(delegate(IClientAPI client)
{
int dis = -1000;
if (this.Avatars.ContainsKey(client.AgentId))
--
cgit v1.1
From 7f03246653a6f277505d2055528cbb8dd2e1f4c1 Mon Sep 17 00:00:00 2001
From: MW
Date: Tue, 10 Jul 2007 17:56:31 +0000
Subject: Gird mode in sugilite should now work in so far as you should be able
to login and move between regions in the same instance. Moving to regions in
a different instance of opensim still needs implementing (working on it now).
Also trying to look at the map in grid mode will crash the server.
---
OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index e64e147..69eaa75 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -164,7 +164,7 @@ namespace OpenSim.Region.Environment.Scenes
case 1: // Say
if ((dis < 30) && (dis > -30))
{
- Console.WriteLine("sending chat");
+ //Console.WriteLine("sending chat");
client.SendChatMessage(message, type, fromPos, fromName,
fromAgentID);
}
--
cgit v1.1