﻿using JLGames.RocketDriver.Actions.Loaderx;
using UnityEngine;

namespace JLGames.RocketDriver.Actions.i18n
{
    public sealed class I18NtLoader : II18NLoaderAdapter
    {
        private string m_BundleName;

        public void SetFileBundle(string bundleName)
        {
            m_BundleName = bundleName;
        }

        public void LoadFile(string filePath, I18NDelegate.OnLoadText onLoadText)
        {
            LoadFile(m_BundleName, filePath, onLoadText);
        }

        public void LoadFile(string bundleName, string filePath, I18NDelegate.OnLoadText onLoadText)
        {
            Loader.LoadBundleAsync(bundleName, (bundleRef, suc) =>
            {
                if (!suc)
                {
                    onLoadText.Invoke(null, false);
                    return;
                }

                var sprite = Loader.LoadAssetSync<TextAsset>(filePath, bundleRef.Bundle);
                if (null == sprite)
                {
                    onLoadText.Invoke(null, false);
                    return;
                }

                onLoadText.Invoke(sprite, true);
            });
        }
    }
}