diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 68 |
1 files changed, 12 insertions, 56 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 7025551..45ca0b7 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -1425,25 +1425,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1425 | // m_log.Debug("Aprev: " + prevflag.ToString() + " curr: " + Flags.ToString()); | 1425 | // m_log.Debug("Aprev: " + prevflag.ToString() + " curr: " + Flags.ToString()); |
1426 | } | 1426 | } |
1427 | 1427 | ||
1428 | /// <summary> | ||
1429 | /// Tell all scene presences that they should send updates for this part to their clients | ||
1430 | /// </summary> | ||
1431 | public void AddFullUpdateToAllAvatars() | ||
1432 | { | ||
1433 | ParentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) | ||
1434 | { | ||
1435 | AddFullUpdateToAvatar(avatar); | ||
1436 | }); | ||
1437 | } | ||
1438 | |||
1439 | /// <summary> | ||
1440 | /// Tell the scene presence that it should send updates for this part to its client | ||
1441 | /// </summary> | ||
1442 | public void AddFullUpdateToAvatar(ScenePresence presence) | ||
1443 | { | ||
1444 | presence.SceneViewer.QueuePartForUpdate(this); | ||
1445 | } | ||
1446 | |||
1447 | public void AddNewParticleSystem(Primitive.ParticleSystem pSystem) | 1428 | public void AddNewParticleSystem(Primitive.ParticleSystem pSystem) |
1448 | { | 1429 | { |
1449 | m_particleSystem = pSystem.GetBytes(); | 1430 | m_particleSystem = pSystem.GetBytes(); |
@@ -1454,20 +1435,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1454 | m_particleSystem = new byte[0]; | 1435 | m_particleSystem = new byte[0]; |
1455 | } | 1436 | } |
1456 | 1437 | ||
1457 | /// Terse updates | ||
1458 | public void AddTerseUpdateToAllAvatars() | ||
1459 | { | ||
1460 | ParentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) | ||
1461 | { | ||
1462 | AddTerseUpdateToAvatar(avatar); | ||
1463 | }); | ||
1464 | } | ||
1465 | |||
1466 | public void AddTerseUpdateToAvatar(ScenePresence presence) | ||
1467 | { | ||
1468 | presence.SceneViewer.QueuePartForUpdate(this); | ||
1469 | } | ||
1470 | |||
1471 | public void AddTextureAnimation(Primitive.TextureAnimation pTexAnim) | 1438 | public void AddTextureAnimation(Primitive.TextureAnimation pTexAnim) |
1472 | { | 1439 | { |
1473 | byte[] data = new byte[16]; | 1440 | byte[] data = new byte[16]; |
@@ -2703,8 +2670,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2703 | //ParentGroup.RootPart.m_groupPosition = newpos; | 2670 | //ParentGroup.RootPart.m_groupPosition = newpos; |
2704 | } | 2671 | } |
2705 | ScheduleTerseUpdate(); | 2672 | ScheduleTerseUpdate(); |
2706 | |||
2707 | //SendTerseUpdateToAllClients(); | ||
2708 | } | 2673 | } |
2709 | 2674 | ||
2710 | public void PreloadSound(string sound) | 2675 | public void PreloadSound(string sound) |
@@ -2888,6 +2853,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
2888 | if (ParentGroup == null) | 2853 | if (ParentGroup == null) |
2889 | return; | 2854 | return; |
2890 | 2855 | ||
2856 | // This was pulled from SceneViewer. Attachments always receive full updates. | ||
2857 | // I could not verify if this is a requirement but this maintains existing behavior | ||
2858 | if (ParentGroup.IsAttachment) | ||
2859 | { | ||
2860 | ScheduleFullUpdate(); | ||
2861 | } | ||
2862 | |||
2891 | if (UpdateFlag == UpdateRequired.NONE) | 2863 | if (UpdateFlag == UpdateRequired.NONE) |
2892 | { | 2864 | { |
2893 | ParentGroup.HasGroupChanged = true; | 2865 | ParentGroup.HasGroupChanged = true; |
@@ -2982,23 +2954,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2982 | } | 2954 | } |
2983 | 2955 | ||
2984 | /// <summary> | 2956 | /// <summary> |
2985 | /// Send a full update to all clients except the one nominated. | ||
2986 | /// </summary> | ||
2987 | /// <param name="agentID"></param> | ||
2988 | public void SendFullUpdateToAllClientsExcept(UUID agentID) | ||
2989 | { | ||
2990 | if (ParentGroup == null) | ||
2991 | return; | ||
2992 | |||
2993 | ParentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) | ||
2994 | { | ||
2995 | // Ugly reference :( | ||
2996 | if (avatar.UUID != agentID) | ||
2997 | SendFullUpdate(avatar.ControllingClient, avatar.GenerateClientFlags(UUID)); | ||
2998 | }); | ||
2999 | } | ||
3000 | |||
3001 | /// <summary> | ||
3002 | /// Sends a full update to the client | 2957 | /// Sends a full update to the client |
3003 | /// </summary> | 2958 | /// </summary> |
3004 | /// <param name="remoteClient"></param> | 2959 | /// <param name="remoteClient"></param> |
@@ -3074,7 +3029,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
3074 | !OffsetPosition.ApproxEquals(m_lastPosition, POSITION_TOLERANCE) || | 3029 | !OffsetPosition.ApproxEquals(m_lastPosition, POSITION_TOLERANCE) || |
3075 | Environment.TickCount - m_lastTerseSent > TIME_MS_TOLERANCE) | 3030 | Environment.TickCount - m_lastTerseSent > TIME_MS_TOLERANCE) |
3076 | { | 3031 | { |
3077 | AddTerseUpdateToAllAvatars(); | 3032 | |
3033 | SendTerseUpdateToAllClients(); | ||
3078 | ClearUpdateSchedule(); | 3034 | ClearUpdateSchedule(); |
3079 | 3035 | ||
3080 | // Update the "last" values | 3036 | // Update the "last" values |
@@ -3089,7 +3045,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3089 | } | 3045 | } |
3090 | case UpdateRequired.FULL: | 3046 | case UpdateRequired.FULL: |
3091 | { | 3047 | { |
3092 | AddFullUpdateToAllAvatars(); | 3048 | SendFullUpdateToAllClients(); |
3093 | break; | 3049 | break; |
3094 | } | 3050 | } |
3095 | } | 3051 | } |
@@ -3193,9 +3149,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
3193 | /// </summary> | 3149 | /// </summary> |
3194 | public void SendTerseUpdateToAllClients() | 3150 | public void SendTerseUpdateToAllClients() |
3195 | { | 3151 | { |
3196 | ParentGroup.Scene.ForEachScenePresence(delegate(ScenePresence avatar) | 3152 | ParentGroup.Scene.ForEachClient(delegate(IClientAPI client) |
3197 | { | 3153 | { |
3198 | SendTerseUpdateToClient(avatar.ControllingClient); | 3154 | SendTerseUpdateToClient(client); |
3199 | }); | 3155 | }); |
3200 | } | 3156 | } |
3201 | 3157 | ||