aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs39
-rw-r--r--OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs6
2 files changed, 44 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs
index fcdec5d..d3aa4aa 100644
--- a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs
@@ -311,6 +311,44 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
311 { 311 {
312 remote_client.sendEstateCovenantInformation(); 312 remote_client.sendEstateCovenantInformation();
313 } 313 }
314 private void HandleLandStatRequest(int parcelID, uint reportType, uint requestFlags, string filter, IClientAPI remoteClient)
315 {
316 Dictionary<uint, float> colliders = m_scene.PhysicsScene.GetTopColliders();
317
318 List<LandStatReportItem> collidera = new List<LandStatReportItem>();
319 lock (colliders)
320 {
321 foreach (uint obj in colliders.Keys)
322 {
323 SceneObjectPart prt = m_scene.GetSceneObjectPart(obj);
324 if (prt != null)
325 {
326 if (prt.ParentGroup != null)
327 {
328 SceneObjectGroup sog = prt.ParentGroup;
329 if (sog != null)
330 {
331 LandStatReportItem lsri = new LandStatReportItem();
332 lsri.LocationX = sog.AbsolutePosition.X;
333 lsri.LocationY = sog.AbsolutePosition.Y;
334 lsri.LocationZ = sog.AbsolutePosition.Z;
335 lsri.Score = colliders[obj];
336 lsri.TaskID = sog.UUID;
337 lsri.TaskLocalID = sog.LocalId;
338 lsri.TaskName = sog.GetPartName(obj);
339 lsri.OwnerName = m_scene.CommsManager.UUIDNameRequestString(sog.OwnerID);
340
341
342 collidera.Add(lsri);
343 }
344 }
345 }
346
347 }
348 }
349 remoteClient.SendLandStatReply(reportType, requestFlags, (uint)collidera.Count,collidera.ToArray());
350
351 }
314 352
315 #endregion 353 #endregion
316 354
@@ -435,6 +473,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
435 473
436 client.OnRegionInfoRequest += HandleRegionInfoRequest; 474 client.OnRegionInfoRequest += HandleRegionInfoRequest;
437 client.OnEstateCovenantRequest += HandleEstateCovenantRequest; 475 client.OnEstateCovenantRequest += HandleEstateCovenantRequest;
476 client.OnLandStatRequest += HandleLandStatRequest;
438 sendRegionHandshake(client); 477 sendRegionHandshake(client);
439 } 478 }
440 } 479 }
diff --git a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs
index cd5ca61..09069a9 100644
--- a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs
+++ b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs
@@ -271,7 +271,7 @@ namespace OpenSim.Region.Environment.Modules.World.NPC
271 public event AgentSit OnUndo; 271 public event AgentSit OnUndo;
272 272
273 public event ForceReleaseControls OnForceReleaseControls; 273 public event ForceReleaseControls OnForceReleaseControls;
274 274 public event GodLandStatRequest OnLandStatRequest;
275 public event RequestObjectPropertiesFamily OnObjectGroupRequest; 275 public event RequestObjectPropertiesFamily OnObjectGroupRequest;
276 276
277 public event DetailedEstateDataRequest OnDetailedEstateDataRequest; 277 public event DetailedEstateDataRequest OnDetailedEstateDataRequest;
@@ -764,6 +764,10 @@ namespace OpenSim.Region.Environment.Modules.World.NPC
764 public void SendGroupNameReply(LLUUID groupLLUID, string GroupName) 764 public void SendGroupNameReply(LLUUID groupLLUID, string GroupName)
765 { 765 {
766 } 766 }
767
768 public void SendLandStatReply(uint reportType, uint requestFlags, uint resultCount, LandStatReportItem[] lsrpia)
769 {
770 }
767 #endregion 771 #endregion
768 } 772 }
769} 773}