﻿/*
<copyright file="BGAssetLoaderYooAsset.cs" company="BansheeGz">
    Copyright (c) 2018-2022 All Rights Reserved
</copyright>
*/

using YooAsset;

namespace BansheeGz.BGDatabase
{
    /// <summary>
    /// loader for loading assets from Resources folder
    /// </summary>
    [BGPlugin(Version = "0.9.1")] 
    [AssetLoaderDescriptor(Name = "YooAsset", ManagerType = "BansheeGz.BGDatabase.Editor.BGAssetLoaderManagerYooAsset")]
    public class BGAssetLoaderYooAsset : BGAssetLoaderA
    {
        /// <inheritdoc />
        public override string Name => "YooAsset";

        /// <inheritdoc />
        public override T Load<T>(string path)
        {
            if (string.IsNullOrEmpty(path)) return null;
            return (T) YooAssets.LoadAssetSync<T>(path).AssetObject;
        }

        /// <inheritdoc />
        public override T[] LoadAll<T>(string path)
        {
            if (string.IsNullOrEmpty(path)) return null;
            var result = YooAssets.LoadSubAssetsSync<T>(path).AllAssetObjects;
            if (result == null || result.Length==0) return null;
            var resultT = new T[result.Length];
            for (var i = 0; i < result.Length; i++) resultT[i] = (T)result[i];
            return resultT;
        }
    }
}