diff options
author | John Hurliman | 2009-10-13 12:50:59 -0700 |
---|---|---|
committer | John Hurliman | 2009-10-13 12:50:59 -0700 |
commit | c893761319f7e61d13b2d2301180d0f227fde1a9 (patch) | |
tree | da652a4c57810aee11f50458d09736bb820a4048 /OpenSim/Region/Framework | |
parent | Avoid checking m_clients collection twice when a UseCircuitCode packet is rec... (diff) | |
download | opensim-SC_OLD-c893761319f7e61d13b2d2301180d0f227fde1a9.zip opensim-SC_OLD-c893761319f7e61d13b2d2301180d0f227fde1a9.tar.gz opensim-SC_OLD-c893761319f7e61d13b2d2301180d0f227fde1a9.tar.bz2 opensim-SC_OLD-c893761319f7e61d13b2d2301180d0f227fde1a9.tar.xz |
* Unregister event handlers in LLUDPServer when a client logs out and disconnects
* Move ViewerEffect handling to Scene.PacketHandlers
* Removing the unused CloseAllAgents function
* Trimming ClientManager down. This class needs to be reworked to keep LLUDP circuit codes from intruding into the abstract OpenSim core code
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs | 26 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 15 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneBase.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Tests/SceneBaseTests.cs | 5 |
4 files changed, 28 insertions, 20 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs index 4ae4dc3..dbbf679 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs | |||
@@ -390,6 +390,32 @@ namespace OpenSim.Region.Framework.Scenes | |||
390 | EventManager.TriggerScriptReset(part.LocalId, itemID); | 390 | EventManager.TriggerScriptReset(part.LocalId, itemID); |
391 | } | 391 | } |
392 | } | 392 | } |
393 | |||
394 | void ProcessViewerEffect(IClientAPI remoteClient, List<ViewerEffectEventHandlerArg> args) | ||
395 | { | ||
396 | // TODO: don't create new blocks if recycling an old packet | ||
397 | List<ViewerEffectPacket.EffectBlock> effectBlock = new List<ViewerEffectPacket.EffectBlock>(); | ||
398 | for (int i = 0; i < args.Count; i++) | ||
399 | { | ||
400 | ViewerEffectPacket.EffectBlock effect = new ViewerEffectPacket.EffectBlock(); | ||
401 | effect.AgentID = args[i].AgentID; | ||
402 | effect.Color = args[i].Color; | ||
403 | effect.Duration = args[i].Duration; | ||
404 | effect.ID = args[i].ID; | ||
405 | effect.Type = args[i].Type; | ||
406 | effect.TypeData = args[i].TypeData; | ||
407 | effectBlock.Add(effect); | ||
408 | } | ||
409 | ViewerEffectPacket.EffectBlock[] effectBlockArray = effectBlock.ToArray(); | ||
410 | |||
411 | ClientManager.ForEachClient( | ||
412 | delegate(IClientAPI client) | ||
413 | { | ||
414 | if (client.AgentId != remoteClient.AgentId) | ||
415 | client.SendViewerEffect(effectBlockArray); | ||
416 | } | ||
417 | ); | ||
418 | } | ||
393 | 419 | ||
394 | /// <summary> | 420 | /// <summary> |
395 | /// Handle a fetch inventory request from the client | 421 | /// Handle a fetch inventory request from the client |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index cffb23c..e81b07b 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -2572,6 +2572,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2572 | public virtual void SubscribeToClientNetworkEvents(IClientAPI client) | 2572 | public virtual void SubscribeToClientNetworkEvents(IClientAPI client) |
2573 | { | 2573 | { |
2574 | client.OnNetworkStatsUpdate += StatsReporter.AddPacketsStats; | 2574 | client.OnNetworkStatsUpdate += StatsReporter.AddPacketsStats; |
2575 | client.OnViewerEffect += ProcessViewerEffect; | ||
2575 | } | 2576 | } |
2576 | 2577 | ||
2577 | protected virtual void UnsubscribeToClientEvents(IClientAPI client) | 2578 | protected virtual void UnsubscribeToClientEvents(IClientAPI client) |
@@ -2726,11 +2727,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
2726 | public virtual void UnSubscribeToClientNetworkEvents(IClientAPI client) | 2727 | public virtual void UnSubscribeToClientNetworkEvents(IClientAPI client) |
2727 | { | 2728 | { |
2728 | client.OnNetworkStatsUpdate -= StatsReporter.AddPacketsStats; | 2729 | client.OnNetworkStatsUpdate -= StatsReporter.AddPacketsStats; |
2730 | client.OnViewerEffect -= ProcessViewerEffect; | ||
2729 | } | 2731 | } |
2730 | 2732 | ||
2731 | |||
2732 | |||
2733 | |||
2734 | /// <summary> | 2733 | /// <summary> |
2735 | /// Teleport an avatar to their home region | 2734 | /// Teleport an avatar to their home region |
2736 | /// </summary> | 2735 | /// </summary> |
@@ -3053,16 +3052,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
3053 | } | 3052 | } |
3054 | 3053 | ||
3055 | /// <summary> | 3054 | /// <summary> |
3056 | /// Closes all endpoints with the circuitcode provided. | ||
3057 | /// </summary> | ||
3058 | /// <param name="circuitcode">Circuit Code of the endpoint to close</param> | ||
3059 | public override void CloseAllAgents(uint circuitcode) | ||
3060 | { | ||
3061 | // Called by ClientView to kill all circuit codes | ||
3062 | ClientManager.CloseAllAgents(circuitcode); | ||
3063 | } | ||
3064 | |||
3065 | /// <summary> | ||
3066 | /// Inform all other ScenePresences on this Scene that someone else has changed position on the minimap. | 3055 | /// Inform all other ScenePresences on this Scene that someone else has changed position on the minimap. |
3067 | /// </summary> | 3056 | /// </summary> |
3068 | public void NotifyMyCoarseLocationChange() | 3057 | public void NotifyMyCoarseLocationChange() |
diff --git a/OpenSim/Region/Framework/Scenes/SceneBase.cs b/OpenSim/Region/Framework/Scenes/SceneBase.cs index 0ac4ed4..cf5c3c8 100644 --- a/OpenSim/Region/Framework/Scenes/SceneBase.cs +++ b/OpenSim/Region/Framework/Scenes/SceneBase.cs | |||
@@ -196,8 +196,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
196 | /// <param name="agentID"></param> | 196 | /// <param name="agentID"></param> |
197 | public abstract void RemoveClient(UUID agentID); | 197 | public abstract void RemoveClient(UUID agentID); |
198 | 198 | ||
199 | public abstract void CloseAllAgents(uint circuitcode); | ||
200 | |||
201 | #endregion | 199 | #endregion |
202 | 200 | ||
203 | /// <summary> | 201 | /// <summary> |
diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneBaseTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneBaseTests.cs index 5c9e66f..8230f32 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneBaseTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneBaseTests.cs | |||
@@ -61,11 +61,6 @@ namespace OpenSim.Region.Framework.Scenes.Tests | |||
61 | throw new NotImplementedException(); | 61 | throw new NotImplementedException(); |
62 | } | 62 | } |
63 | 63 | ||
64 | public override void CloseAllAgents(uint circuitcode) | ||
65 | { | ||
66 | throw new NotImplementedException(); | ||
67 | } | ||
68 | |||
69 | public override void OtherRegionUp(GridRegion otherRegion) | 64 | public override void OtherRegionUp(GridRegion otherRegion) |
70 | { | 65 | { |
71 | throw new NotImplementedException(); | 66 | throw new NotImplementedException(); |