private void SwitchScml()
 {
     int index = animators.IndexOf(currentAnimator);
     ++index;
     if (index >= animators.Count) index = 0;
     currentAnimator = animators[index];
 }
        protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);

            spriteFont = Content.Load<SpriteFont>(FontName);
            Vector2 charPosition = new Vector2(Width / 2.0f, Height / 1.5f);

            foreach (var pair in Scmls)
            {
                string scmlPath = pair.Key;
                string spriterName = pair.Value;
                string data = File.ReadAllText(scmlPath);
                Spriter spriter = SpriterParser.Parse(data);

                var animator = new MonogameSpriterAnimator(spriter.Entities[0], charPosition, spriteBatch);
                RegisterTextures(animator, spriter, spriterName);

                animators.Add(animator);
            }

            currentAnimator = animators.First();
        }
        private void RegisterTextures(MonogameSpriterAnimator animator, Spriter spriter, string spriterName)
        {
            foreach (SpriterFolder folder in spriter.Folders)
            {
                foreach (SpriterFile file in folder.Files)
                {
                    string path = FormatPath(folder, file, spriterName);
                    Texture2D texture = null;
                    try
                    {
                        texture = Content.Load<Texture2D>(path);
                    }
                    catch
                    {
                        Debug.WriteLine("Missing Texture: " + path);
                    }
                    if (texture == null) continue;

                    animator.Register(folder.Id, file.Id, texture);
                }
            }
        }