diff options
author | UbitUmarov | 2014-08-21 06:11:19 +0100 |
---|---|---|
committer | UbitUmarov | 2014-08-21 06:11:19 +0100 |
commit | ad6f9422792f981cf1c4b240a2a443075624b614 (patch) | |
tree | 7f49851e03e61f09048b6badfa81f4a0ca9d590c /OpenSim/Region | |
parent | bug fix (diff) | |
download | opensim-SC_OLD-ad6f9422792f981cf1c4b240a2a443075624b614.zip opensim-SC_OLD-ad6f9422792f981cf1c4b240a2a443075624b614.tar.gz opensim-SC_OLD-ad6f9422792f981cf1c4b240a2a443075624b614.tar.bz2 opensim-SC_OLD-ad6f9422792f981cf1c4b240a2a443075624b614.tar.xz |
add filter sog updates
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 40 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 2 |
2 files changed, 40 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 28758a9..dd5ee65 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -2636,6 +2636,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
2636 | m_rootPart.UpdateFlag = UpdateRequired.TERSE; | 2636 | m_rootPart.UpdateFlag = UpdateRequired.TERSE; |
2637 | } | 2637 | } |
2638 | 2638 | ||
2639 | if (IsAttachment) | ||
2640 | { | ||
2641 | ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar); | ||
2642 | if (sp != null) | ||
2643 | { | ||
2644 | sp.SendAttachmentScheduleUpdate(this); | ||
2645 | return; | ||
2646 | } | ||
2647 | } | ||
2648 | |||
2639 | SceneObjectPart[] parts = m_parts.GetArray(); | 2649 | SceneObjectPart[] parts = m_parts.GetArray(); |
2640 | for (int i = 0; i < parts.Length; i++) | 2650 | for (int i = 0; i < parts.Length; i++) |
2641 | { | 2651 | { |
@@ -2697,6 +2707,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
2697 | return; | 2707 | return; |
2698 | 2708 | ||
2699 | // m_log.DebugFormat("[SOG]: Sending immediate full group update for {0} {1}", Name, UUID); | 2709 | // m_log.DebugFormat("[SOG]: Sending immediate full group update for {0} {1}", Name, UUID); |
2710 | |||
2711 | if (IsAttachment) | ||
2712 | { | ||
2713 | ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar); | ||
2714 | if (sp != null) | ||
2715 | { | ||
2716 | sp.SendAttachmentUpdate(this,UpdateRequired.FULL); | ||
2717 | return; | ||
2718 | } | ||
2719 | } | ||
2700 | 2720 | ||
2701 | RootPart.SendFullUpdateToAllClients(); | 2721 | RootPart.SendFullUpdateToAllClients(); |
2702 | 2722 | ||
@@ -2720,6 +2740,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
2720 | if (IsDeleted) | 2740 | if (IsDeleted) |
2721 | return; | 2741 | return; |
2722 | 2742 | ||
2743 | if (IsAttachment) | ||
2744 | { | ||
2745 | ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar); | ||
2746 | if (sp != null) | ||
2747 | { | ||
2748 | sp.SendAttachmentUpdate(RootPart, UpdateRequired.TERSE); | ||
2749 | return; | ||
2750 | } | ||
2751 | } | ||
2752 | |||
2723 | RootPart.SendTerseUpdateToAllClients(); | 2753 | RootPart.SendTerseUpdateToAllClients(); |
2724 | } | 2754 | } |
2725 | 2755 | ||
@@ -2739,6 +2769,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
2739 | if (IsDeleted) | 2769 | if (IsDeleted) |
2740 | return; | 2770 | return; |
2741 | 2771 | ||
2772 | if (IsAttachment) | ||
2773 | { | ||
2774 | ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar); | ||
2775 | if (sp != null) | ||
2776 | { | ||
2777 | sp.SendAttachmentUpdate(this, UpdateRequired.TERSE); | ||
2778 | return; | ||
2779 | } | ||
2780 | } | ||
2781 | |||
2742 | SceneObjectPart[] parts = m_parts.GetArray(); | 2782 | SceneObjectPart[] parts = m_parts.GetArray(); |
2743 | for (int i = 0; i < parts.Length; i++) | 2783 | for (int i = 0; i < parts.Length; i++) |
2744 | parts[i].SendTerseUpdateToAllClients(); | 2784 | parts[i].SendTerseUpdateToAllClients(); |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index ea09379..34d0eaa 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -1916,7 +1916,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
1916 | if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200) | 1916 | if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200) |
1917 | return; | 1917 | return; |
1918 | 1918 | ||
1919 | p.ControllingClient.SendPartFullUpdate(sog.RootPart,LocalId + 1); | ||
1920 | sog.SendFullUpdateToClient(p.ControllingClient); | 1919 | sog.SendFullUpdateToClient(p.ControllingClient); |
1921 | SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path | 1920 | SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path |
1922 | }); | 1921 | }); |
@@ -4748,7 +4747,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
4748 | { | 4747 | { |
4749 | if (p == this || !sog.HasPrivateAttachmentPoint) | 4748 | if (p == this || !sog.HasPrivateAttachmentPoint) |
4750 | { | 4749 | { |
4751 | p.ControllingClient.SendPartFullUpdate(sog.RootPart, LocalId +1 ); | ||
4752 | sog.SendFullUpdateToClient(p.ControllingClient); | 4750 | sog.SendFullUpdateToClient(p.ControllingClient); |
4753 | } | 4751 | } |
4754 | } | 4752 | } |