using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using YooAsset;
using Cysharp.Threading.Tasks;

public class Boot : MonoBehaviour
{
    ///<summary>��Դ��</summary>
    public static ResourcePackage package;
    private async void Awake()
    {
        Application.targetFrameRate = 60;
        if (await InitYooAsset() == EOperationStatus.Succeed)
        {
            gameObject.AddComponent<GameManager>();
        }
    }

    /// <summary>
    /// ��ʼ��YooAsset
    /// </summary>
    /// <returns></returns>
    public async UniTask<EOperationStatus> InitYooAsset()
    {
        YooAssets.Initialize();
        var package = YooAssets.CreatePackage("DefaultPackage");
        YooAssets.SetDefaultPackage(package);
        InitializationOperation operation = null;
#if UNITY_EDITOR
        var initParameters = new EditorSimulateModeParameters();
        var simulateManifestFilePath = EditorSimulateModeHelper.SimulateBuild(EDefaultBuildPipeline.BuiltinBuildPipeline, "DefaultPackage");
        initParameters.SimulateManifestFilePath = simulateManifestFilePath;
        operation = package.InitializeAsync(initParameters);
        await operation.Task;
#else
        var initParameters = new OfflinePlayModeParameters();
        operation = package.InitializeAsync(initParameters);
        await operation.Task;
#endif
        return operation.Status;
    }




    /// <summary>
    /// Զ����Դ��ַ��ѯ������
    /// </summary>
    private class RemoteServices : IRemoteServices
    {
        private readonly string _defaultHostServer;
        private readonly string _fallbackHostServer;

        public RemoteServices(string defaultHostServer, string fallbackHostServer)
        {
            _defaultHostServer = defaultHostServer;
            _fallbackHostServer = fallbackHostServer;
        }

        string IRemoteServices.GetRemoteMainURL(string fileName)
        {
            return $"{_defaultHostServer}/{fileName}";
        }

        string IRemoteServices.GetRemoteFallbackURL(string fileName)
        {
            return $"{_fallbackHostServer}/{fileName}";
        }
    }

 
}