Esempio n. 1
0
        void node_AnimationEnd(AnimatedMeshSceneNode node)
        {
            if (node == null)
                return;

            if (!list.ContainsKey(node.Name))
                return;

            node.JointMode = JointUpdateOnRenderMode.None;

            AvatarAnimationData aad = list[node.Name].Animation;
            if (aad == null)
                return;

            if (AK.IsLoopAnimation(aad.Current))
                node.LoopMode = true;
        }
Esempio n. 2
0
        public void AnimationEndHandler(AnimatedMeshSceneNode _node)
        {
            try
            {
                if (FrameSetList.ContainsKey(animationNext.Key))
                {
                    int startFrame = FrameSetList[animationNext.Key].StartFrame;
                    int endFrame = FrameSetList[animationNext.Key].EndFrame;
                    int animFramesPerSecond = FrameSetList[animationNext.Key].AnimationSpeed;

                    AnimationSpeed = animFramesPerSecond;
                    SetAnimation(animationNext.Key, startFrame, endFrame, animationNext.Loop);
                    SyncToChilds(_node);
                }
            }
            finally
            {
                animationNext = Animation.Empty;
            }
        }
Esempio n. 3
0
        private void animeNode_AnimationEnd(AnimatedMeshSceneNode node)
        {
            VObject targetVObj = GetVObjectFromMeshRaw(node.Raw);

            if (targetVObj == null || targetVObj.MeshNode == null)
                return;

            Reference.Viewer.Adapter.CallAnimationEndEvent(userObject.AnimationCurrentName);

            if (userObject != null && userObject.MeshNode != null && userObject.MeshNode.Raw == targetVObj.MeshNode.Raw)
            {
                bool custAnim = false;
                foreach (UUID uuid in UtilityAnimation.CUSTOM_ANIMATIONS)
                    custAnim = custAnim || StopAnimationIfIsKeyCurrentAnimation(uuid);
                if (custAnim)
                {
                }
            }

            if (!string.IsNullOrEmpty(targetVObj.AnimationNext.Key))
            {
                StopAnimationIfIsKeyCurrentAnimation(targetVObj.CurrentAnimationUUID);
                SetAnimation(targetVObj, targetVObj.AnimationNext.Key);
            }
        }
Esempio n. 4
0
        public void AnimationEndHandler(AnimatedMeshSceneNode _node)
        {
            try
            {
                if (FrameSetList.ContainsKey(nextAnimation))
                {
                    int startFrame = FrameSetList[nextAnimation].StartFrame;
                    int endFrame = FrameSetList[nextAnimation].EndFrame;
                    int animFramesPerSecond = FrameSetList[nextAnimation].AnimationSpeed;

                    AnimationSpeed = animFramesPerSecond;
                    SetAnimation(nextAnimation, startFrame, endFrame, true);
                    SyncToChilds(_node);

                    VUtil.LogConsole(this.ToString(), "AnimationEndHandler: ContainsKey:" + nextAnimation + " Speed:" + animFramesPerSecond.ToString() + " Start:" + startFrame.ToString() + " End:" + endFrame.ToString());
                }
            }
            finally
            {
                nextAnimation = string.Empty;
            }
        }