private void AvatarPlayAnimation(string avatar, string animation)
{
m_host.AddScriptLPS(1);
UUID avatarID;
if(!UUID.TryParse(avatar, out avatarID))
return;
if(!World.Entities.ContainsKey(avatarID))
return;
ScenePresence target = null;
if ((World.Entities[avatarID] is ScenePresence))
target = (ScenePresence)World.Entities[avatarID];
if (target == null)
return;
UUID animID = UUID.Zero;
m_host.TaskInventory.LockItemsForRead(true);
foreach (KeyValuePair<UUID, TaskInventoryItem> inv in m_host.TaskInventory)
{
if (inv.Value.Type == (int)AssetType.Animation)
{
if (inv.Value.Name == animation)
{
animID = inv.Value.AssetID;
break;
}
}
}
m_host.TaskInventory.LockItemsForRead(false);
if (animID == UUID.Zero)
target.Animator.AddAnimation(animation, m_host.UUID);
else
target.Animator.AddAnimation(animID, m_host.UUID);
}