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