﻿using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
using UnityEngine;

namespace Yodo1.FanCraft
{
    public class SettingsManager
    {
        private static readonly string SP_RESOURCE_PATH = "Assets/Yodo1/FanCraft/Resources/";
        private static readonly string SP_SETTINGS_PATH = SP_RESOURCE_PATH + "FanCraftSettings.asset";

        public static FanCraftSettings Load()
        {
            FanCraftSettings settings = AssetDatabase.LoadAssetAtPath<FanCraftSettings>(SP_SETTINGS_PATH);
            if (settings == null)
            {
                settings = ScriptableObject.CreateInstance<FanCraftSettings>();
                try
                {
                    Debug.Log(FanCraftSDK.TAG + "Creating new FanCraftSettings.asset");
                    string resPath = Path.GetFullPath(SP_RESOURCE_PATH);
                    if (!Directory.Exists(resPath))
                    {
                        Directory.CreateDirectory(resPath);
                    }
                    AssetDatabase.CreateAsset(settings, SP_SETTINGS_PATH);
                    AssetDatabase.SaveAssets();

                    settings = AssetDatabase.LoadAssetAtPath<FanCraftSettings>(SP_SETTINGS_PATH);
                }
                catch (UnityException)
                {
                    Debug.LogError(FanCraftSDK.TAG + "Failed to create the FanCraftSettings.asset file.");
                }
            }
            return settings;
        }

        public static bool Save(FanCraftSettings settings)
        {
            EditorUtility.SetDirty(settings);
            AssetDatabase.SaveAssets();
            AssetDatabase.Refresh();

            if (settings == null)
            {
                string message = "FanCraft iOS settings is null, please check the configuration.";
                Debug.LogError(FanCraftSDK.TAG + message);
                return false;
            }
            return true;
        }

    }
}

