using UnityEngine;
using System;
using System.Collections.Generic;

namespace mgaia.Utils
{
    /// <summary>
    /// Classe que gerencia o banco de dados com os todos os elementos que utilizam pool
    /// </summary>
    /// <owner>Victor</owner>
    public static class PoolDatabase
    {
        /// <summary>
        /// Retorna o caminho completo até o banco de dados
        /// </summary>
        /// <returns></returns>
        public static string GetPathForDatabase()
        {
            return PathHelper.CompletePathToAsset(typeof(PoolDatabaseScriptableObject).Name, Constants.ASSET_FILE_NAME_FORMAT, Constants.RESOURCES_FOLDER_NAME);
        }

        /// <summary>
        /// Retorna o registro do elemento de tipo passado
        /// </summary>
        public static PoolReference Reference<T>()
        {
            return ReferenceForAlias(typeof(T).Name);
        }

        /// <summary>
        /// Retorna o registro do elemento de alias passado por parâmetro
        /// </summary>
        public static PoolReference ReferenceForAlias(string alias)
        {
            return PoolDatabaseScriptableObject.Instance.PoolElementsReferences.First(poolReference => poolReference.Alias.Equals(alias));
        }
    }
}