Add EventManager.OnSceneObjectLoaded() for future use. This is fired immediately after a scene object is loaded from storage.

This commit is contained in:
Justin Clark-Casey (justincc)
2010-07-26 20:13:26 +01:00
parent afdbeba4e4
commit 586ae0f6a0
3 changed files with 46 additions and 9 deletions

View File

@@ -331,9 +331,16 @@ namespace OpenSim.Region.Framework.Scenes
/// the avatarID is UUID.Zero (I know, this doesn't make much sense but now it's historical).
public delegate void Attach(uint localID, UUID itemID, UUID avatarID);
public event Attach OnAttach;
public delegate void SceneObjectDelegate(SceneObjectGroup so);
/// <summary>
/// Called immediately after an object is loaded from storage.
/// </summary>
public event SceneObjectDelegate OnSceneObjectLoaded;
public delegate void RegionUp(GridRegion region);
public event RegionUp OnRegionUp;
public event RegionUp OnRegionUp;
public class MoneyTransferArgs : EventArgs
{
@@ -2013,5 +2020,26 @@ namespace OpenSim.Region.Framework.Scenes
}
}
}
public void TriggerOnSceneObjectLoaded(SceneObjectGroup so)
{
SceneObjectDelegate handler = OnSceneObjectLoaded;
if (handler != null)
{
foreach (SceneObjectDelegate d in handler.GetInvocationList())
{
try
{
d(so);
}
catch (Exception e)
{
m_log.ErrorFormat(
"[EVENT MANAGER]: Delegate for TriggerOnSceneObjectLoaded failed - continuing. {0} {1}",
e.Message, e.StackTrace);
}
}
}
}
}
}
}