Radegast.Rendering.SceneWindow.UpdateAvatarAnimations C# (CSharp) Method

UpdateAvatarAnimations() private method

private UpdateAvatarAnimations ( RenderAvatar av ) : void
av RenderAvatar
return void
        private void UpdateAvatarAnimations(RenderAvatar av)
        {
            if (av.avatar.Animations == null) return;

            av.glavatar.skel.flushanimations();
            foreach (Animation anim in av.avatar.Animations)
            {
                //Console.WriteLine(string.Format("AvatarAnimationChanged {0} {1}", anim.AnimationID, anim.AnimationSequence));

                // Don't play internal turn 180 animations
                if (anim.AnimationID == new UUID("038fcec9-5ebd-8a8e-0e2e-6e71a0a1ac53"))
                    continue;

                if (anim.AnimationID == new UUID("6883a61a-b27b-5914-a61e-dda118a9ee2c"))
                    continue;

                av.glavatar.skel.processAnimation(anim.AnimationID);

                int nofails = 0;
                if (AssetFetchFailCount.TryGetValue(anim.AnimationID, out nofails))
                {
                    if (nofails >= 5)
                        continue; // asset fetch has failed 5 times, give up.
                }

                UUID tid = UUID.Random();
                skeleton.mAnimationTransactions.Add(tid, av);

                BinBVHAnimationReader bvh;
                if (skeleton.mAnimationCache.TryGetValue(anim.AnimationID, out bvh))
                {
                    skeleton.addanimation(null, tid, bvh, anim.AnimationID);
                    continue;
                }

                Logger.Log("Requesting new animation asset " + anim.AnimationID.ToString(), Helpers.LogLevel.Info);

                Client.Assets.RequestAsset(anim.AnimationID, AssetType.Animation, false, SourceType.Asset, tid, animRecievedCallback);
            }

            av.glavatar.skel.flushanimationsfinal();
            skeleton.recalcpriorities(av);
        }
SceneWindow