temp workaround on sits culling

0.9.1.0-post-fixes
UbitUmarov 2019-04-05 12:32:36 +01:00
parent 28c9725730
commit 3bc0690a7a
1 changed files with 21 additions and 11 deletions

View File

@ -5588,13 +5588,22 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (e != null && e is SceneObjectGroup) if (e != null && e is SceneObjectGroup)
{ {
SceneObjectGroup grp = (SceneObjectGroup)e; SceneObjectGroup grp = (SceneObjectGroup)e;
if(grp.IsDeleted || grp.IsAttachment) if(grp.IsDeleted || grp.IsAttachment )
continue; continue;
bool inviewgroups; bool inviewgroups;
lock (GroupsInView) lock (GroupsInView)
inviewgroups = GroupsInView.Contains(grp); inviewgroups = GroupsInView.Contains(grp);
//temp handling of sits
if(grp.GetSittingAvatarsCount() > 0)
{
if (!inviewgroups)
GroupsNeedFullUpdate.Add(grp);
NewGroupsInView.Add(grp);
}
else
{
Vector3 grppos = grp.getCenterOffset(); Vector3 grppos = grp.getCenterOffset();
float dpos = (grppos - mypos).LengthSquared(); float dpos = (grppos - mypos).LengthSquared();
@ -5606,12 +5615,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
} }
else else
{ {
if(!inviewgroups) if (!inviewgroups)
GroupsNeedFullUpdate.Add(grp); GroupsNeedFullUpdate.Add(grp);
NewGroupsInView.Add(grp); NewGroupsInView.Add(grp);
} }
} }
} }
}
lock(GroupsInView) lock(GroupsInView)
GroupsInView = NewGroupsInView; GroupsInView = NewGroupsInView;