diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 40 |
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) |