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;
}
if (IsAttachment)
{
ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar);
if (sp != null)
{
sp.SendAttachmentScheduleUpdate(this);
return;
}
}
SceneObjectPart[] parts = m_parts.GetArray();
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);
if (IsAttachment)
{
ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar);
if (sp != null)
{
sp.SendAttachmentUpdate(this,UpdateRequired.FULL);
return;
}
}
RootPart.SendFullUpdateToAllClients();
SceneObjectPart[] parts = m_parts.GetArray();
@ -2720,6 +2740,16 @@ namespace OpenSim.Region.Framework.Scenes
if (IsDeleted)
return;
if (IsAttachment)
{
ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar);
if (sp != null)
{
sp.SendAttachmentUpdate(RootPart, UpdateRequired.TERSE);
return;
}
}
RootPart.SendTerseUpdateToAllClients();
}
@ -2739,6 +2769,16 @@ namespace OpenSim.Region.Framework.Scenes
if (IsDeleted)
return;
if (IsAttachment)
{
ScenePresence sp = m_scene.GetScenePresence(AttachedAvatar);
if (sp != null)
{
sp.SendAttachmentUpdate(this, UpdateRequired.TERSE);
return;
}
}
SceneObjectPart[] parts = m_parts.GetArray();
for (int i = 0; i < parts.Length; i++)
parts[i].SendTerseUpdateToAllClients();

View File

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