Aurora.ScriptEngine.AuroraDotNetEngine.APIs.LSL_Api.llStartAnimation C# (CSharp) Method

llStartAnimation() public method

public llStartAnimation ( string anim ) : void
anim string
return void
        public void llStartAnimation(string anim)
        {
            if (!ScriptProtection.CheckThreatLevel(ThreatLevel.None, "LSL", m_host, "LSL", m_itemID)) return;


            UUID invItemID = InventorySelf();
            if (invItemID == UUID.Zero)
                return;

            TaskInventoryItem item;

            lock (m_host.TaskInventory)
            {
                if (!m_host.TaskInventory.ContainsKey(InventorySelf()))
                    return;
                item = m_host.TaskInventory[InventorySelf()];
            }

            if (item.PermsGranter == UUID.Zero)
                return;

            if ((item.PermsMask & ScriptBaseClass.PERMISSION_TRIGGER_ANIMATION) != 0)
            {
                IScenePresence presence = World.GetScenePresence(item.PermsGranter);

                if (presence != null)
                {
                    // Do NOT try to parse UUID, animations cannot be triggered by ID
                    UUID animID = InventoryKey(anim, (int)AssetType.Animation);
                    if (animID == UUID.Zero)
                    {
                        if (UUID.TryParse(anim, out animID))
                            presence.Animator.AddAnimation(animID, m_host.UUID);
                        else
                        {
                            bool RetVal = presence.Animator.AddAnimation(anim, m_host.UUID);
                            if (!RetVal)
                            {
                                IChatModule chatModule = World.RequestModuleInterface<IChatModule>();
                                if (chatModule != null)
                                    chatModule.SimChat("Could not find animation '" + anim + "'.",
                                        ChatTypeEnum.DebugChannel, 2147483647, m_host.AbsolutePosition,
                                        m_host.Name, m_host.UUID, false, World);
                            }
                        }
                    }
                    else
                        presence.Animator.AddAnimation(animID, m_host.UUID);
                }
            }
        }
LSL_Api