Added the TriggerAvatarAppearanceChanged to EventManager. It's triggered by AvatarFactoryModule after an avatar's appearance has been succesfully changed and persisted (if the persist option is set).
parent
2ebb421331
commit
784263f5e3
|
@ -496,6 +496,10 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
|
||||||
SetAppearanceAssets(sp.UUID, sp.Appearance);
|
SetAppearanceAssets(sp.UUID, sp.Appearance);
|
||||||
|
|
||||||
m_scene.AvatarService.SetAppearance(agentid, sp.Appearance);
|
m_scene.AvatarService.SetAppearance(agentid, sp.Appearance);
|
||||||
|
|
||||||
|
// Trigger this here because it's the final step in the set/queue/save process for appearance setting.
|
||||||
|
// Everything has been updated and stored. Ensures bakes have been persisted (if option is set to persist bakes).
|
||||||
|
m_scene.EventManager.TriggerAvatarAppearanceChanged(sp);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetAppearanceAssets(UUID userID, AvatarAppearance appearance)
|
private void SetAppearanceAssets(UUID userID, AvatarAppearance appearance)
|
||||||
|
|
|
@ -173,6 +173,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
public delegate void AvatarEnteringNewParcel(ScenePresence avatar, int localLandID, UUID regionID);
|
public delegate void AvatarEnteringNewParcel(ScenePresence avatar, int localLandID, UUID regionID);
|
||||||
public event AvatarEnteringNewParcel OnAvatarEnteringNewParcel;
|
public event AvatarEnteringNewParcel OnAvatarEnteringNewParcel;
|
||||||
|
|
||||||
|
public delegate void AvatarAppearanceChange(ScenePresence avatar);
|
||||||
|
public event AvatarAppearanceChange OnAvatarAppearanceChange;
|
||||||
|
|
||||||
public event Action<ScenePresence> OnSignificantClientMovement;
|
public event Action<ScenePresence> OnSignificantClientMovement;
|
||||||
|
|
||||||
public delegate void IncomingInstantMessage(GridInstantMessage message);
|
public delegate void IncomingInstantMessage(GridInstantMessage message);
|
||||||
|
@ -1238,6 +1241,27 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void TriggerAvatarAppearanceChanged(ScenePresence avatar)
|
||||||
|
{
|
||||||
|
AvatarAppearanceChange handler = OnAvatarAppearanceChange;
|
||||||
|
if (handler != null)
|
||||||
|
{
|
||||||
|
foreach (AvatarAppearanceChange d in handler.GetInvocationList())
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
d(avatar);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
m_log.ErrorFormat(
|
||||||
|
"[EVENT MANAGER]: Delegate for TriggerAvatarAppearanceChanged failed - continuing. {0} {1}",
|
||||||
|
e.Message, e.StackTrace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void TriggerIncomingInstantMessage(GridInstantMessage message)
|
public void TriggerIncomingInstantMessage(GridInstantMessage message)
|
||||||
{
|
{
|
||||||
IncomingInstantMessage handlerIncomingInstantMessage = OnIncomingInstantMessage;
|
IncomingInstantMessage handlerIncomingInstantMessage = OnIncomingInstantMessage;
|
||||||
|
|
Loading…
Reference in New Issue