You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CrowdControl/Assets/PlayerPrefsEditor/Editor Resources/ImageManager.cs

225 lines
6.6 KiB
C#

#if UNITY_EDITOR
using System;
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEngine;
namespace BgTools.Utils
{
public class ImageManager
{
// Keep this ID unique
private static readonly string ID = "[PlayerPrefsEditor] com.bgtools.playerprefseditor";
private static string imageManagerPath;
private static string GetAssetDir()
{
if (imageManagerPath != null)
{
return imageManagerPath;
}
foreach (string assetGuid in AssetDatabase.FindAssets("ImageManager"))
{
string assetPath = AssetDatabase.GUIDToAssetPath(assetGuid);
string fileName = Path.GetFileName(assetPath);
if (fileName.Equals("ImageManager.cs"))
{
// Check ID if it's the correct ImageManager
if (File.ReadLines(Path.GetFullPath(assetPath)).Any(line => line.Contains(ID)))
{
imageManagerPath = Path.GetDirectoryName(assetPath) + Path.DirectorySeparatorChar;
return imageManagerPath;
}
}
}
throw new Exception("Cannot find ImageManager.cs in the project. Are sure all the files in place?");
}
public static Texture2D GetOsIcon()
{
#if UNITY_EDITOR_WIN
return OsWinIcon;
#elif UNITY_EDITOR_OSX
return OsMacIcon;
#elif UNITY_EDITOR_LINUX
return OsLinuxIcon;
#endif
}
private static Texture2D osLinuxIcon;
public static Texture2D OsLinuxIcon
{
get
{
if (osLinuxIcon == null)
{
osLinuxIcon = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "os_linux_icon.png", typeof(Texture2D));
}
return osLinuxIcon;
}
}
private static Texture2D osWinIcon;
public static Texture2D OsWinIcon
{
get
{
if (osWinIcon == null)
{
osWinIcon = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "os_win_icon.png", typeof(Texture2D));
}
return osWinIcon;
}
}
private static Texture2D osMacIcon;
public static Texture2D OsMacIcon
{
get
{
if (osMacIcon == null)
{
osMacIcon = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "os_mac_icon.png", typeof(Texture2D));
}
return osMacIcon;
}
}
private static GUIContent[] spinWheelIcons;
public static GUIContent[] SpinWheelIcons
{
get
{
if(spinWheelIcons == null)
{
spinWheelIcons = new GUIContent[12];
for (int i = 0; i < 12; i++)
spinWheelIcons[i] = EditorGUIUtility.IconContent("WaitSpin" + i.ToString("00"));
}
return spinWheelIcons;
}
}
private static Texture2D refresh;
public static Texture2D Refresh
{
get
{
if (refresh == null)
{
refresh = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "refresh.png", typeof(Texture2D));
}
return refresh;
}
}
private static Texture2D trash;
public static Texture2D Trash
{
get
{
if (trash == null)
{
trash = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "trash.png", typeof(Texture2D));
}
return trash;
}
}
private static Texture2D exclamation;
public static Texture2D Exclamation
{
get
{
if(exclamation == null)
{
exclamation = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "exclamation.png", typeof(Texture2D));
}
return exclamation;
}
}
private static Texture2D info;
public static Texture2D Info
{
get
{
if (info == null)
{
info = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "info.png", typeof(Texture2D));
}
return info;
}
}
private static Texture2D watching;
public static Texture2D Watching
{
get
{
if(watching == null)
{
watching = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "watching.png", typeof(Texture2D));
}
return watching;
}
}
private static Texture2D notWatching;
public static Texture2D NotWatching
{
get
{
if (notWatching == null)
{
notWatching = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "not_watching.png", typeof(Texture2D));
}
return notWatching;
}
}
private static Texture2D sortDisabled;
public static Texture2D SortDisabled
{
get
{
if (sortDisabled == null)
{
sortDisabled = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "sort.png", typeof(Texture2D));
}
return sortDisabled;
}
}
private static Texture2D sortAsscending;
public static Texture2D SortAsscending
{
get
{
if (sortAsscending == null)
{
sortAsscending = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "sort_asc.png", typeof(Texture2D));
}
return sortAsscending;
}
}
private static Texture2D sortDescending;
public static Texture2D SortDescending
{
get
{
if (sortDescending == null)
{
sortDescending = (Texture2D)AssetDatabase.LoadAssetAtPath(GetAssetDir() + "sort_desc.png", typeof(Texture2D));
}
return sortDescending;
}
}
}
}
#endif