diff options
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/EventManager.cs | 13 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 3 |
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 | { |