aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs32
1 files changed, 25 insertions, 7 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 9a205e0..0277ed8 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -680,8 +680,10 @@ namespace OpenSim.Region.Framework.Scenes
680 } 680 }
681 681
682 ApplyPhysics(m_scene.m_physicalPrim); 682 ApplyPhysics(m_scene.m_physicalPrim);
683 683
684 ScheduleGroupForFullUpdate(); 684 // Don't trigger the update here - otherwise some client issues occur when multiple updates are scheduled
685 // for the same object with very different properties. The caller must schedule the update.
686 //ScheduleGroupForFullUpdate();
685 } 687 }
686 688
687 public Vector3 GroupScale() 689 public Vector3 GroupScale()
@@ -1083,10 +1085,11 @@ namespace OpenSim.Region.Framework.Scenes
1083 // don't attach attachments to child agents 1085 // don't attach attachments to child agents
1084 if (avatar.IsChildAgent) return; 1086 if (avatar.IsChildAgent) return;
1085 1087
1088// m_log.DebugFormat("[SOG]: Adding attachment {0} to avatar {1}", Name, avatar.Name);
1089
1086 DetachFromBackup(); 1090 DetachFromBackup();
1087 1091
1088 // Remove from database and parcel prim count 1092 // Remove from database and parcel prim count
1089 //
1090 m_scene.DeleteFromStorage(UUID); 1093 m_scene.DeleteFromStorage(UUID);
1091 m_scene.EventManager.TriggerParcelPrimCountTainted(); 1094 m_scene.EventManager.TriggerParcelPrimCountTainted();
1092 1095
@@ -1112,7 +1115,6 @@ namespace OpenSim.Region.Framework.Scenes
1112 SetAttachmentPoint(Convert.ToByte(attachmentpoint)); 1115 SetAttachmentPoint(Convert.ToByte(attachmentpoint));
1113 1116
1114 avatar.AddAttachment(this); 1117 avatar.AddAttachment(this);
1115 m_log.Debug("[SOG]: Added attachment " + UUID + " to avatar " + avatar.UUID);
1116 1118
1117 if (!silent) 1119 if (!silent)
1118 { 1120 {
@@ -1129,6 +1131,12 @@ namespace OpenSim.Region.Framework.Scenes
1129 ScheduleGroupForFullUpdate(); 1131 ScheduleGroupForFullUpdate();
1130 } 1132 }
1131 } 1133 }
1134 else
1135 {
1136 m_log.WarnFormat(
1137 "[SOG]: Tried to add attachment {0} to avatar with UUID {1} in region {2} but the avatar is not present",
1138 UUID, agentID, Scene.RegionInfo.RegionName);
1139 }
1132 } 1140 }
1133 1141
1134 public byte GetAttachmentPoint() 1142 public byte GetAttachmentPoint()
@@ -2174,6 +2182,8 @@ namespace OpenSim.Region.Framework.Scenes
2174 2182
2175 public void ScheduleFullUpdateToAvatar(ScenePresence presence) 2183 public void ScheduleFullUpdateToAvatar(ScenePresence presence)
2176 { 2184 {
2185// m_log.DebugFormat("[SOG]: Scheduling full update for {0} {1} just to avatar {2}", Name, UUID, presence.Name);
2186
2177 RootPart.AddFullUpdateToAvatar(presence); 2187 RootPart.AddFullUpdateToAvatar(presence);
2178 2188
2179 lockPartsForRead(true); 2189 lockPartsForRead(true);
@@ -2208,6 +2218,8 @@ namespace OpenSim.Region.Framework.Scenes
2208 /// </summary> 2218 /// </summary>
2209 public void ScheduleGroupForFullUpdate() 2219 public void ScheduleGroupForFullUpdate()
2210 { 2220 {
2221// m_log.DebugFormat("[SOG]: Scheduling full update for {0} {1}", Name, UUID);
2222
2211 checkAtTargets(); 2223 checkAtTargets();
2212 RootPart.ScheduleFullUpdate(); 2224 RootPart.ScheduleFullUpdate();
2213 2225
@@ -2245,9 +2257,11 @@ namespace OpenSim.Region.Framework.Scenes
2245 /// Immediately send a full update for this scene object. 2257 /// Immediately send a full update for this scene object.
2246 /// </summary> 2258 /// </summary>
2247 public void SendGroupFullUpdate() 2259 public void SendGroupFullUpdate()
2248 { 2260 {
2249 if (IsDeleted) 2261 if (IsDeleted)
2250 return; 2262 return;
2263
2264// m_log.DebugFormat("[SOG]: Sending immediate full group update for {0} {1}", Name, UUID);
2251 2265
2252 RootPart.SendFullUpdateToAllClients(); 2266 RootPart.SendFullUpdateToAllClients();
2253 2267
@@ -2267,7 +2281,7 @@ namespace OpenSim.Region.Framework.Scenes
2267 /// <summary> 2281 /// <summary>
2268 /// Immediately send an update for this scene object's root prim only. 2282 /// Immediately send an update for this scene object's root prim only.
2269 /// This is for updates regarding the object as a whole, and none of its parts in particular. 2283 /// This is for updates regarding the object as a whole, and none of its parts in particular.
2270 /// Note: this may not be cused by opensim (it probably should) but it's used by 2284 /// Note: this may not be used by opensim (it probably should) but it's used by
2271 /// external modules. 2285 /// external modules.
2272 /// </summary> 2286 /// </summary>
2273 public void SendGroupRootTerseUpdate() 2287 public void SendGroupRootTerseUpdate()
@@ -2282,6 +2296,7 @@ namespace OpenSim.Region.Framework.Scenes
2282 { 2296 {
2283 if (m_scene == null) // Need to check here as it's null during object creation 2297 if (m_scene == null) // Need to check here as it's null during object creation
2284 return; 2298 return;
2299
2285 m_scene.SceneGraph.AddToUpdateList(this); 2300 m_scene.SceneGraph.AddToUpdateList(this);
2286 } 2301 }
2287 2302
@@ -3783,7 +3798,10 @@ namespace OpenSim.Region.Framework.Scenes
3783 HasGroupChanged = true; 3798 HasGroupChanged = true;
3784 } 3799 }
3785 lockPartsForRead(false); 3800 lockPartsForRead(false);
3786 ScheduleGroupForFullUpdate(); 3801
3802 // Don't trigger the update here - otherwise some client issues occur when multiple updates are scheduled
3803 // for the same object with very different properties. The caller must schedule the update.
3804 //ScheduleGroupForFullUpdate();
3787 } 3805 }
3788 3806
3789 public void TriggerScriptChangedEvent(Changed val) 3807 public void TriggerScriptChangedEvent(Changed val)