﻿
#if UNITY_EDITOR
using System.IO;
using UnityEngine;
using UnityEditor;
#endif

namespace BlackBox
{
    public partial class BlackBoxConfigAsset
    {
        public void Save()
        {
#if UNITY_EDITOR
            Dirty();
            AssetDatabase.SaveAssets();
#endif
        }
        
        public void Dirty()
        {
#if UNITY_EDITOR
            EditorUtility.SetDirty(this);
#endif
        }

        public static void CreateInstanceAsset(BlackBoxConfigAsset configAsset)
        {
#if UNITY_EDITOR
            EditorApplication.delayCall += () =>
            {
                if (configAsset == null)
                {
                    return;
                }
                var dir = "Assets/Resources/" + BlackBoxConfig.BLACKBOX_DIRECTORY;
                if (!AssetDatabase.IsValidFolder("Assets/Resources"))
                    AssetDatabase.CreateFolder("Assets", "Resources");
                if (!AssetDatabase.IsValidFolder(dir))
                    AssetDatabase.CreateFolder("Assets/Resources", BlackBoxConfig.BLACKBOX_DIRECTORY);

                var fullPath = dir + "/BlackBoxConfigAsset.asset";
                AssetDatabase.CreateAsset(configAsset, fullPath);
                AssetDatabase.SaveAssets();
            };
#endif
        }
    }
}