From 94dc7d07ebc22ce0e0d9b77e91538ddc90799bee Mon Sep 17 00:00:00 2001 From: Dan Lake Date: Thu, 3 Nov 2011 17:06:08 -0700 Subject: Renamed ForEachRootScenePresence to ForEachAvatar. Cleaned up calls to the 3 iteration functions so more of them are using the correct iteration for the action they are performing. The 3 iterators that seem to fit all actions within OpenSim at this time are: ForEachAvatar: Perform an action on all avatars (root presences) ForEachClient: Perform an action on all clients (root or child clients) ForEachRootClient: Perform an action on all clients that have an avatar There are still a dozen places or so calling the old ForEachScenePresence that will take a little more refactoring to eliminate. --- .../Region/CoreModules/Avatar/Chat/ChatModule.cs | 14 ++-- .../CoreModules/Avatar/Dialog/DialogModule.cs | 8 +-- .../Region/CoreModules/Avatar/Gods/GodsModule.cs | 10 ++- .../CoreModules/LightShare/LightShareModule.cs | 49 +++++--------- .../World/Estate/EstateManagementModule.cs | 10 +-- .../Region/CoreModules/World/Land/LandObject.cs | 2 +- .../Region/CoreModules/World/Sound/SoundModule.cs | 4 +- OpenSim/Region/CoreModules/World/Sun/SunModule.cs | 4 +- .../Region/CoreModules/World/Wind/WindModule.cs | 4 +- .../CoreModules/World/WorldMap/WorldMapModule.cs | 4 +- OpenSim/Region/Framework/Scenes/Scene.cs | 76 ++++++++++------------ OpenSim/Region/Framework/Scenes/SceneGraph.cs | 2 +- OpenSim/Region/Framework/Scenes/SceneManager.cs | 12 ++-- .../Region/Framework/Scenes/SceneObjectGroup.cs | 2 +- OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 20 +++--- OpenSim/Region/Framework/Scenes/ScenePresence.cs | 6 +- .../Avatar/Appearance/AppearanceInfoModule.cs | 13 ++-- .../Avatar/Concierge/ConciergeModule.cs | 2 +- .../RegionCombinerModule/RegionCombinerModule.cs | 2 +- .../Shared/Api/Implementation/LSL_Api.cs | 19 +++--- .../Shared/Api/Implementation/OSSL_Api.cs | 6 +- .../Api/Implementation/Plugins/SensorRepeat.cs | 4 +- 22 files changed, 120 insertions(+), 153 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs index f5cc4c3..783a03b 100644 --- a/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs @@ -228,7 +228,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat foreach (Scene s in m_scenes) { - s.ForEachScenePresence( + // This should use ForEachClient, but clients don't have a position. + // If camera is moved into client, then camera position can be used + s.ForEachAvatar( delegate(ScenePresence presence) { if (TrySendChatMessage(presence, fromPos, regionPos, fromID, fromName, c.Type, message, sourceType)) @@ -279,11 +281,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat HashSet receiverIDs = new HashSet(); - ((Scene)c.Scene).ForEachRootScenePresence( - delegate(ScenePresence presence) + ((Scene)c.Scene).ForEachRootClient( + delegate(IClientAPI client) { - IClientAPI client = presence.ControllingClient; - // don't forward SayOwner chat from objects to // non-owner agents if ((c.Type == ChatTypeEnum.Owner) && @@ -292,8 +292,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat return; client.SendChatMessage(c.Message, (byte)cType, CenterOfRegion, fromName, fromID, - (byte)sourceType, (byte)ChatAudibleLevel.Fully); - receiverIDs.Add(presence.UUID); + (byte)sourceType, (byte)ChatAudibleLevel.Fully); + receiverIDs.Add(client.AgentId); }); (c.Scene as Scene).EventManager.TriggerOnChatToClients( diff --git a/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs b/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs index 3ce446b..ffe7718 100644 --- a/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs @@ -98,9 +98,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog public void SendGeneralAlert(string message) { - m_scene.ForEachRootScenePresence(delegate(ScenePresence presence) + m_scene.ForEachRootClient(delegate(IClientAPI client) { - presence.ControllingClient.SendAlertMessage(message); + client.SendAlertMessage(message); }); } @@ -162,9 +162,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog public void SendNotificationToUsersInRegion( UUID fromAvatarID, string fromAvatarName, string message) { - m_scene.ForEachRootScenePresence(delegate(ScenePresence presence) + m_scene.ForEachRootClient(delegate(IClientAPI client) { - presence.ControllingClient.SendBlueBoxMessage(fromAvatarID, fromAvatarName, message); + client.SendBlueBoxMessage(fromAvatarID, fromAvatarName, message); }); } diff --git a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs index 562c3b1..2e3312f 100644 --- a/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs @@ -140,14 +140,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods // This is a bit crude. It seems the client will be null before it actually stops the thread // The thread will kill itself eventually :/ // Is there another way to make sure *all* clients get this 'inter region' message? - m_scene.ForEachRootScenePresence( - delegate(ScenePresence p) + m_scene.ForEachRootClient( + delegate(IClientAPI client) { - if (p.UUID != godID) + if (client.AgentId != godID) { - // Possibly this should really be p.Close() though that method doesn't send a close - // to the client - p.ControllingClient.Close(); + client.Close(); } } ); diff --git a/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs b/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs index 2de8d7a..cabbd31 100644 --- a/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs +++ b/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs @@ -145,57 +145,38 @@ namespace OpenSim.Region.CoreModules.World.LightShare param.Add(mBlock); return param; } - public void SendProfileToClient(ScenePresence presence) + + public void SendProfileToClient(IClientAPI client) { - IClientAPI client = presence.ControllingClient; - if (m_enableWindlight && m_scene.RegionInfo.WindlightSettings.valid) - { - if (presence.IsChildAgent == false) - { - List param = compileWindlightSettings(m_scene.RegionInfo.WindlightSettings); - client.SendGenericMessage("Windlight", param); - } - } - else - { - //We probably don't want to spam chat with this.. probably - //m_log.Debug("[WINDLIGHT]: Module disabled"); - } + SendProfileToClient(client, m_scene.RegionInfo.WindlightSettings); } - public void SendProfileToClient(ScenePresence presence, RegionLightShareData wl) + + public void SendProfileToClient(IClientAPI client, RegionLightShareData wl) { - IClientAPI client = presence.ControllingClient; if (m_enableWindlight && m_scene.RegionInfo.WindlightSettings.valid) { - if (presence.IsChildAgent == false) - { - List param = compileWindlightSettings(wl); - client.SendGenericMessage("Windlight", param); - } - } - else - { - //We probably don't want to spam chat with this.. probably - //m_log.Debug("[WINDLIGHT]: Module disabled"); + List param = compileWindlightSettings(wl); + client.SendGenericMessage("Windlight", param); } } + private void EventManager_OnMakeRootAgent(ScenePresence presence) { m_log.Debug("[WINDLIGHT]: Sending windlight scene to new client"); - SendProfileToClient(presence); + SendProfileToClient(presence.ControllingClient); } + private void EventManager_OnSendNewWindlightProfileTargeted(RegionLightShareData wl, UUID pUUID) { - ScenePresence Sc; - if (m_scene.TryGetScenePresence(pUUID,out Sc)) - { - SendProfileToClient(Sc,wl); - } + IClientAPI client; + m_scene.TryGetClient(pUUID, out client); + SendProfileToClient(client, wl); } + private void EventManager_OnSaveNewWindlightProfile() { if (m_scene.RegionInfo.WindlightSettings.valid) - m_scene.ForEachScenePresence(SendProfileToClient); + m_scene.ForEachRootClient(SendProfileToClient); } public void PostInitialise() diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs index 5427b68..58d9455 100644 --- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs @@ -658,14 +658,14 @@ namespace OpenSim.Region.CoreModules.World.Estate if (!Scene.Permissions.CanIssueEstateCommand(remover_client.AgentId, false)) return; - Scene.ForEachRootScenePresence(delegate(ScenePresence sp) + Scene.ForEachRootClient(delegate(IClientAPI client) { - if (sp.UUID != senderID) + if (client.AgentId != senderID) { // make sure they are still there, we could be working down a long list // Also make sure they are actually in the region ScenePresence p; - if(Scene.TryGetScenePresence(sp.UUID, out p)) + if(Scene.TryGetScenePresence(client.AgentId, out p)) Scene.TeleportClientHome(p.UUID, p.ControllingClient); } }); @@ -927,9 +927,9 @@ namespace OpenSim.Region.CoreModules.World.Estate public void sendRegionInfoPacketToAll() { - Scene.ForEachRootScenePresence(delegate(ScenePresence sp) + Scene.ForEachRootClient(delegate(IClientAPI client) { - HandleRegionInfoRequest(sp.ControllingClient); + HandleRegionInfoRequest(client); }); } diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs index 0da0de3..ff3b107 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs @@ -476,7 +476,7 @@ namespace OpenSim.Region.CoreModules.World.Land public void SendLandUpdateToAvatarsOverMe(bool snap_selection) { - m_scene.ForEachRootScenePresence(delegate(ScenePresence avatar) + m_scene.ForEachAvatar(delegate(ScenePresence avatar) { ILandObject over = null; try diff --git a/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs b/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs index 93b1005..fcbc159 100644 --- a/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs +++ b/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs @@ -70,7 +70,7 @@ namespace OpenSim.Region.CoreModules.World.Sound SceneObjectGroup grp = part.ParentGroup; - m_scene.ForEachRootScenePresence(delegate(ScenePresence sp) + m_scene.ForEachAvatar(delegate(ScenePresence sp) { double dis = Util.GetDistanceTo(sp.AbsolutePosition, position); if (dis > 100.0) // Max audio distance @@ -119,7 +119,7 @@ namespace OpenSim.Region.CoreModules.World.Sound } } - m_scene.ForEachRootScenePresence(delegate(ScenePresence sp) + m_scene.ForEachAvatar(delegate(ScenePresence sp) { double dis = Util.GetDistanceTo(sp.AbsolutePosition, position); if (dis > 100.0) // Max audio distance diff --git a/OpenSim/Region/CoreModules/World/Sun/SunModule.cs b/OpenSim/Region/CoreModules/World/Sun/SunModule.cs index d2c1289..a838e1e 100644 --- a/OpenSim/Region/CoreModules/World/Sun/SunModule.cs +++ b/OpenSim/Region/CoreModules/World/Sun/SunModule.cs @@ -488,9 +488,9 @@ namespace OpenSim.Region.CoreModules private void SunUpdateToAllClients() { - m_scene.ForEachRootScenePresence(delegate(ScenePresence sp) + m_scene.ForEachRootClient(delegate(IClientAPI client) { - SunToClient(sp.ControllingClient); + SunToClient(client); }); } diff --git a/OpenSim/Region/CoreModules/World/Wind/WindModule.cs b/OpenSim/Region/CoreModules/World/Wind/WindModule.cs index bea5db1..a488725 100644 --- a/OpenSim/Region/CoreModules/World/Wind/WindModule.cs +++ b/OpenSim/Region/CoreModules/World/Wind/WindModule.cs @@ -435,9 +435,9 @@ namespace OpenSim.Region.CoreModules m_frameLastUpdateClientArray = m_frame; } - m_scene.ForEachRootScenePresence(delegate(ScenePresence sp) + m_scene.ForEachRootClient(delegate(IClientAPI client) { - sp.ControllingClient.SendWindData(windSpeeds); + client.SendWindData(windSpeeds); }); } } diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs index 00d7d55..cd4d7e3 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs @@ -401,7 +401,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap } else { - m_scene.ForEachRootScenePresence(delegate(ScenePresence sp) + m_scene.ForEachAvatar(delegate(ScenePresence sp) { // Don't send a green dot for yourself if (sp.UUID != remoteClient.AgentId) @@ -1180,7 +1180,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap else { OSDArray responsearr = new OSDArray(m_scene.GetRootAgentCount()); - m_scene.ForEachRootScenePresence(delegate(ScenePresence sp) + m_scene.ForEachAvatar(delegate(ScenePresence sp) { OSDMap responsemapdata = new OSDMap(); responsemapdata["X"] = OSD.FromInteger((int)(xstart + sp.AbsolutePosition.X)); diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index dff43fd..b996e86 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -872,7 +872,7 @@ namespace OpenSim.Region.Framework.Scenes try { - ForEachRootScenePresence(delegate(ScenePresence agent) + ForEachAvatar(delegate(ScenePresence agent) { //agent.ControllingClient.new //this.CommsManager.InterRegion.InformRegionOfChildAgent(otherRegion.RegionHandle, agent.ControllingClient.RequestClientInfo()); @@ -1017,7 +1017,7 @@ namespace OpenSim.Region.Framework.Scenes GridRegion r = new GridRegion(region); try { - ForEachRootScenePresence(delegate(ScenePresence agent) + ForEachAvatar(delegate(ScenePresence agent) { if (m_teleportModule != null) m_teleportModule.EnableChildAgent(agent, r); @@ -1423,12 +1423,10 @@ namespace OpenSim.Region.Framework.Scenes /// Stats on the Simulator's performance private void SendSimStatsPackets(SimStats stats) { - ForEachRootScenePresence( - delegate(ScenePresence agent) - { - agent.ControllingClient.SendSimStats(stats); - } - ); + ForEachRootClient(delegate(IClientAPI client) + { + client.SendSimStats(stats); + }); } /// @@ -4214,35 +4212,32 @@ namespace OpenSim.Region.Framework.Scenes return m_sceneGraph.GetScenePresence(localID); } + /// + /// Returns true if scene presence is a child (no avatar in this scene) + /// + /// + /// public override bool PresenceChildStatus(UUID avatarID) { - ScenePresence cp = GetScenePresence(avatarID); - - // FIXME: This is really crap - some logout code is relying on a NullReferenceException to halt its processing - // This needs to be fixed properly by cleaning up the logout code. - //if (cp != null) - // return cp.IsChildAgent; - - //return false; - - return cp.IsChildAgent; + ScenePresence sp; + return TryGetScenePresence(avatarID, out sp) && sp.IsChildAgent; } /// - /// Performs action on all ROOT (not child) scene presences. - /// This is just a shortcut function since frequently actions only appy to root SPs + /// Performs action on all avatars in the scene (root scene presences) + /// Avatars may be an NPC or a 'real' client. /// /// - public void ForEachRootScenePresence(Action action) + public void ForEachAvatar(Action action) { if(m_sceneGraph != null) { - m_sceneGraph.ForEachRootScenePresence(action); + m_sceneGraph.ForEachAvatar(action); } } /// - /// Performs action on all scene presences. + /// Performs action on all scene presences (root and child) /// /// public void ForEachScenePresence(Action action) @@ -4254,25 +4249,6 @@ namespace OpenSim.Region.Framework.Scenes } /// - /// Perform the given action for each object - /// - /// - // public void ForEachObject(Action action) - // { - // List presenceList; - // - // lock (m_sceneObjects) - // { - // presenceList = new List(m_sceneObjects.Values); - // } - // - // foreach (SceneObjectGroup presence in presenceList) - // { - // action(presence); - // } - // } - - /// /// Get a group via its UUID /// /// @@ -4344,6 +4320,22 @@ namespace OpenSim.Region.Framework.Scenes return m_sceneGraph.TryGetAvatarByName(avatarName, out avatar); } + /// + /// Perform an action on all clients with an avatar in this scene (root only) + /// + /// + public void ForEachRootClient(Action action) + { + ForEachAvatar(delegate(ScenePresence presence) + { + action(presence.ControllingClient); + }); + } + + /// + /// Perform an action on all clients connected to the region (root and child) + /// + /// public void ForEachClient(Action action) { m_clientManager.ForEachSync(action); diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 82ded28..a137bca 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs @@ -1190,7 +1190,7 @@ namespace OpenSim.Region.Framework.Scenes /// This is just a shortcut function since frequently actions only appy to root SPs /// /// - public void ForEachRootScenePresence(Action action) + public void ForEachAvatar(Action action) { ForEachScenePresence(delegate(ScenePresence sp) { diff --git a/OpenSim/Region/Framework/Scenes/SceneManager.cs b/OpenSim/Region/Framework/Scenes/SceneManager.cs index 3bfd866..9b72bee 100644 --- a/OpenSim/Region/Framework/Scenes/SceneManager.cs +++ b/OpenSim/Region/Framework/Scenes/SceneManager.cs @@ -458,16 +458,16 @@ namespace OpenSim.Region.Framework.Scenes ForEachCurrentScene( delegate(Scene scene) { - scene.ForEachRootScenePresence(delegate(ScenePresence scenePresence) + scene.ForEachRootClient(delegate(IClientAPI client) { - if (name == null || scenePresence.Name == name) + if (name == null || client.Name == name) { m_log.DebugFormat("Packet debug for {0} {1} set to {2}", - scenePresence.Firstname, - scenePresence.Lastname, + client.FirstName, + client.LastName, newDebug); - scenePresence.ControllingClient.DebugPacketLevel = newDebug; + client.DebugPacketLevel = newDebug; } }); } @@ -481,7 +481,7 @@ namespace OpenSim.Region.Framework.Scenes ForEachCurrentScene( delegate(Scene scene) { - scene.ForEachRootScenePresence(delegate(ScenePresence scenePresence) + scene.ForEachAvatar(delegate(ScenePresence scenePresence) { avatars.Add(scenePresence); }); diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index a0a7344..3c80eb5 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -1150,7 +1150,7 @@ namespace OpenSim.Region.Framework.Scenes { SceneObjectPart part = parts[i]; - Scene.ForEachScenePresence(delegate(ScenePresence avatar) + Scene.ForEachAvatar(delegate(ScenePresence avatar) { if (avatar.ParentID == LocalId) avatar.StandUp(); diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 44f822c..1a709e9 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -992,7 +992,7 @@ namespace OpenSim.Region.Framework.Scenes public PrimitiveBaseShape Shape { get { return m_shape; } - set { m_shape = value; } + set { m_shape = value;} } /// @@ -1336,12 +1336,12 @@ namespace OpenSim.Region.Framework.Scenes /// private void SendRootPartPropertiesToClient(UUID AgentID) { - m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) + m_parentGroup.Scene.ForEachClient(delegate(IClientAPI client) { // Ugly reference :( - if (avatar.UUID == AgentID) + if (client.AgentId == AgentID) { - m_parentGroup.SendPropertiesToClient(avatar.ControllingClient); + m_parentGroup.SendPropertiesToClient(client); } }); } @@ -1461,9 +1461,9 @@ namespace OpenSim.Region.Framework.Scenes if (volume < 0) volume = 0; - m_parentGroup.Scene.ForEachRootScenePresence(delegate(ScenePresence sp) + m_parentGroup.Scene.ForEachRootClient(delegate(IClientAPI client) { - sp.ControllingClient.SendAttachedSoundGainChange(UUID, (float)volume); + client.SendAttachedSoundGainChange(UUID, (float)volume); }); } @@ -2216,7 +2216,7 @@ namespace OpenSim.Region.Framework.Scenes } else { - m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence av) + m_parentGroup.Scene.ForEachAvatar(delegate(ScenePresence av) { if (av.LocalId == localId) { @@ -2347,7 +2347,7 @@ namespace OpenSim.Region.Framework.Scenes } else { - m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence av) + m_parentGroup.Scene.ForEachAvatar(delegate(ScenePresence av) { if (av.LocalId == localId) { @@ -2470,7 +2470,7 @@ namespace OpenSim.Region.Framework.Scenes } else { - m_parentGroup.Scene.ForEachScenePresence(delegate(ScenePresence av) + m_parentGroup.Scene.ForEachAvatar(delegate(ScenePresence av) { if (av.LocalId == localId) { @@ -2696,7 +2696,7 @@ namespace OpenSim.Region.Framework.Scenes } } - m_parentGroup.Scene.ForEachRootScenePresence(delegate(ScenePresence sp) + m_parentGroup.Scene.ForEachAvatar(delegate(ScenePresence sp) { if (!(Util.GetDistanceTo(sp.AbsolutePosition, AbsolutePosition) >= 100)) sp.ControllingClient.SendPreLoadSound(objectID, objectID, soundID); diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 1d77b06..5fc597c 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -956,7 +956,7 @@ namespace OpenSim.Region.Framework.Scenes } // send the animations of the other presences to me - m_scene.ForEachScenePresence(delegate(ScenePresence presence) + m_scene.ForEachAvatar(delegate(ScenePresence presence) { if (presence != this) presence.Animator.SendAnimPackToClient(ControllingClient); @@ -2596,7 +2596,7 @@ namespace OpenSim.Region.Framework.Scenes public void SendOtherAgentsAvatarDataToMe() { int count = 0; - m_scene.ForEachRootScenePresence(delegate(ScenePresence scenePresence) + m_scene.ForEachAvatar(delegate(ScenePresence scenePresence) { // only send information about other root agents if (scenePresence.UUID == UUID) @@ -2660,7 +2660,7 @@ namespace OpenSim.Region.Framework.Scenes // m_log.DebugFormat("[SCENE PRESENCE] SendOtherAgentsAppearanceToMe: {0} {1}", Name, UUID); int count = 0; - m_scene.ForEachRootScenePresence(delegate(ScenePresence scenePresence) + m_scene.ForEachAvatar(delegate(ScenePresence scenePresence) { // only send information about other root agents if (scenePresence.UUID == UUID) diff --git a/OpenSim/Region/OptionalModules/Avatar/Appearance/AppearanceInfoModule.cs b/OpenSim/Region/OptionalModules/Avatar/Appearance/AppearanceInfoModule.cs index f8120aa..5a3a62f 100644 --- a/OpenSim/Region/OptionalModules/Avatar/Appearance/AppearanceInfoModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/Appearance/AppearanceInfoModule.cs @@ -112,7 +112,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Appearance { foreach (Scene scene in m_scenes.Values) { - scene.ForEachRootScenePresence(sp => scene.AvatarFactory.SendAppearance(sp.UUID)); + scene.ForEachAvatar(sp => scene.AvatarFactory.SendAppearance(sp.UUID)); } } } @@ -123,15 +123,12 @@ namespace OpenSim.Region.OptionalModules.Avatar.Appearance { foreach (Scene scene in m_scenes.Values) { - scene.ForEachScenePresence( + scene.ForEachAvatar( delegate(ScenePresence sp) { - if (sp.ControllingClient is LLClientView && !((LLClientView)sp.ControllingClient).ChildAgentStatus()) - { - bool bakedTextureValid = scene.AvatarFactory.ValidateBakedTextureCache(sp); - MainConsole.Instance.OutputFormat( - "{0} baked appearance texture is {1}", sp.Name, bakedTextureValid ? "OK" : "corrupt"); - } + bool bakedTextureValid = scene.AvatarFactory.ValidateBakedTextureCache(sp); + MainConsole.Instance.OutputFormat( + "{0} baked appearance texture is {1}", sp.Name, bakedTextureValid ? "OK" : "corrupt"); }); } } diff --git a/OpenSim/Region/OptionalModules/Avatar/Concierge/ConciergeModule.cs b/OpenSim/Region/OptionalModules/Avatar/Concierge/ConciergeModule.cs index e22618d..bea5807 100644 --- a/OpenSim/Region/OptionalModules/Avatar/Concierge/ConciergeModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/Concierge/ConciergeModule.cs @@ -373,7 +373,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Concierge scene.GetRootAgentCount(), scene.RegionInfo.RegionName, scene.RegionInfo.RegionID, DateTime.UtcNow.ToString("s"))); - scene.ForEachRootScenePresence(delegate(ScenePresence sp) + scene.ForEachAvatar(delegate(ScenePresence sp) { list.Append(String.Format(" \n", sp.Name, sp.UUID)); list.Append(""); diff --git a/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs b/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs index 92cbbc6..33abae2 100644 --- a/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs +++ b/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs @@ -711,7 +711,7 @@ namespace OpenSim.Region.RegionCombinerModule List CoarseLocations = new List(); List AvatarUUIDs = new List(); - connectiondata.RegionScene.ForEachRootScenePresence(delegate(ScenePresence sp) + connectiondata.RegionScene.ForEachAvatar(delegate(ScenePresence sp) { if (sp.UUID != presence.UUID) { diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 0750579..d2ddcef 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs @@ -1644,7 +1644,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api if (flexi) { part.Shape.FlexiEntry = true; // this setting flexi true isn't working, but the below parameters do - // work once the prim is already flexi + // work once the prim is already flexi part.Shape.FlexiSoftness = softness; part.Shape.FlexiGravity = gravity; part.Shape.FlexiDrag = friction; @@ -1654,10 +1654,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api part.Shape.FlexiForceY = (float)Force.y; part.Shape.FlexiForceZ = (float)Force.z; part.Shape.PathCurve = 0x80; + part.ParentGroup.HasGroupChanged = true; + part.ScheduleFullUpdate(); } - - part.ParentGroup.HasGroupChanged = true; - part.ScheduleFullUpdate(); } /// @@ -3741,7 +3740,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api m_host.AddScriptLPS(1); List keytable = new List(); // parse for sitting avatare-uuids - World.ForEachRootScenePresence(delegate(ScenePresence presence) + World.ForEachAvatar(delegate(ScenePresence presence) { if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID)) keytable.Add(presence.UUID); @@ -3803,7 +3802,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api m_host.AddScriptLPS(1); // parse for sitting avatare-names List nametable = new List(); - World.ForEachRootScenePresence(delegate(ScenePresence presence) + World.ForEachAvatar(delegate(ScenePresence presence) { if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID)) nametable.Add(presence.ControllingClient.Name); @@ -7612,7 +7611,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api { m_host.AddScriptLPS(1); int avatarCount = 0; - World.ForEachRootScenePresence(delegate(ScenePresence presence) + World.ForEachAvatar(delegate(ScenePresence presence) { if (presence.ParentID != 0 && m_host.ParentGroup.HasChildPrim(presence.ParentID)) avatarCount++; @@ -9380,7 +9379,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api landObject.SetMediaUrl(url); // now send to all (non-child) agents in the parcel - World.ForEachRootScenePresence(delegate(ScenePresence sp) + World.ForEachAvatar(delegate(ScenePresence sp) { if (sp.currentParcelUUID == landData.GlobalID) { @@ -9413,7 +9412,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api if (presence == null) { // send to all (non-child) agents in the parcel - World.ForEachRootScenePresence(delegate(ScenePresence sp) + World.ForEachAvatar(delegate(ScenePresence sp) { if (sp.currentParcelUUID == landData.GlobalID) { @@ -10528,7 +10527,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api if (checkAgents) { - World.ForEachScenePresence(delegate(ScenePresence sp) + World.ForEachAvatar(delegate(ScenePresence sp) { if (sp.AbsolutePosition.ApproxEquals(posToCheck, sp.PhysicsActor.Size.X)) { diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index f3206ac..3138131 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -873,7 +873,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api CheckThreatLevel(ThreatLevel.None, "osGetAgents"); LSL_List result = new LSL_List(); - World.ForEachRootScenePresence(delegate(ScenePresence sp) + World.ForEachAvatar(delegate(ScenePresence sp) { result.Add(new LSL_String(sp.Name)); }); @@ -2581,7 +2581,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api CheckThreatLevel(ThreatLevel.Severe, "osKickAvatar"); if (World.Permissions.CanRunConsoleCommand(m_host.OwnerID)) { - World.ForEachRootScenePresence(delegate(ScenePresence sp) + World.ForEachAvatar(delegate(ScenePresence sp) { if (sp.Firstname == FirstName && sp.Lastname == SurName) { @@ -2715,7 +2715,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api CheckThreatLevel(ThreatLevel.None, "osGetAvatarList"); LSL_List result = new LSL_List(); - World.ForEachRootScenePresence(delegate (ScenePresence avatar) + World.ForEachAvatar(delegate (ScenePresence avatar) { if (avatar != null && avatar.UUID != m_host.OwnerID) { diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs index 4ac7f8b..eb05f16 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs @@ -507,7 +507,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins senseEntity(sp); if ((ts.type & AGENT_BY_USERNAME) != 0) { - m_CmdManager.m_ScriptEngine.World.ForEachScenePresence( + m_CmdManager.m_ScriptEngine.World.ForEachAvatar( delegate (ScenePresence ssp) { if (ssp.Lastname == "Resident") @@ -526,7 +526,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins } else { - m_CmdManager.m_ScriptEngine.World.ForEachScenePresence(senseEntity); + m_CmdManager.m_ScriptEngine.World.ForEachAvatar(senseEntity); } return sensedEntities; } -- cgit v1.1