diff options
author | Mike Mazur | 2009-02-25 00:32:26 +0000 |
---|---|---|
committer | Mike Mazur | 2009-02-25 00:32:26 +0000 |
commit | bdf95e54a2da5b60e7817d748f7389289a59bc5e (patch) | |
tree | e688db1880284466aef41abb545dc9ed50ea66cc /OpenSim/Region/Framework/Scenes/ScenePresence.cs | |
parent | Setting svn:eol-style=native on new files. (diff) | |
download | opensim-SC_OLD-bdf95e54a2da5b60e7817d748f7389289a59bc5e.zip opensim-SC_OLD-bdf95e54a2da5b60e7817d748f7389289a59bc5e.tar.gz opensim-SC_OLD-bdf95e54a2da5b60e7817d748f7389289a59bc5e.tar.bz2 opensim-SC_OLD-bdf95e54a2da5b60e7817d748f7389289a59bc5e.tar.xz |
A few updates necessary for load balancer.
- handle GetUser request for nonexistent user gracefully
- include throttle levels in ClientInfo
- code to save/restore throttles in client stack
- only update/send updates to active clients
- make animation classes serializable
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 6fade39..db0a2d2 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -2048,17 +2048,22 @@ namespace OpenSim.Region.Framework.Scenes | |||
2048 | /// <param name="remoteClient"></param> | 2048 | /// <param name="remoteClient"></param> |
2049 | public void SendTerseUpdateToClient(IClientAPI remoteClient) | 2049 | public void SendTerseUpdateToClient(IClientAPI remoteClient) |
2050 | { | 2050 | { |
2051 | m_perfMonMS = System.Environment.TickCount; | 2051 | // If the client is inactive, it's getting its updates from another |
2052 | // server. | ||
2053 | if (remoteClient.IsActive) | ||
2054 | { | ||
2055 | m_perfMonMS = System.Environment.TickCount; | ||
2052 | 2056 | ||
2053 | Vector3 pos = m_pos; | 2057 | Vector3 pos = m_pos; |
2054 | Vector3 vel = Velocity; | 2058 | Vector3 vel = Velocity; |
2055 | Quaternion rot = m_bodyRot; | 2059 | Quaternion rot = m_bodyRot; |
2056 | pos.Z -= m_appearance.HipOffset; | 2060 | pos.Z -= m_appearance.HipOffset; |
2057 | remoteClient.SendAvatarTerseUpdate(m_regionHandle, (ushort)(m_scene.TimeDilation * (float)ushort.MaxValue), LocalId, new Vector3(pos.X, pos.Y, pos.Z), | 2061 | remoteClient.SendAvatarTerseUpdate(m_regionHandle, (ushort)(m_scene.TimeDilation * (float)ushort.MaxValue), LocalId, new Vector3(pos.X, pos.Y, pos.Z), |
2058 | new Vector3(vel.X, vel.Y, vel.Z), rot); | 2062 | new Vector3(vel.X, vel.Y, vel.Z), rot); |
2059 | 2063 | ||
2060 | m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS); | 2064 | m_scene.AddAgentTime(System.Environment.TickCount - m_perfMonMS); |
2061 | m_scene.AddAgentUpdates(1); | 2065 | m_scene.AddAgentUpdates(1); |
2066 | } | ||
2062 | } | 2067 | } |
2063 | 2068 | ||
2064 | /// <summary> | 2069 | /// <summary> |