add filter sog updates

avinationmerge
UbitUmarov 2014-08-21 06:11:19 +01:00
parent d98d64a61a
commit ad6f942279
2 changed files with 40 additions and 2 deletions

View File

@ -2636,6 +2636,16 @@ namespace OpenSim.Region.Framework.Scenes
m_rootPart.UpdateFlag = UpdateRequired.TERSE; m_rootPart.UpdateFlag = UpdateRequired.TERSE;
} }
if (IsAttachment)
{
ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar);
if (sp != null)
{
sp.SendAttachmentScheduleUpdate(this);
return;
}
}
SceneObjectPart[] parts = m_parts.GetArray(); SceneObjectPart[] parts = m_parts.GetArray();
for (int i = 0; i < parts.Length; i++) for (int i = 0; i < parts.Length; i++)
{ {
@ -2698,6 +2708,16 @@ namespace OpenSim.Region.Framework.Scenes
// m_log.DebugFormat("[SOG]: Sending immediate full group update for {0} {1}", Name, UUID); // m_log.DebugFormat("[SOG]: Sending immediate full group update for {0} {1}", Name, UUID);
if (IsAttachment)
{
ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar);
if (sp != null)
{
sp.SendAttachmentUpdate(this,UpdateRequired.FULL);
return;
}
}
RootPart.SendFullUpdateToAllClients(); RootPart.SendFullUpdateToAllClients();
SceneObjectPart[] parts = m_parts.GetArray(); SceneObjectPart[] parts = m_parts.GetArray();
@ -2720,6 +2740,16 @@ namespace OpenSim.Region.Framework.Scenes
if (IsDeleted) if (IsDeleted)
return; return;
if (IsAttachment)
{
ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar);
if (sp != null)
{
sp.SendAttachmentUpdate(RootPart, UpdateRequired.TERSE);
return;
}
}
RootPart.SendTerseUpdateToAllClients(); RootPart.SendTerseUpdateToAllClients();
} }
@ -2739,6 +2769,16 @@ namespace OpenSim.Region.Framework.Scenes
if (IsDeleted) if (IsDeleted)
return; return;
if (IsAttachment)
{
ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar);
if (sp != null)
{
sp.SendAttachmentUpdate(this, UpdateRequired.TERSE);
return;
}
}
SceneObjectPart[] parts = m_parts.GetArray(); SceneObjectPart[] parts = m_parts.GetArray();
for (int i = 0; i < parts.Length; i++) for (int i = 0; i < parts.Length; i++)
parts[i].SendTerseUpdateToAllClients(); parts[i].SendTerseUpdateToAllClients();

View File

@ -1916,7 +1916,6 @@ namespace OpenSim.Region.Framework.Scenes
if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200) if (ParcelHideThisAvatar && currentParcelUUID != p.currentParcelUUID && p.GodLevel < 200)
return; return;
p.ControllingClient.SendPartFullUpdate(sog.RootPart,LocalId + 1);
sog.SendFullUpdateToClient(p.ControllingClient); sog.SendFullUpdateToClient(p.ControllingClient);
SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path SendFullUpdateToClient(p.ControllingClient); // resend our data by updates path
}); });
@ -4748,7 +4747,6 @@ namespace OpenSim.Region.Framework.Scenes
{ {
if (p == this || !sog.HasPrivateAttachmentPoint) if (p == this || !sog.HasPrivateAttachmentPoint)
{ {
p.ControllingClient.SendPartFullUpdate(sog.RootPart, LocalId +1 );
sog.SendFullUpdateToClient(p.ControllingClient); sog.SendFullUpdateToClient(p.ControllingClient);
} }
} }