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

llSetAnimationOverride() public method

public llSetAnimationOverride ( OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString animState, OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString anim ) : void
animState OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString
anim OpenSim.Region.ScriptEngine.Shared.LSL_Types.LSLString
return void
        public void llSetAnimationOverride(LSL_String animState, LSL_String anim)
        {
            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)
            {
                llShout(ScriptBaseClass.DEBUG_CHANNEL, "Invalid animation state " + animState);
                return;
            }

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

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

            ScenePresence presence = World.GetScenePresence(m_item.PermsGranter);

            if (presence == null)
                return;

            UUID animID;

            animID = ScriptUtils.GetAssetIdFromItemName(m_host, anim, (int)AssetType.Animation);

            if (animID == UUID.Zero)
            {
                String animupper = ((string)anim).ToUpperInvariant();
                DefaultAvatarAnimations.AnimsUUID.TryGetValue(animupper, out animID);
            }

            if (animID == UUID.Zero)
            {
                llShout(ScriptBaseClass.DEBUG_CHANNEL, "Animation not found");
                return;
            }

            presence.SetAnimationOverride(state, animID);
        }
LSL_Api