using Cryville.Common.Font;
using System.Collections.Generic;
using UnityEngine;

namespace Cryville.EEW.Unity {
	internal static class PlatformConfig {
#if UNITY_STANDALONE_WIN
		public static readonly string Name = "windows";
#elif UNITY_ANDROID
		public static readonly string Name = "android";
#else
#error Unknown platform.
#endif
#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN
#if UNITY_EDITOR_WIN
		public static readonly string ConfigPath = Application.persistentDataPath;
#else
		public static readonly string ConfigPath = Application.dataPath;
#endif
		public static readonly string FileProtocolPrefix = "file:///";
		public static readonly FontManager FontManager = new FontManagerWindows();
		public static Dictionary<string, List<string>> ScriptFontMap => FallbackListFontMatcher.GetDefaultWindowsFallbackMap();
		public static readonly string TextShader = "TextMesh Pro/Shaders/TMP_SDF SSD";
#elif UNITY_ANDROID
		public static readonly string ConfigPath = Application.persistentDataPath;
		public static readonly string FileProtocolPrefix = "file://";
		public static readonly FontManager FontManager = new FontManagerAndroid();
		public static Dictionary<string, List<string>> ScriptFontMap => FallbackListFontMatcher.GetDefaultAndroidFallbackMap();
		public static readonly string TextShader = "TextMesh Pro/Shaders/TMP_SDF-Mobile SSD";
#else
#error Unknown platform.
#endif
	}
}
