aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/EventManager.cs13
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs3
2 files changed, 12 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs
index bf9ad65..4906665 100644
--- a/OpenSim/Region/Framework/Scenes/EventManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EventManager.cs
@@ -212,10 +212,15 @@ namespace OpenSim.Region.Framework.Scenes
212 public delegate void OnMakeChildAgentDelegate(ScenePresence presence); 212 public delegate void OnMakeChildAgentDelegate(ScenePresence presence);
213 public event OnMakeChildAgentDelegate OnMakeChildAgent; 213 public event OnMakeChildAgentDelegate OnMakeChildAgent;
214 214
215 public delegate void OnMakeRootAgentDelegate(ScenePresence presence);
216 public delegate void OnSaveNewWindlightProfileDelegate(); 215 public delegate void OnSaveNewWindlightProfileDelegate();
217 public delegate void OnSendNewWindlightProfileTargetedDelegate(RegionLightShareData wl, UUID user); 216 public delegate void OnSendNewWindlightProfileTargetedDelegate(RegionLightShareData wl, UUID user);
218 public event OnMakeRootAgentDelegate OnMakeRootAgent; 217
218 /// <summary>
219 /// This event is on the critical path for transferring an avatar from one region to another. Try and do
220 /// as little work on this event as possible, or do work asynchronously.
221 /// </summary>
222 public event Action<ScenePresence> OnMakeRootAgent;
223
219 public event OnSendNewWindlightProfileTargetedDelegate OnSendNewWindlightProfileTargeted; 224 public event OnSendNewWindlightProfileTargetedDelegate OnSendNewWindlightProfileTargeted;
220 public event OnSaveNewWindlightProfileDelegate OnSaveNewWindlightProfile; 225 public event OnSaveNewWindlightProfileDelegate OnSaveNewWindlightProfile;
221 226
@@ -1322,10 +1327,10 @@ namespace OpenSim.Region.Framework.Scenes
1322 1327
1323 public void TriggerOnMakeRootAgent(ScenePresence presence) 1328 public void TriggerOnMakeRootAgent(ScenePresence presence)
1324 { 1329 {
1325 OnMakeRootAgentDelegate handlerMakeRootAgent = OnMakeRootAgent; 1330 Action<ScenePresence> handlerMakeRootAgent = OnMakeRootAgent;
1326 if (handlerMakeRootAgent != null) 1331 if (handlerMakeRootAgent != null)
1327 { 1332 {
1328 foreach (OnMakeRootAgentDelegate d in handlerMakeRootAgent.GetInvocationList()) 1333 foreach (Action<ScenePresence> d in handlerMakeRootAgent.GetInvocationList())
1329 { 1334 {
1330 try 1335 try
1331 { 1336 {
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 189394e..5587073 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -865,6 +865,9 @@ namespace OpenSim.Region.Framework.Scenes
865 /// avatar is actual in the sim. They can perform all actions. 865 /// avatar is actual in the sim. They can perform all actions.
866 /// This change is made whenever an avatar enters a region, whether by crossing over from a neighbouring sim, 866 /// This change is made whenever an avatar enters a region, whether by crossing over from a neighbouring sim,
867 /// teleporting in or on initial login. 867 /// teleporting in or on initial login.
868 ///
869 /// This method is on the critical path for transferring an avatar from one region to another. Delay here
870 /// delays that crossing.
868 /// </summary> 871 /// </summary>
869 public void MakeRootAgent(Vector3 pos, bool isFlying) 872 public void MakeRootAgent(Vector3 pos, bool isFlying)
870 { 873 {