aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
authorMelanie2010-04-05 18:10:36 +0100
committerMelanie2010-04-05 18:10:36 +0100
commit04a68db1954387adc7bc2c8d71619a0262edb2f2 (patch)
treed10d97f32d8ccc481fa66f4b93354030289a946d /OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
parentChange land overlay to send group owned status properly (diff)
parentadd nant distbin target (diff)
downloadopensim-SC-04a68db1954387adc7bc2c8d71619a0262edb2f2.zip
opensim-SC-04a68db1954387adc7bc2c8d71619a0262edb2f2.tar.gz
opensim-SC-04a68db1954387adc7bc2c8d71619a0262edb2f2.tar.bz2
opensim-SC-04a68db1954387adc7bc2c8d71619a0262edb2f2.tar.xz
Merge branch '0.6.9-post-fixes' into careminster
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs40
1 files changed, 34 insertions, 6 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 5443c28..5951a92 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -642,8 +642,10 @@ namespace OpenSim.Region.Framework.Scenes
642 } 642 }
643 643
644 ApplyPhysics(m_scene.m_physicalPrim); 644 ApplyPhysics(m_scene.m_physicalPrim);
645 645
646 ScheduleGroupForFullUpdate(); 646 // Don't trigger the update here - otherwise some client issues occur when multiple updates are scheduled
647 // for the same object with very different properties. The caller must schedule the update.
648 //ScheduleGroupForFullUpdate();
647 } 649 }
648 650
649 public Vector3 GroupScale() 651 public Vector3 GroupScale()
@@ -1045,10 +1047,11 @@ namespace OpenSim.Region.Framework.Scenes
1045 // don't attach attachments to child agents 1047 // don't attach attachments to child agents
1046 if (avatar.IsChildAgent) return; 1048 if (avatar.IsChildAgent) return;
1047 1049
1050// m_log.DebugFormat("[SOG]: Adding attachment {0} to avatar {1}", Name, avatar.Name);
1051
1048 DetachFromBackup(); 1052 DetachFromBackup();
1049 1053
1050 // Remove from database and parcel prim count 1054 // Remove from database and parcel prim count
1051 //
1052 m_scene.DeleteFromStorage(UUID); 1055 m_scene.DeleteFromStorage(UUID);
1053 m_scene.EventManager.TriggerParcelPrimCountTainted(); 1056 m_scene.EventManager.TriggerParcelPrimCountTainted();
1054 1057
@@ -1074,7 +1077,6 @@ namespace OpenSim.Region.Framework.Scenes
1074 SetAttachmentPoint(Convert.ToByte(attachmentpoint)); 1077 SetAttachmentPoint(Convert.ToByte(attachmentpoint));
1075 1078
1076 avatar.AddAttachment(this); 1079 avatar.AddAttachment(this);
1077 m_log.Debug("[SOG]: Added attachment " + UUID + " to avatar " + avatar.UUID);
1078 1080
1079 if (!silent) 1081 if (!silent)
1080 { 1082 {
@@ -1091,6 +1093,12 @@ namespace OpenSim.Region.Framework.Scenes
1091 ScheduleGroupForFullUpdate(); 1093 ScheduleGroupForFullUpdate();
1092 } 1094 }
1093 } 1095 }
1096 else
1097 {
1098 m_log.WarnFormat(
1099 "[SOG]: Tried to add attachment {0} to avatar with UUID {1} in region {2} but the avatar is not present",
1100 UUID, agentID, Scene.RegionInfo.RegionName);
1101 }
1094 } 1102 }
1095 1103
1096 public byte GetAttachmentPoint() 1104 public byte GetAttachmentPoint()
@@ -2136,6 +2144,8 @@ namespace OpenSim.Region.Framework.Scenes
2136 2144
2137 public void ScheduleFullUpdateToAvatar(ScenePresence presence) 2145 public void ScheduleFullUpdateToAvatar(ScenePresence presence)
2138 { 2146 {
2147// m_log.DebugFormat("[SOG]: Scheduling full update for {0} {1} just to avatar {2}", Name, UUID, presence.Name);
2148
2139 RootPart.AddFullUpdateToAvatar(presence); 2149 RootPart.AddFullUpdateToAvatar(presence);
2140 2150
2141 lockPartsForRead(true); 2151 lockPartsForRead(true);
@@ -2170,6 +2180,8 @@ namespace OpenSim.Region.Framework.Scenes
2170 /// </summary> 2180 /// </summary>
2171 public void ScheduleGroupForFullUpdate() 2181 public void ScheduleGroupForFullUpdate()
2172 { 2182 {
2183// m_log.DebugFormat("[SOG]: Scheduling full update for {0} {1}", Name, UUID);
2184
2173 checkAtTargets(); 2185 checkAtTargets();
2174 RootPart.ScheduleFullUpdate(); 2186 RootPart.ScheduleFullUpdate();
2175 2187
@@ -2191,7 +2203,13 @@ namespace OpenSim.Region.Framework.Scenes
2191 /// </summary> 2203 /// </summary>
2192 public void ScheduleGroupForTerseUpdate() 2204 public void ScheduleGroupForTerseUpdate()
2193 { 2205 {
2206<<<<<<< HEAD:OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
2194 lockPartsForRead(true); 2207 lockPartsForRead(true);
2208=======
2209// m_log.DebugFormat("[SOG]: Scheduling terse update for {0} {1}", Name, UUID);
2210
2211 lock (m_parts)
2212>>>>>>> 0.6.9-post-fixes:OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
2195 { 2213 {
2196 foreach (SceneObjectPart part in m_parts.Values) 2214 foreach (SceneObjectPart part in m_parts.Values)
2197 { 2215 {
@@ -2207,9 +2225,11 @@ namespace OpenSim.Region.Framework.Scenes
2207 /// Immediately send a full update for this scene object. 2225 /// Immediately send a full update for this scene object.
2208 /// </summary> 2226 /// </summary>
2209 public void SendGroupFullUpdate() 2227 public void SendGroupFullUpdate()
2210 { 2228 {
2211 if (IsDeleted) 2229 if (IsDeleted)
2212 return; 2230 return;
2231
2232// m_log.DebugFormat("[SOG]: Sending immediate full group update for {0} {1}", Name, UUID);
2213 2233
2214 RootPart.SendFullUpdateToAllClients(); 2234 RootPart.SendFullUpdateToAllClients();
2215 2235
@@ -2229,7 +2249,7 @@ namespace OpenSim.Region.Framework.Scenes
2229 /// <summary> 2249 /// <summary>
2230 /// Immediately send an update for this scene object's root prim only. 2250 /// Immediately send an update for this scene object's root prim only.
2231 /// This is for updates regarding the object as a whole, and none of its parts in particular. 2251 /// This is for updates regarding the object as a whole, and none of its parts in particular.
2232 /// Note: this may not be cused by opensim (it probably should) but it's used by 2252 /// Note: this may not be used by opensim (it probably should) but it's used by
2233 /// external modules. 2253 /// external modules.
2234 /// </summary> 2254 /// </summary>
2235 public void SendGroupRootTerseUpdate() 2255 public void SendGroupRootTerseUpdate()
@@ -2244,6 +2264,7 @@ namespace OpenSim.Region.Framework.Scenes
2244 { 2264 {
2245 if (m_scene == null) // Need to check here as it's null during object creation 2265 if (m_scene == null) // Need to check here as it's null during object creation
2246 return; 2266 return;
2267
2247 m_scene.SceneGraph.AddToUpdateList(this); 2268 m_scene.SceneGraph.AddToUpdateList(this);
2248 } 2269 }
2249 2270
@@ -3744,8 +3765,15 @@ namespace OpenSim.Region.Framework.Scenes
3744 3765
3745 HasGroupChanged = true; 3766 HasGroupChanged = true;
3746 } 3767 }
3768<<<<<<< HEAD:OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
3747 lockPartsForRead(false); 3769 lockPartsForRead(false);
3748 ScheduleGroupForFullUpdate(); 3770 ScheduleGroupForFullUpdate();
3771=======
3772
3773 // Don't trigger the update here - otherwise some client issues occur when multiple updates are scheduled
3774 // for the same object with very different properties. The caller must schedule the update.
3775 //ScheduleGroupForFullUpdate();
3776>>>>>>> 0.6.9-post-fixes:OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
3749 } 3777 }
3750 3778
3751 public void TriggerScriptChangedEvent(Changed val) 3779 public void TriggerScriptChangedEvent(Changed val)