﻿using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;

namespace Arugula.Animation
{
    [CreateAssetMenu(fileName = "AnimatedSprite", menuName = "Arugula/Animated Sprite Data", order = 0)]
    public class AnimatedSpriteData : ScriptableObject
    {
        public AnimatedSprite.Skin[] skins;
        public AnimatedSprite.Sequence[] sequences;

        public AnimatedSprite.Sequence this[string name]
        {
            get
            {
                return sequences.FirstOrDefault(x => x.name == name);
            }
        }

        public AnimatedSprite.Sequence this[int index]
        {
            get
            {
                if (index < 0 || index >= sequences.Length)
                    return null;

                return sequences[index];
            }
        }

        public AnimatedSprite.Skin GetSkin(string name = null)
        {
            if (skins == null)
                return null;

            if (name == null && skins.Length > 0)
                return skins[0];

            return skins.FirstOrDefault(x => x.name == name);
        }
    }
}
