aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs17
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs18
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs25
3 files changed, 47 insertions, 13 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
index 2fa233b..c817559 100644
--- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
@@ -143,6 +143,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
143 143
144 public void SaveChangedAttachments(IScenePresence sp) 144 public void SaveChangedAttachments(IScenePresence sp)
145 { 145 {
146// m_log.DebugFormat("[ATTACHMENTS MODULE]: Saving changed attachments for {0}", sp.Name);
147
146 foreach (SceneObjectGroup grp in sp.GetAttachments()) 148 foreach (SceneObjectGroup grp in sp.GetAttachments())
147 { 149 {
148 if (grp.HasGroupChanged) // Resizer scripts? 150 if (grp.HasGroupChanged) // Resizer scripts?
@@ -242,9 +244,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
242 { 244 {
243 lock (sp.AttachmentsSyncLock) 245 lock (sp.AttachmentsSyncLock)
244 { 246 {
245 // m_log.DebugFormat( 247// m_log.DebugFormat(
246 // "[ATTACHMENTS MODULE]: Attaching object {0} {1} to {2} point {3} from ground (silent = {4})", 248// "[ATTACHMENTS MODULE]: Attaching object {0} {1} to {2} point {3} from ground (silent = {4})",
247 // group.Name, group.LocalId, sp.Name, attachmentPt, silent); 249// group.Name, group.LocalId, sp.Name, attachmentPt, silent);
248 250
249 if (sp.GetAttachments(attachmentPt).Contains(group)) 251 if (sp.GetAttachments(attachmentPt).Contains(group))
250 { 252 {
@@ -365,6 +367,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
365 367
366 public ISceneEntity RezSingleAttachmentFromInventory(ScenePresence sp, UUID itemID, uint AttachmentPt) 368 public ISceneEntity RezSingleAttachmentFromInventory(ScenePresence sp, UUID itemID, uint AttachmentPt)
367 { 369 {
370// m_log.DebugFormat(
371// "[ATTACHMENTS MODULE]: RezSingleAttachmentFromInventory to point {0} from item {1} for {2}",
372// (AttachmentPoint)AttachmentPt, itemID, sp.Name);
373
368 // TODO: this short circuits multiple attachments functionality in LL viewer 2.1+ and should 374 // TODO: this short circuits multiple attachments functionality in LL viewer 2.1+ and should
369 // be removed when that functionality is implemented in opensim 375 // be removed when that functionality is implemented in opensim
370 AttachmentPt &= 0x7f; 376 AttachmentPt &= 0x7f;
@@ -485,6 +491,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
485 491
486 public void DetachObject(uint objectLocalID, IClientAPI remoteClient) 492 public void DetachObject(uint objectLocalID, IClientAPI remoteClient)
487 { 493 {
494// m_log.DebugFormat(
495// "[ATTACHMENTS MODULE]: DetachObject() for object {0} on {1}", objectLocalID, remoteClient.Name);
496
488 SceneObjectGroup group = m_scene.GetGroupByPrim(objectLocalID); 497 SceneObjectGroup group = m_scene.GetGroupByPrim(objectLocalID);
489 if (group != null) 498 if (group != null)
490 { 499 {
@@ -588,6 +597,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
588 // To LocalId or UUID, *THAT* is the question. How now Brown UUID?? 597 // To LocalId or UUID, *THAT* is the question. How now Brown UUID??
589 private void DetachSingleAttachmentToInv(UUID itemID, IScenePresence sp) 598 private void DetachSingleAttachmentToInv(UUID itemID, IScenePresence sp)
590 { 599 {
600// m_log.DebugFormat("[ATTACHMENTS MODULE]: Detaching item {0} to inventory for {1}", itemID, sp.Name);
601
591 if (itemID == UUID.Zero) // If this happened, someone made a mistake.... 602 if (itemID == UUID.Zero) // If this happened, someone made a mistake....
592 return; 603 return;
593 604
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index a0a2624..c5c9260 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2461,14 +2461,16 @@ namespace OpenSim.Region.Framework.Scenes
2461 /// <returns>False</returns> 2461 /// <returns>False</returns>
2462 public virtual bool IncomingCreateObject(UUID userID, UUID itemID) 2462 public virtual bool IncomingCreateObject(UUID userID, UUID itemID)
2463 { 2463 {
2464 //m_log.DebugFormat(" >>> IncomingCreateObject(userID, itemID) <<< {0} {1}", userID, itemID); 2464 m_log.DebugFormat(" >>> IncomingCreateObject(userID, itemID) <<< {0} {1}", userID, itemID);
2465 2465
2466 ScenePresence sp = GetScenePresence(userID); 2466 // Commented out since this is as yet unused and is arguably not the appropriate place to do this, as
2467 if (sp != null && AttachmentsModule != null) 2467 // attachments are being rezzed elsewhere in AddNewClient()
2468 { 2468// ScenePresence sp = GetScenePresence(userID);
2469 uint attPt = (uint)sp.Appearance.GetAttachpoint(itemID); 2469// if (sp != null && AttachmentsModule != null)
2470 AttachmentsModule.RezSingleAttachmentFromInventory(sp.ControllingClient, itemID, attPt); 2470// {
2471 } 2471// uint attPt = (uint)sp.Appearance.GetAttachpoint(itemID);
2472// AttachmentsModule.RezSingleAttachmentFromInventory(sp.ControllingClient, itemID, attPt);
2473// }
2472 2474
2473 return false; 2475 return false;
2474 } 2476 }
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index 46c22ca..f03cf7b 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -431,6 +431,10 @@ namespace OpenSim.Region.Framework.Scenes
431 /// <returns>true if the object was deleted, false if there was no object to delete</returns> 431 /// <returns>true if the object was deleted, false if there was no object to delete</returns>
432 public bool DeleteSceneObject(UUID uuid, bool resultOfObjectLinked) 432 public bool DeleteSceneObject(UUID uuid, bool resultOfObjectLinked)
433 { 433 {
434// m_log.DebugFormat(
435// "[SCENE GRAPH]: Deleting scene object with uuid {0}, resultOfObjectLinked = {1}",
436// uuid, resultOfObjectLinked);
437
434 EntityBase entity; 438 EntityBase entity;
435 if (!Entities.TryGetValue(uuid, out entity) || (!(entity is SceneObjectGroup))) 439 if (!Entities.TryGetValue(uuid, out entity) || (!(entity is SceneObjectGroup)))
436 return false; 440 return false;
@@ -878,7 +882,8 @@ namespace OpenSim.Region.Framework.Scenes
878 if (Entities.TryGetValue(localID, out entity)) 882 if (Entities.TryGetValue(localID, out entity))
879 return entity as SceneObjectGroup; 883 return entity as SceneObjectGroup;
880 884
881 //m_log.DebugFormat("Entered GetGroupByPrim with localID {0}", localID); 885// m_log.DebugFormat("[SCENE GRAPH]: Entered GetGroupByPrim with localID {0}", localID);
886
882 SceneObjectGroup sog; 887 SceneObjectGroup sog;
883 lock (SceneObjectGroupsByLocalPartID) 888 lock (SceneObjectGroupsByLocalPartID)
884 SceneObjectGroupsByLocalPartID.TryGetValue(localID, out sog); 889 SceneObjectGroupsByLocalPartID.TryGetValue(localID, out sog);
@@ -886,8 +891,24 @@ namespace OpenSim.Region.Framework.Scenes
886 if (sog != null) 891 if (sog != null)
887 { 892 {
888 if (sog.HasChildPrim(localID)) 893 if (sog.HasChildPrim(localID))
894 {
895// m_log.DebugFormat(
896// "[SCENE GRAPH]: Found scene object {0} {1} {2} containing part with local id {3} in {4}. Returning.",
897// sog.Name, sog.UUID, sog.LocalId, localID, m_parentScene.RegionInfo.RegionName);
898
889 return sog; 899 return sog;
890 SceneObjectGroupsByLocalPartID.Remove(localID); 900 }
901 else
902 {
903 lock (SceneObjectGroupsByLocalPartID)
904 {
905 m_log.WarnFormat(
906 "[SCENE GRAPH]: Found scene object {0} {1} {2} via SceneObjectGroupsByLocalPartID index but it doesn't contain part with local id {3}. Removing from entry from index in {4}.",
907 sog.Name, sog.UUID, sog.LocalId, localID, m_parentScene.RegionInfo.RegionName);
908
909 SceneObjectGroupsByLocalPartID.Remove(localID);
910 }
911 }
891 } 912 }
892 913
893 EntityBase[] entityList = GetEntities(); 914 EntityBase[] entityList = GetEntities();