OpenSim.Region.ScriptEngine.Shared.Api.LSL_Api.llGetAnimationOverride C# (CSharp) Method

llGetAnimationOverride() public method

public llGetAnimationOverride ( OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString animState ) : OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString
animState OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString
return OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString
        public LSL_String llGetAnimationOverride(LSL_String animState)
        {
            ScenePresence presence = World.GetScenePresence(m_item.PermsGranter);
            if (presence == null)
                return String.Empty;

            if (m_item.PermsGranter == UUID.Zero)
            {
                llShout(ScriptBaseClass.DEBUG_CHANNEL, "No permission to override animations");
                return String.Empty;
            }

            if ((m_item.PermsMask & (ScriptBaseClass.PERMISSION_OVERRIDE_ANIMATIONS | ScriptBaseClass.PERMISSION_TRIGGER_ANIMATION)) == 0)
            {
                llShout(ScriptBaseClass.DEBUG_CHANNEL, "No permission to override animations");
                return String.Empty;
            }

            string state = String.Empty;

            foreach (KeyValuePair<string, string> kvp in MovementAnimationsForLSL)
            {
                if (kvp.Value.ToLower() == ((string)animState).ToLower())
                {
                    state = kvp.Key;
                    break;
                }
            }

            if (state == String.Empty)
            {
                return String.Empty;
            }

            UUID animID = presence.GetAnimationOverride(state);
            if (animID == UUID.Zero)
                return animState;

            foreach (KeyValuePair<string, UUID> kvp in DefaultAvatarAnimations.AnimsUUID)
            {
                if (kvp.Value == animID)
                    return kvp.Key.ToLower();
            }

            foreach (TaskInventoryItem item in m_host.Inventory.GetInventoryItems())
            {
                if (item.AssetID == animID)
                    return item.Name;
            }

            return String.Empty;
        }
LSL_Api