aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Avatar
diff options
context:
space:
mode:
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 9c1154b..348b8b9 100644
--- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
@@ -178,7 +178,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
178 UUID itemID = UUID.Zero; 178 UUID itemID = UUID.Zero;
179 if (sp != null) 179 if (sp != null)
180 { 180 {
181 foreach(SceneObjectGroup grp in sp.Attachments) 181 foreach (SceneObjectGroup grp in sp.Attachments)
182 { 182 {
183 if (grp.GetAttachmentPoint() == (byte)AttachmentPt) 183 if (grp.GetAttachmentPoint() == (byte)AttachmentPt)
184 { 184 {
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 }