diff options
author | Dan Lake | 2011-11-03 17:06:08 -0700 |
---|---|---|
committer | Dan Lake | 2011-11-03 17:06:08 -0700 |
commit | 94dc7d07ebc22ce0e0d9b77e91538ddc90799bee (patch) | |
tree | 0d2ffc74fa937af0ca5d9e6fb2fafeac2c37dd61 /OpenSim/Region/CoreModules/Avatar | |
parent | remove the pointless check of the face texture struct against null in Bot.Obj... (diff) | |
download | opensim-SC-94dc7d07ebc22ce0e0d9b77e91538ddc90799bee.zip opensim-SC-94dc7d07ebc22ce0e0d9b77e91538ddc90799bee.tar.gz opensim-SC-94dc7d07ebc22ce0e0d9b77e91538ddc90799bee.tar.bz2 opensim-SC-94dc7d07ebc22ce0e0d9b77e91538ddc90799bee.tar.xz |
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.
Diffstat (limited to 'OpenSim/Region/CoreModules/Avatar')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Chat/ChatModule.cs | 14 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Dialog/DialogModule.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Gods/GodsModule.cs | 10 |
3 files changed, 15 insertions, 17 deletions
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 | |||
228 | 228 | ||
229 | foreach (Scene s in m_scenes) | 229 | foreach (Scene s in m_scenes) |
230 | { | 230 | { |
231 | s.ForEachScenePresence( | 231 | // This should use ForEachClient, but clients don't have a position. |
232 | // If camera is moved into client, then camera position can be used | ||
233 | s.ForEachAvatar( | ||
232 | delegate(ScenePresence presence) | 234 | delegate(ScenePresence presence) |
233 | { | 235 | { |
234 | if (TrySendChatMessage(presence, fromPos, regionPos, fromID, fromName, c.Type, message, sourceType)) | 236 | if (TrySendChatMessage(presence, fromPos, regionPos, fromID, fromName, c.Type, message, sourceType)) |
@@ -279,11 +281,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat | |||
279 | 281 | ||
280 | HashSet<UUID> receiverIDs = new HashSet<UUID>(); | 282 | HashSet<UUID> receiverIDs = new HashSet<UUID>(); |
281 | 283 | ||
282 | ((Scene)c.Scene).ForEachRootScenePresence( | 284 | ((Scene)c.Scene).ForEachRootClient( |
283 | delegate(ScenePresence presence) | 285 | delegate(IClientAPI client) |
284 | { | 286 | { |
285 | IClientAPI client = presence.ControllingClient; | ||
286 | |||
287 | // don't forward SayOwner chat from objects to | 287 | // don't forward SayOwner chat from objects to |
288 | // non-owner agents | 288 | // non-owner agents |
289 | if ((c.Type == ChatTypeEnum.Owner) && | 289 | if ((c.Type == ChatTypeEnum.Owner) && |
@@ -292,8 +292,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Chat | |||
292 | return; | 292 | return; |
293 | 293 | ||
294 | client.SendChatMessage(c.Message, (byte)cType, CenterOfRegion, fromName, fromID, | 294 | client.SendChatMessage(c.Message, (byte)cType, CenterOfRegion, fromName, fromID, |
295 | (byte)sourceType, (byte)ChatAudibleLevel.Fully); | 295 | (byte)sourceType, (byte)ChatAudibleLevel.Fully); |
296 | receiverIDs.Add(presence.UUID); | 296 | receiverIDs.Add(client.AgentId); |
297 | }); | 297 | }); |
298 | 298 | ||
299 | (c.Scene as Scene).EventManager.TriggerOnChatToClients( | 299 | (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 | |||
98 | 98 | ||
99 | public void SendGeneralAlert(string message) | 99 | public void SendGeneralAlert(string message) |
100 | { | 100 | { |
101 | m_scene.ForEachRootScenePresence(delegate(ScenePresence presence) | 101 | m_scene.ForEachRootClient(delegate(IClientAPI client) |
102 | { | 102 | { |
103 | presence.ControllingClient.SendAlertMessage(message); | 103 | client.SendAlertMessage(message); |
104 | }); | 104 | }); |
105 | } | 105 | } |
106 | 106 | ||
@@ -162,9 +162,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog | |||
162 | public void SendNotificationToUsersInRegion( | 162 | public void SendNotificationToUsersInRegion( |
163 | UUID fromAvatarID, string fromAvatarName, string message) | 163 | UUID fromAvatarID, string fromAvatarName, string message) |
164 | { | 164 | { |
165 | m_scene.ForEachRootScenePresence(delegate(ScenePresence presence) | 165 | m_scene.ForEachRootClient(delegate(IClientAPI client) |
166 | { | 166 | { |
167 | presence.ControllingClient.SendBlueBoxMessage(fromAvatarID, fromAvatarName, message); | 167 | client.SendBlueBoxMessage(fromAvatarID, fromAvatarName, message); |
168 | }); | 168 | }); |
169 | } | 169 | } |
170 | 170 | ||
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 | |||
140 | // This is a bit crude. It seems the client will be null before it actually stops the thread | 140 | // This is a bit crude. It seems the client will be null before it actually stops the thread |
141 | // The thread will kill itself eventually :/ | 141 | // The thread will kill itself eventually :/ |
142 | // Is there another way to make sure *all* clients get this 'inter region' message? | 142 | // Is there another way to make sure *all* clients get this 'inter region' message? |
143 | m_scene.ForEachRootScenePresence( | 143 | m_scene.ForEachRootClient( |
144 | delegate(ScenePresence p) | 144 | delegate(IClientAPI client) |
145 | { | 145 | { |
146 | if (p.UUID != godID) | 146 | if (client.AgentId != godID) |
147 | { | 147 | { |
148 | // Possibly this should really be p.Close() though that method doesn't send a close | 148 | client.Close(); |
149 | // to the client | ||
150 | p.ControllingClient.Close(); | ||
151 | } | 149 | } |
152 | } | 150 | } |
153 | ); | 151 | ); |