From 7f10179129d4b5ac4ae5c05ff8598f569b8e6412 Mon Sep 17 00:00:00 2001
From: mingchen
Date: Mon, 16 Jul 2007 01:25:16 +0000
Subject: *Fixed bug that incorrectly tabulated 'others' prims on a parcel
*Added support for selected prims (does not yet support prims being sat on)
*Added support for listing avatars with prims on parcel with their prim count
---
.../Environment/Scenes/Scene.PacketHandlers.cs | 23 ++++++++++++++++++++++
OpenSim/Region/Environment/Scenes/Scene.cs | 3 +++
OpenSim/Region/Environment/Scenes/SceneObject.cs | 2 ++
3 files changed, 28 insertions(+)
(limited to 'OpenSim/Region/Environment/Scenes')
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 6431bc7..347625a 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -341,6 +341,29 @@ namespace OpenSim.Region.Environment.Scenes
if (((SceneObject)ent).rootLocalID == primLocalID)
{
((SceneObject)ent).GetProperites(remoteClient);
+ ((SceneObject)ent).isSelected = true;
+ this.ParcelManager.setPrimsTainted();
+ break;
+ }
+ }
+ }
+ }
+
+ ///
+ ///
+ ///
+ ///
+ ///
+ public void DeselectPrim(uint primLocalID, IClientAPI remoteClient)
+ {
+ foreach (EntityBase ent in Entities.Values)
+ {
+ if (ent is SceneObject)
+ {
+ if (((SceneObject)ent).rootLocalID == primLocalID)
+ {
+ ((SceneObject)ent).isSelected = false;
+ this.ParcelManager.setPrimsTainted();
break;
}
}
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 5e2e494..ba57115 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -537,6 +537,7 @@ namespace OpenSim.Region.Environment.Scenes
client.OnUpdatePrimTexture += this.UpdatePrimTexture;
client.OnTeleportLocationRequest += this.RequestTeleportLocation;
client.OnObjectSelect += this.SelectPrim;
+ client.OnObjectDeselect += this.DeselectPrim;
client.OnGrapUpdate += this.MoveObject;
client.OnNameFromUUIDRequest += this.commsManager.HandleUUIDNameRequest;
client.OnObjectDescription += this.PrimDescription;
@@ -549,6 +550,8 @@ namespace OpenSim.Region.Environment.Scenes
client.OnParcelJoinRequest += new ParcelJoinRequest(m_parcelManager.handleParcelJoinRequest);
client.OnParcelPropertiesUpdateRequest += new ParcelPropertiesUpdateRequest(m_parcelManager.handleParcelPropertiesUpdateRequest);
client.OnParcelSelectObjects += new ParcelSelectObjects(m_parcelManager.handleParcelSelectObjectsRequest);
+ client.OnParcelObjectOwnerRequest += new ParcelObjectOwnerRequest(m_parcelManager.handleParcelObjectOwnersRequest);
+
client.OnEstateOwnerMessage += new EstateOwnerMessageRequest(m_estateManager.handleEstateOwnerMessage);
}
diff --git a/OpenSim/Region/Environment/Scenes/SceneObject.cs b/OpenSim/Region/Environment/Scenes/SceneObject.cs
index 8de7cdb..e615599 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObject.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObject.cs
@@ -49,6 +49,8 @@ namespace OpenSim.Region.Environment.Scenes
private EventManager m_eventManager;
+ public bool isSelected = false;
+
public LLUUID rootUUID
{
get
--
cgit v1.1