#if !COMBAT_SERVER
using System.IO;
using UnityEngine;
namespace Fort23.Core
{
    public static class PathHelper
    {
        /// 
        ///应用程序外部资源路径存放路径(热更新资源路径)
        /// 
        public static string AppHotfixResPath
        {
            get
            {
                if (!Directory.Exists($"{Application.persistentDataPath}/{Application.identifier}/"))
                {
                    Debug.Log("创建目录:" + $"{Application.persistentDataPath}/{Application.identifier}/");
                    Directory.CreateDirectory($"{Application.persistentDataPath}/{Application.identifier}/");
                }
                return $"{Application.persistentDataPath}/{Application.identifier}/";
            }
        }
        /// 
        /// 应用程序内部资源路径存放路径
        /// 
        public static string AppResPath
        {
            get
            {
#if UNITY_EDITOR
                return Application.streamingAssetsPath;
#elif UNITY_ANDROID
                return Application.streamingAssetsPath;
#elif UNITY_IOS
                return Application.streamingAssetsPath;
#else
                return Application.streamingAssetsPath;
#endif
            }
        }
        /// 
        /// 应用程序内部资源路径存放路径(www/webrequest专用)
        /// 
        public static string AppResPath4Web
        {
            get
            {
#if UNITY_IOS || UNITY_STANDALONE_OSX
                return $"file://{Application.streamingAssetsPath}";
#else
                return Application.streamingAssetsPath;
#endif
            }
        }
        public static string GetWebRequestPath(string resourceName)
        {
            string p = GetResPath(resourceName);
            // webRequest要加file://
            if (!p.Contains("://"))
            {
                p = "file://" + p;
            }
            return p;
        }
        /// 
        /// 先从热更路径读取(表示已经热更过),在从内部路径读取(Application.streamingAssetsPath不能用File.Exists判断,无效)
        /// 
        /// 
        /// 
        private static string GetResPath(string resourceName)
        {
            string p = Path.Combine(AppHotfixResPath, resourceName);
            if (!File.Exists(p))
            {
                p = Path.Combine(Application.streamingAssetsPath, resourceName);
            }
            return p;
        }
    }
}
#endif