Added new ForEachRootScenePresence to Scene since almost every delegate passed to ForEachScenePresence checks for !IsChildAgent first. It consolidates child and root handling for coming refactors.

This commit is contained in:
Dan Lake
2011-10-27 00:42:21 -07:00
parent 40bee97015
commit b98613091c
14 changed files with 78 additions and 87 deletions

View File

@@ -3723,9 +3723,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.AddScriptLPS(1);
List<UUID> keytable = new List<UUID>();
// parse for sitting avatare-uuids
World.ForEachScenePresence(delegate(ScenePresence presence)
World.ForEachRootScenePresence(delegate(ScenePresence presence)
{
if (!presence.IsChildAgent && presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID))
if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID))
keytable.Add(presence.UUID);
});
@@ -3785,9 +3785,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
m_host.AddScriptLPS(1);
// parse for sitting avatare-names
List<String> nametable = new List<String>();
World.ForEachScenePresence(delegate(ScenePresence presence)
World.ForEachRootScenePresence(delegate(ScenePresence presence)
{
if (!presence.IsChildAgent && presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID))
if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID))
nametable.Add(presence.ControllingClient.Name);
});
@@ -7568,9 +7568,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{
m_host.AddScriptLPS(1);
int avatarCount = 0;
World.ForEachScenePresence(delegate(ScenePresence presence)
World.ForEachRootScenePresence(delegate(ScenePresence presence)
{
if (!presence.IsChildAgent && presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID))
if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID))
avatarCount++;
});
@@ -9336,9 +9336,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
landObject.SetMediaUrl(url);
// now send to all (non-child) agents in the parcel
World.ForEachScenePresence(delegate(ScenePresence sp)
World.ForEachRootScenePresence(delegate(ScenePresence sp)
{
if (!sp.IsChildAgent && (sp.currentParcelUUID == landData.GlobalID))
if (sp.currentParcelUUID == landData.GlobalID)
{
sp.ControllingClient.SendParcelMediaUpdate(landData.MediaURL,
landData.MediaID,
@@ -9369,9 +9369,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
if (presence == null)
{
// send to all (non-child) agents in the parcel
World.ForEachScenePresence(delegate(ScenePresence sp)
World.ForEachRootScenePresence(delegate(ScenePresence sp)
{
if (!sp.IsChildAgent && (sp.currentParcelUUID == landData.GlobalID))
if (sp.currentParcelUUID == landData.GlobalID)
{
sp.ControllingClient.SendParcelMediaCommand(0x4, // TODO what is this?
(ParcelMediaCommandEnum)commandToSend,