diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 51 |
1 files changed, 39 insertions, 12 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 5c283bc..b8c8d88 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -2834,29 +2834,59 @@ namespace OpenSim.Region.Framework.Scenes | |||
2834 | } | 2834 | } |
2835 | } | 2835 | } |
2836 | 2836 | ||
2837 | // /// <summary> | ||
2838 | // /// | ||
2839 | // /// </summary> | ||
2840 | // /// <param name="remoteClient"></param> | ||
2841 | // public void SendFullUpdate(IClientAPI remoteClient, uint clientFlags) | ||
2842 | // { | ||
2843 | // m_parentGroup.SendPartFullUpdate(remoteClient, this, clientFlags); | ||
2844 | // } | ||
2845 | |||
2846 | |||
2837 | /// <summary> | 2847 | /// <summary> |
2838 | /// | 2848 | /// Send a full update to the client for the given part |
2839 | /// </summary> | 2849 | /// </summary> |
2840 | /// <param name="remoteClient"></param> | 2850 | /// <param name="remoteClient"></param> |
2841 | public void SendFullUpdate(IClientAPI remoteClient, uint clientFlags) | 2851 | /// <param name="clientFlags"></param> |
2852 | protected internal void SendFullUpdate(IClientAPI remoteClient, uint clientFlags) | ||
2842 | { | 2853 | { |
2843 | m_parentGroup.SendPartFullUpdate(remoteClient, this, clientFlags); | 2854 | // m_log.DebugFormat( |
2844 | } | 2855 | // "[SOG]: Sendinging part full update to {0} for {1} {2}", remoteClient.Name, part.Name, part.LocalId); |
2856 | |||
2857 | if (IsRoot) | ||
2858 | { | ||
2859 | if (IsAttachment) | ||
2860 | { | ||
2861 | SendFullUpdateToClient(remoteClient, AttachedPos, clientFlags); | ||
2862 | } | ||
2863 | else | ||
2864 | { | ||
2865 | SendFullUpdateToClient(remoteClient, AbsolutePosition, clientFlags); | ||
2866 | } | ||
2867 | } | ||
2868 | else | ||
2869 | { | ||
2870 | SendFullUpdateToClient(remoteClient, clientFlags); | ||
2871 | } | ||
2872 | } | ||
2845 | 2873 | ||
2846 | /// <summary> | 2874 | /// <summary> |
2847 | /// | 2875 | /// Send a full update for this part to all clients. |
2848 | /// </summary> | 2876 | /// </summary> |
2849 | public void SendFullUpdateToAllClients() | 2877 | public void SendFullUpdateToAllClients() |
2850 | { | 2878 | { |
2851 | ScenePresence[] avatars = m_parentGroup.Scene.GetScenePresences(); | 2879 | ScenePresence[] avatars = m_parentGroup.Scene.GetScenePresences(); |
2852 | for (int i = 0; i < avatars.Length; i++) | 2880 | for (int i = 0; i < avatars.Length; i++) |
2853 | { | 2881 | { |
2854 | // Ugly reference :( | 2882 | SendFullUpdate(avatars[i].ControllingClient, avatars[i].GenerateClientFlags(UUID)); |
2855 | m_parentGroup.SendPartFullUpdate(avatars[i].ControllingClient, this, | ||
2856 | avatars[i].GenerateClientFlags(UUID)); | ||
2857 | } | 2883 | } |
2858 | } | 2884 | } |
2859 | 2885 | ||
2886 | /// <summary> | ||
2887 | /// Send a full update to all clients except the one nominated. | ||
2888 | /// </summary> | ||
2889 | /// <param name="agentID"></param> | ||
2860 | public void SendFullUpdateToAllClientsExcept(UUID agentID) | 2890 | public void SendFullUpdateToAllClientsExcept(UUID agentID) |
2861 | { | 2891 | { |
2862 | ScenePresence[] avatars = m_parentGroup.Scene.GetScenePresences(); | 2892 | ScenePresence[] avatars = m_parentGroup.Scene.GetScenePresences(); |
@@ -2864,10 +2894,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2864 | { | 2894 | { |
2865 | // Ugly reference :( | 2895 | // Ugly reference :( |
2866 | if (avatars[i].UUID != agentID) | 2896 | if (avatars[i].UUID != agentID) |
2867 | { | 2897 | SendFullUpdate(avatars[i].ControllingClient, avatars[i].GenerateClientFlags(UUID)); |
2868 | m_parentGroup.SendPartFullUpdate(avatars[i].ControllingClient, this, | ||
2869 | avatars[i].GenerateClientFlags(UUID)); | ||
2870 | } | ||
2871 | } | 2898 | } |
2872 | } | 2899 | } |
2873 | 2900 | ||