using UnityEditor;
using UnityEngine;
using System.IO;

namespace MJGameSDK.Editor
{
    public class MJGameSDKExporter
    {
        private const string SdkRoot = "Assets/MJGameSDK";
        private const string ExportDir = "Exports";

        [MenuItem("MJGameSDK/Export Package")]
        public static void ExportPackage()
        {
            if (!Directory.Exists(ExportDir))
                Directory.CreateDirectory(ExportDir);

            var version = MJGameSDKVersion.Version;
            var fileName = $"{ExportDir}/MJGameSDK_v{version}.unitypackage";

            AssetDatabase.ExportPackage(
                new[] { SdkRoot },
                fileName,
                ExportPackageOptions.Recurse);

            AssetDatabase.Refresh();
            Debug.Log($"[MJGameSDK] Exported to {fileName}");
            EditorUtility.DisplayDialog("MJGameSDK Export",
                $"SDK 已导出到:\n{fileName}", "OK");
        }

        [MenuItem("MJGameSDK/Create Default Config")]
        public static void CreateDefaultConfig()
        {
            var dir = "Assets/MJGameSDK/Resources";
            if (!Directory.Exists(dir))
                Directory.CreateDirectory(dir);

            var path = $"{dir}/MJGameConfig.asset";
            if (AssetDatabase.LoadAssetAtPath<MJGameConfig>(path) != null)
            {
                EditorUtility.DisplayDialog("MJGameSDK", "MJGameConfig.asset 已存在", "OK");
                return;
            }

            var config = ScriptableObject.CreateInstance<MJGameConfig>();
            AssetDatabase.CreateAsset(config, path);
            AssetDatabase.SaveAssets();
            EditorUtility.DisplayDialog("MJGameSDK",
                $"已创建配置文件:\n{path}", "OK");
        }
    }
}
