aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules/World/Estate
diff options
context:
space:
mode:
authorTeravus Ovares2008-05-25 11:22:05 +0000
committerTeravus Ovares2008-05-25 11:22:05 +0000
commit042c9ed4d82e4389ec929f5438e82defad251235 (patch)
tree002d741e83cec0ee1a715603af7af5aacb5d079a /OpenSim/Region/Environment/Modules/World/Estate
parent* phantom sculpties don't request the sculpt texture anymore. (diff)
downloadopensim-SC-042c9ed4d82e4389ec929f5438e82defad251235.zip
opensim-SC-042c9ed4d82e4389ec929f5438e82defad251235.tar.gz
opensim-SC-042c9ed4d82e4389ec929f5438e82defad251235.tar.bz2
opensim-SC-042c9ed4d82e4389ec929f5438e82defad251235.tar.xz
* Adds Top Colliders when using ODE. Access it from the estate tools/debug tab.
Diffstat (limited to 'OpenSim/Region/Environment/Modules/World/Estate')
-rw-r--r--OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs39
1 files changed, 39 insertions, 0 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 }