/*           INFINITY CODE          */
/*     https://infinity-code.com    */

using UnityEditor;
using UnityEngine;

namespace InfinityCode.TreeTools.Editors
{
    public static class Icons
    {
        private static Texture _duplicate;
        private static Texture _extract;
        private static Texture _help;
        private static Texture _inject;
        private static Texture _prefab;
        private static Texture _settings;
        private static Texture _snap;
        private static Texture _trash;
        private static Texture _updateAvailable;

        public static Texture duplicate
        {
            get
            {
                if (_duplicate == null) _duplicate = EditorGUIUtility.IconContent("TreeEditor.Duplicate").image;
                return _duplicate;
            }
        }

        public static Texture extract
        {
            get
            {
                if (_extract == null) _extract = EditorGUIUtility.IconContent("SceneLoadOut").image;
                return _extract;
            }
        }

        public static Texture help
        {
            get
            {
                if (_help == null) _help = EditorGUIUtility.IconContent("_Help").image;
                return _help;
            }
        }

        public static Texture inject
        {
            get
            {
                if (_inject == null) _inject = EditorGUIUtility.IconContent("SceneLoadIn").image;
                return _inject;
            }
        }

        public static Texture prefab
        {
            get
            {
                if (_prefab == null) _prefab = EditorGUIUtility.IconContent("PrefabModel Icon").image;
                return _prefab;
            }
        }

        public static Texture settings
        {
            get
            {
                if (_settings == null) _settings = EditorGUIUtility.IconContent("Settings").image;
                return _settings;
            }
        }

        public static Texture snap
        {
            get
            {
                if (_snap == null) _snap = EditorGUIUtility.IconContent("TerrainInspector.TerrainToolLowerAlt").image;
                return _snap;
            }
        }

        public static Texture trash
        {
            get
            {
                if (_trash == null) _trash = EditorGUIUtility.IconContent("TreeEditor.Trash").image;
                return _trash;
            }
        }

        public static Texture updateAvailable
        {
            get
            {
                if (_updateAvailable == null) _updateAvailable = AssetDatabase.LoadAssetAtPath<Texture>(Utils.assetFolder + "Textures/Icons/Update-Available.png");
                return _updateAvailable;
            }
        }
    }
}