aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Avatar
diff options
context:
space:
mode:
authorMelanie2010-11-09 22:16:48 +0000
committerMelanie2010-11-09 22:16:48 +0000
commitee85a530f6401a7be15778f15f0e2319c714c3d4 (patch)
treece3d924fe0d4c8679731c78ea8090c6ca022bdcb /OpenSim/Region/CoreModules/Avatar
parentFix parcel bans to work only on the avatars they're supposed to work on inste... (diff)
parentFix parcel bans to work only on the avatars they're supposed to work on inste... (diff)
downloadopensim-SC-ee85a530f6401a7be15778f15f0e2319c714c3d4.zip
opensim-SC-ee85a530f6401a7be15778f15f0e2319c714c3d4.tar.gz
opensim-SC-ee85a530f6401a7be15778f15f0e2319c714c3d4.tar.bz2
opensim-SC-ee85a530f6401a7be15778f15f0e2319c714c3d4.tar.xz
Merge branch 'master' into careminster-presence-refactor
Diffstat (limited to 'OpenSim/Region/CoreModules/Avatar')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs2
-rw-r--r--OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs63
2 files changed, 32 insertions, 33 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
index 31eb319..6122cc2 100644
--- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
@@ -179,7 +179,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
179 UUID itemID = UUID.Zero; 179 UUID itemID = UUID.Zero;
180 if (sp != null) 180 if (sp != null)
181 { 181 {
182 foreach(SceneObjectGroup grp in sp.Attachments) 182 foreach (SceneObjectGroup grp in sp.Attachments)
183 { 183 {
184 if (grp.GetAttachmentPoint() == (byte)AttachmentPt) 184 if (grp.GetAttachmentPoint() == (byte)AttachmentPt)
185 { 185 {
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
index 7f482cb..2dd444d 100644
--- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
@@ -61,7 +61,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
61 { 61 {
62 scene.RegisterModuleInterface<IAvatarFactory>(this); 62 scene.RegisterModuleInterface<IAvatarFactory>(this);
63 scene.EventManager.OnNewClient += NewClient; 63 scene.EventManager.OnNewClient += NewClient;
64 64
65 if (config != null) 65 if (config != null)
66 { 66 {
67 IConfig sconfig = config.Configs["Startup"]; 67 IConfig sconfig = config.Configs["Startup"];
@@ -138,7 +138,6 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
138 138
139 return cached; 139 return cached;
140 } 140 }
141
142 141
143 /// <summary> 142 /// <summary>
144 /// Set appearance data (textureentry and slider settings) received from the client 143 /// Set appearance data (textureentry and slider settings) received from the client
@@ -155,9 +154,9 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
155 m_log.WarnFormat("[AVATAR FACTORY MODULE]: SetAppearance unable to find presence for {0}",client.AgentId); 154 m_log.WarnFormat("[AVATAR FACTORY MODULE]: SetAppearance unable to find presence for {0}",client.AgentId);
156 return; 155 return;
157 } 156 }
158 157
159 bool changed = false; 158 bool changed = false;
160 159
161 // Process the texture entry 160 // Process the texture entry
162 if (textureEntry != null) 161 if (textureEntry != null)
163 { 162 {
@@ -174,7 +173,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
174 }); 173 });
175 } 174 }
176 } 175 }
177 176
178 // Process the visual params, this may change height as well 177 // Process the visual params, this may change height as well
179 if (visualParams != null) 178 if (visualParams != null)
180 { 179 {
@@ -185,14 +184,14 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
185 sp.SetHeight(sp.Appearance.AvatarHeight); 184 sp.SetHeight(sp.Appearance.AvatarHeight);
186 } 185 }
187 } 186 }
188 187
189 // If something changed in the appearance then queue an appearance save 188 // If something changed in the appearance then queue an appearance save
190 if (changed) 189 if (changed)
191 QueueAppearanceSave(client.AgentId); 190 QueueAppearanceSave(client.AgentId);
192 191
193 // And always queue up an appearance update to send out 192 // And always queue up an appearance update to send out
194 QueueAppearanceSend(client.AgentId); 193 QueueAppearanceSend(client.AgentId);
195 194
196 // Send the appearance back to the avatar 195 // Send the appearance back to the avatar
197 // AvatarAppearance avp = sp.Appearance; 196 // AvatarAppearance avp = sp.Appearance;
198 // sp.ControllingClient.SendAvatarDataImmediate(sp); 197 // sp.ControllingClient.SendAvatarDataImmediate(sp);
@@ -216,35 +215,35 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
216 } 215 }
217 return true; 216 return true;
218 } 217 }
219 218
220 #region UpdateAppearanceTimer 219 #region UpdateAppearanceTimer
221 220
222 public void QueueAppearanceSend(UUID agentid) 221 public void QueueAppearanceSend(UUID agentid)
223 { 222 {
224// m_log.WarnFormat("[AVATAR FACTORY MODULE]: Queue appearance send for {0}",agentid); 223// m_log.WarnFormat("[AVATAR FACTORY MODULE]: Queue appearance send for {0}", agentid);
225 224
226 // 100 nanoseconds (ticks) we should wait 225 // 100 nanoseconds (ticks) we should wait
227 long timestamp = DateTime.Now.Ticks + Convert.ToInt64(m_sendtime * 10000000); 226 long timestamp = DateTime.Now.Ticks + Convert.ToInt64(m_sendtime * 10000000);
228 lock (m_sendqueue) 227 lock (m_sendqueue)
229 { 228 {
230 m_sendqueue[agentid] = timestamp; 229 m_sendqueue[agentid] = timestamp;
231 m_updateTimer.Start(); 230 m_updateTimer.Start();
232 } 231 }
233 } 232 }
234 233
235 public void QueueAppearanceSave(UUID agentid) 234 public void QueueAppearanceSave(UUID agentid)
236 { 235 {
237// m_log.WarnFormat("[AVATAR FACTORY MODULE]: Queue appearance save for {0}",agentid); 236// m_log.WarnFormat("[AVATAR FACTORY MODULE]: Queue appearance save for {0}", agentid);
238 237
239 // 100 nanoseconds (ticks) we should wait 238 // 100 nanoseconds (ticks) we should wait
240 long timestamp = DateTime.Now.Ticks + Convert.ToInt64(m_savetime * 10000000); 239 long timestamp = DateTime.Now.Ticks + Convert.ToInt64(m_savetime * 10000000);
241 lock (m_savequeue) 240 lock (m_savequeue)
242 { 241 {
243 m_savequeue[agentid] = timestamp; 242 m_savequeue[agentid] = timestamp;
244 m_updateTimer.Start(); 243 m_updateTimer.Start();
245 } 244 }
246 } 245 }
247 246
248 private void HandleAppearanceSend(UUID agentid) 247 private void HandleAppearanceSend(UUID agentid)
249 { 248 {
250 ScenePresence sp = m_scene.GetScenePresence(agentid); 249 ScenePresence sp = m_scene.GetScenePresence(agentid);
@@ -254,7 +253,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
254 return; 253 return;
255 } 254 }
256 255
257// m_log.WarnFormat("[AVATAR FACTORY MODULE]: Handle appearance send for {0}", agentid); 256// m_log.WarnFormat("[AVATAR FACTORY MODULE]: Handle appearance send for {0}", agentid);
258 257
259 // Send the appearance to everyone in the scene 258 // Send the appearance to everyone in the scene
260 sp.SendAppearanceToAllOtherAgents(); 259 sp.SendAppearanceToAllOtherAgents();
@@ -262,7 +261,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
262 261
263 // Send the appearance back to the avatar 262 // Send the appearance back to the avatar
264 // AvatarAppearance avp = sp.Appearance; 263 // AvatarAppearance avp = sp.Appearance;
265 // sp.ControllingClient.SendAppearance(avp.Owner,avp.VisualParams,avp.Texture.GetBytes()); 264 // sp.ControllingClient.SendAppearance(avp.Owner, avp.VisualParams, avp.Texture.GetBytes());
266 265
267/* 266/*
268// this needs to be fixed, the flag should be on scene presence not the region module 267// this needs to be fixed, the flag should be on scene presence not the region module
@@ -290,11 +289,11 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
290 private void HandleAppearanceUpdateTimer(object sender, EventArgs ea) 289 private void HandleAppearanceUpdateTimer(object sender, EventArgs ea)
291 { 290 {
292 long now = DateTime.Now.Ticks; 291 long now = DateTime.Now.Ticks;
293 292
294 lock (m_sendqueue) 293 lock (m_sendqueue)
295 { 294 {
296 Dictionary<UUID,long> sends = new Dictionary<UUID,long>(m_sendqueue); 295 Dictionary<UUID, long> sends = new Dictionary<UUID, long>(m_sendqueue);
297 foreach (KeyValuePair<UUID,long> kvp in sends) 296 foreach (KeyValuePair<UUID, long> kvp in sends)
298 { 297 {
299 if (kvp.Value < now) 298 if (kvp.Value < now)
300 { 299 {
@@ -306,8 +305,8 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
306 305
307 lock (m_savequeue) 306 lock (m_savequeue)
308 { 307 {
309 Dictionary<UUID,long> saves = new Dictionary<UUID,long>(m_savequeue); 308 Dictionary<UUID, long> saves = new Dictionary<UUID, long>(m_savequeue);
310 foreach (KeyValuePair<UUID,long> kvp in saves) 309 foreach (KeyValuePair<UUID, long> kvp in saves)
311 { 310 {
312 if (kvp.Value < now) 311 if (kvp.Value < now)
313 { 312 {
@@ -320,7 +319,7 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
320 if (m_savequeue.Count == 0 && m_sendqueue.Count == 0) 319 if (m_savequeue.Count == 0 && m_sendqueue.Count == 0)
321 m_updateTimer.Stop(); 320 m_updateTimer.Stop();
322 } 321 }
323 322
324 #endregion 323 #endregion
325 324
326 /// <summary> 325 /// <summary>
@@ -336,8 +335,8 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
336 } 335 }
337 336
338// m_log.WarnFormat("[AVATAR FACTORY MODULE]: Received request for wearables of {0}", client.AgentId); 337// m_log.WarnFormat("[AVATAR FACTORY MODULE]: Received request for wearables of {0}", client.AgentId);
339 338
340 client.SendWearables(sp.Appearance.Wearables,sp.Appearance.Serial++); 339 client.SendWearables(sp.Appearance.Wearables, sp.Appearance.Serial++);
341 } 340 }
342 341
343 /// <summary> 342 /// <summary>
@@ -353,17 +352,17 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
353 m_log.WarnFormat("[AVATAR FACTORY MODULE]: AvatarIsWearing unable to find presence for {0}", client.AgentId); 352 m_log.WarnFormat("[AVATAR FACTORY MODULE]: AvatarIsWearing unable to find presence for {0}", client.AgentId);
354 return; 353 return;
355 } 354 }
356 355
357// m_log.WarnFormat("[AVATAR FACTORY MODULE]: AvatarIsWearing called for {0}",client.AgentId); 356// m_log.WarnFormat("[AVATAR FACTORY MODULE]: AvatarIsWearing called for {0}", client.AgentId);
358 357
359 AvatarAppearance avatAppearance = new AvatarAppearance(sp.Appearance, false); 358 AvatarAppearance avatAppearance = new AvatarAppearance(sp.Appearance, false);
360 359
361 foreach (AvatarWearingArgs.Wearable wear in e.NowWearing) 360 foreach (AvatarWearingArgs.Wearable wear in e.NowWearing)
362 { 361 {
363 if (wear.Type < AvatarWearable.MAX_WEARABLES) 362 if (wear.Type < AvatarWearable.MAX_WEARABLES)
364 avatAppearance.Wearables[wear.Type].Add(wear.ItemID,UUID.Zero); 363 avatAppearance.Wearables[wear.Type].Add(wear.ItemID, UUID.Zero);
365 } 364 }
366 365
367 avatAppearance.GetAssetsFrom(sp.Appearance); 366 avatAppearance.GetAssetsFrom(sp.Appearance);
368 367
369 // This could take awhile since it needs to pull inventory 368 // This could take awhile since it needs to pull inventory
@@ -381,11 +380,11 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
381 { 380 {
382 for (int i = 0; i < AvatarWearable.MAX_WEARABLES; i++) 381 for (int i = 0; i < AvatarWearable.MAX_WEARABLES; i++)
383 { 382 {
384 for (int j = 0 ; j < appearance.Wearables[j].Count ; j ++ ) 383 for (int j = 0; j < appearance.Wearables[j].Count; j++)
385 { 384 {
386 if (appearance.Wearables[i][j].ItemID == UUID.Zero) 385 if (appearance.Wearables[i][j].ItemID == UUID.Zero)
387 continue; 386 continue;
388 387
389 // Ignore ruth's assets 388 // Ignore ruth's assets
390 if (appearance.Wearables[i][j].ItemID == AvatarWearable.DefaultWearables[i][0].ItemID) 389 if (appearance.Wearables[i][j].ItemID == AvatarWearable.DefaultWearables[i][0].ItemID)
391 continue; 390 continue;
@@ -399,9 +398,9 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
399 else 398 else
400 { 399 {
401 m_log.ErrorFormat( 400 m_log.ErrorFormat(
402 "[AVATAR FACTORY MODULE]: Can't find inventory item {0} for {1}, setting to default", 401 "[AVATAR FACTORY MODULE]: Can't find inventory item {0} for {1}, setting to default",
403 appearance.Wearables[i][j].ItemID, (WearableType)i); 402 appearance.Wearables[i][j].ItemID, (WearableType)i);
404 403
405 appearance.Wearables[i].RemoveItem(appearance.Wearables[i][j].ItemID); 404 appearance.Wearables[i].RemoveItem(appearance.Wearables[i][j].ItemID);
406 } 405 }
407 } 406 }