* This update contains a bucket-full of network optimizations.

* ParcelProperties are sent only when needed instead of on any movement
* Terse Updates and other temporary data packets are marked unreliable
* After a certain amount of users, the sim actually sends updates on things less
* Experimental
* Tested to 68 avatar with pCampBot  (And it's surprising what actually causes the most lag..  the text chat!)
This commit is contained in:
Teravus Ovares
2008-02-07 08:15:38 +00:00
parent 0e771c8d39
commit 3674257095
6 changed files with 53 additions and 7 deletions

View File

@@ -718,23 +718,32 @@ namespace OpenSim.Region.Environment.LandManagement
}
}
public void sendLandUpdate(ScenePresence avatar)
public void sendLandUpdate(ScenePresence avatar, bool force)
{
Land over = getLandObject((int) Math.Min(255, Math.Max(0, Math.Round(avatar.AbsolutePosition.X))),
(int) Math.Min(255, Math.Max(0, Math.Round(avatar.AbsolutePosition.Y))));
if (over != null)
{
over.sendLandUpdateToClient(avatar.ControllingClient);
if (force)
{
over.sendLandUpdateToClient(avatar.ControllingClient);
}
if (avatar.currentParcelUUID != over.landData.globalID)
{
over.sendLandUpdateToClient(avatar.ControllingClient);
avatar.currentParcelUUID = over.landData.globalID;
m_scene.EventManager.TriggerAvatarEnteringNewParcel(avatar, over.landData.localID,
m_scene.RegionInfo.RegionID);
}
}
}
public void sendLandUpdate(ScenePresence avatar)
{
sendLandUpdate(avatar, false);
}
public void handleSignificantClientMovement(IClientAPI remote_client)
{
ScenePresence clientAvatar = m_scene.GetScenePresence(remote_client.AgentId);