From 269a6410a04e1c8b7140bbbcfe4308d639e78773 Mon Sep 17 00:00:00 2001 From: dahlia Date: Wed, 19 Feb 2014 17:52:38 -0800 Subject: add EventManager event OnCrossAgentToNewRegion --- OpenSim/Region/Framework/Scenes/EventManager.cs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'OpenSim/Region/Framework/Scenes/EventManager.cs') diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index 37b5776..1981a25 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs @@ -430,6 +430,9 @@ namespace OpenSim.Region.Framework.Scenes public delegate void IncomingInstantMessage(GridInstantMessage message); public event IncomingInstantMessage OnIncomingInstantMessage; + public delegate void CrossAgentToNewRegion(ScenePresence sp, bool isFlying); + public event CrossAgentToNewRegion OnCrossAgentToNewRegion; + public event IncomingInstantMessage OnUnhandledInstantMessage; public delegate void ClientClosed(UUID clientID, Scene scene); @@ -1960,6 +1963,27 @@ namespace OpenSim.Region.Framework.Scenes } } + public void TriggerCrossAgentToNewRegion(ScenePresence agent, bool isFlying) + { + CrossAgentToNewRegion handlerCrossAgentToNewRegion = OnCrossAgentToNewRegion; + if (handlerCrossAgentToNewRegion != null) + { + foreach (CrossAgentToNewRegion d in handlerCrossAgentToNewRegion.GetInvocationList()) + { + try + { + d(agent, isFlying); + } + catch (Exception e) + { + m_log.ErrorFormat( + "[EVENT MANAGER]: Delegate for TriggerCrossAgentToNewRegion failed - continuing. {0} {1}", + e.Message, e.StackTrace); + } + } + } + } + public void TriggerIncomingInstantMessage(GridInstantMessage message) { IncomingInstantMessage handlerIncomingInstantMessage = OnIncomingInstantMessage; -- cgit v1.1 From a2866b85f3674b0f63b962f46f23490cd198515e Mon Sep 17 00:00:00 2001 From: dahlia Date: Thu, 20 Feb 2014 00:18:28 -0800 Subject: add newRegion parameter to CrossAgentToNewRegion event and trigger the event after crossing thread is invoked --- OpenSim/Region/Framework/Scenes/EventManager.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/Framework/Scenes/EventManager.cs') diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index 1981a25..ba79964 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs @@ -430,7 +430,7 @@ namespace OpenSim.Region.Framework.Scenes public delegate void IncomingInstantMessage(GridInstantMessage message); public event IncomingInstantMessage OnIncomingInstantMessage; - public delegate void CrossAgentToNewRegion(ScenePresence sp, bool isFlying); + public delegate void CrossAgentToNewRegion(ScenePresence sp, bool isFlying, GridRegion newRegion); public event CrossAgentToNewRegion OnCrossAgentToNewRegion; public event IncomingInstantMessage OnUnhandledInstantMessage; @@ -1963,7 +1963,7 @@ namespace OpenSim.Region.Framework.Scenes } } - public void TriggerCrossAgentToNewRegion(ScenePresence agent, bool isFlying) + public void TriggerCrossAgentToNewRegion(ScenePresence agent, bool isFlying, GridRegion newRegion) { CrossAgentToNewRegion handlerCrossAgentToNewRegion = OnCrossAgentToNewRegion; if (handlerCrossAgentToNewRegion != null) @@ -1972,7 +1972,7 @@ namespace OpenSim.Region.Framework.Scenes { try { - d(agent, isFlying); + d(agent, isFlying, newRegion); } catch (Exception e) { -- cgit v1.1