move object inventory send to udp queue asset ( was task). Remove a call

to RefreshGroupMembership() on start. It was too soon and its Groups
module job
LSLKeyTest
UbitUmarov 2016-07-07 12:21:50 +01:00
parent 4119e60c0c
commit f768effa87
2 changed files with 23 additions and 27 deletions

View File

@ -837,7 +837,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{ {
m_scene.AddNewAgent(this, PresenceType.User); m_scene.AddNewAgent(this, PresenceType.User);
RefreshGroupMembership(); // RefreshGroupMembership();
} }
# endregion # endregion
@ -2281,14 +2281,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP
replytask.InventoryData.TaskID = taskID; replytask.InventoryData.TaskID = taskID;
replytask.InventoryData.Serial = serial; replytask.InventoryData.Serial = serial;
replytask.InventoryData.Filename = fileName; replytask.InventoryData.Filename = fileName;
OutPacket(replytask, ThrottleOutPacketType.Task); // OutPacket(replytask, ThrottleOutPacketType.Task);
OutPacket(replytask, ThrottleOutPacketType.Asset);
} }
public void SendXferPacket(ulong xferID, uint packet, byte[] data, bool isTaskInventory) public void SendXferPacket(ulong xferID, uint packet, byte[] data, bool isTaskInventory)
{ {
ThrottleOutPacketType type = ThrottleOutPacketType.Asset; ThrottleOutPacketType type = ThrottleOutPacketType.Asset;
if (isTaskInventory) // if (isTaskInventory)
type = ThrottleOutPacketType.Task; // type = ThrottleOutPacketType.Task;
SendXferPacketPacket sendXfer = (SendXferPacketPacket)PacketPool.Instance.GetPacket(PacketType.SendXferPacket); SendXferPacketPacket sendXfer = (SendXferPacketPacket)PacketPool.Instance.GetPacket(PacketType.SendXferPacket);
sendXfer.XferID.ID = xferID; sendXfer.XferID.ID = xferID;
@ -4361,30 +4362,29 @@ namespace OpenSim.Region.ClientStack.LindenUDP
HashSet<SceneObjectGroup> NewGroupsInView = new HashSet<SceneObjectGroup>(); HashSet<SceneObjectGroup> NewGroupsInView = new HashSet<SceneObjectGroup>();
HashSet<SceneObjectGroup> GroupsNeedFullUpdate = new HashSet<SceneObjectGroup>(); HashSet<SceneObjectGroup> GroupsNeedFullUpdate = new HashSet<SceneObjectGroup>();
// will this take for ever ? // will this take for ever ?
lock(GroupsInView) lock(GroupsInView)
{ {
EntityBase[] entities = m_scene.Entities.GetEntities(); EntityBase[] entities = m_scene.Entities.GetEntities();
foreach (EntityBase e in entities) foreach (EntityBase e in entities)
{
if (e != null && e is SceneObjectGroup && !((SceneObjectGroup)e).IsAttachment)
{ {
SceneObjectGroup grp = (SceneObjectGroup)e; if (e != null && e is SceneObjectGroup && !((SceneObjectGroup)e).IsAttachment)
Vector3 grppos = grp.AbsolutePosition;
float dcam = (grppos - mycamera).LengthSquared();
float dpos = (grppos - mypos).LengthSquared();
if(dcam < dpos)
dpos = dcam;
dpos = (float)Math.Sqrt(dpos) - grp.GetBoundsRadius();
if(dpos > cullingrange)
{ {
if(GroupsInView.Contains(grp)) SceneObjectGroup grp = (SceneObjectGroup)e;
Vector3 grppos = grp.AbsolutePosition;
float dcam = (grppos - mycamera).LengthSquared();
float dpos = (grppos - mypos).LengthSquared();
if(dcam < dpos)
dpos = dcam;
dpos = (float)Math.Sqrt(dpos) - grp.GetBoundsRadius();
if(dpos > cullingrange)
{ {
GroupsInView.Remove(grp); if(GroupsInView.Contains(grp))
if (!m_killRecord.Contains(grp.LocalId)) {
m_killRecord.Add(grp.LocalId); GroupsInView.Remove(grp);
} if (!m_killRecord.Contains(grp.LocalId))
m_killRecord.Add(grp.LocalId);
}
} }
else else
{ {

View File

@ -1178,11 +1178,7 @@ namespace OpenSim.Region.Framework.Scenes
if (ParentGroup.Scene.PhysicsScene != null) if (ParentGroup.Scene.PhysicsScene != null)
{ {
actor.Size = m_shape.Scale; actor.Size = m_shape.Scale;
ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor);
// if (Shape.SculptEntry)
// CheckSculptAndLoad();
// else
ParentGroup.Scene.PhysicsScene.AddPhysicsActorTaint(actor);
} }
} }
} }