diff options
author | Teravus Ovares | 2008-05-25 11:22:05 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-05-25 11:22:05 +0000 |
commit | 042c9ed4d82e4389ec929f5438e82defad251235 (patch) | |
tree | 002d741e83cec0ee1a715603af7af5aacb5d079a /OpenSim/Region/Environment/Modules/World/Estate | |
parent | * phantom sculpties don't request the sculpt texture anymore. (diff) | |
download | opensim-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.cs | 39 |
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 | } |