﻿using UnityEditor;
using UnityEngine;
using UnityEngine.Serialization;

namespace RKOKO.Config.Free.Editor
{
    public class Preferences : ScriptableObject
    {
        private static string PATH => "Assets/RKOKOConfigTableToolFree/Editor/RKOKO_CONFIG_TABLE_TOOL_FREE_PREFERENCES.asset";

        public static Preferences Default
        {
            get
            {
                if (_default == null)
                {
                    _default = AssetDatabase.LoadAssetAtPath<Preferences>(PATH);
                }

                if (_default == null)
                {
                    _default = CreateInstance<Preferences>();
                    AssetDatabase.CreateAsset(_default, PATH);
                    AssetDatabase.SaveAssets();
                }

                return _default;
            }
        }

        private static Preferences _default = null;

        [FormerlySerializedAs("Mode")]
        public JsonLoadMode JsonLoadMode = JsonLoadMode.Resources;
        public string CustomJsonExportPath = "Assets/RKOKOGenerated/Resources/RKOKOConfig";
        public CSharpExportMode CSharpExportMode = CSharpExportMode.Default;
        public string CustomCsharpExportPath = "Assets/RKOKOGenerated/Csharp";
        public bool EncryptJson = false;
        public string JsonEncryptKey = "123456";
        public bool BackUp = true;
    }
}