#if UNITY_EDITOR
using UnityEditor;
#endif
namespace SRF.Helpers
{
    using System.IO;
    using UnityEngine;
    public static class AssetUtil
    {
#if UNITY_EDITOR
        //	This makes it easy to create, name and place unique new ScriptableObject asset files.
        /// 
        /// 
        public static T CreateAsset() where T : ScriptableObject
        {
            var path = AssetDatabase.GetAssetPath(Selection.activeObject);
            if (path == "")
            {
                path = "Assets";
            }
            else if (Path.GetExtension(path) != "")
            {
                path = path.Replace(Path.GetFileName(path), "");
            }
            return CreateAsset(path, "New " + typeof (T).Name);
        }
        public static T CreateAsset(string path, string name) where T : ScriptableObject
        {
            if (string.IsNullOrEmpty(path))
            {
                path = "Assets";
            }
            if (!name.EndsWith(".asset"))
            {
                name += ".asset";
            }
            var assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(path + "/" + name);
            var asset = ScriptableObject.CreateInstance();
            AssetDatabase.CreateAsset(asset, assetPathAndName);
            AssetDatabase.SaveAssets();
            return asset;
        }
        public static void SelectAssetInProjectView(Object asset)
        {
            EditorUtility.FocusProjectWindow();
            Selection.activeObject = asset;
        }
#endif
    }
}