using UnityEngine;
using System.Collections.Generic;

namespace BingoBrain.Core
{
    public static class UIInfoConst
    {
        public static Color DefaultUIMaskColor = new Color(0, 0, 0, 0.8f);
    }

    public class UIInfo
    {
        public string packageName = null;
        public string assetName = null;

        public UILayerType layerType = UILayerType.Normal;
        public UIGComType gComType = UIGComType.GComponent;
        public UIType uiType = UIType.NormalUI;

        public uint openUIMsgId = 0;
        public uint closeUIMsgId = 0;


        public bool isCache = false;


        public bool isSwitchSceneCloseUI = false;


        public bool isTickUpdate = false;


        public bool isClosetWorldRaycast = false;


        public bool isNeedOpenAnim = false;


        public bool isNeedCloseAnim = false;


        public bool isNeedUIMask = false;


        public bool isNeedUIMaskCloseEvent = false;


        public Color uiMaskCustomColor = UIInfoConst.DefaultUIMaskColor;
    }

    public enum UILayerType : int
    {
        None = -1,

        Background = 0,
        Bottom = 1,

        Normal = 2,
        Top = 3,

        FullScreen = 4,
        Popup = 5,

        Highest = 6,
        Animation = 7,
        Tips = 8,

        Loading = 9,
        System = 10,
        NetworkError = 11,
    }

    public enum UIGComType : int
    {
        GComponent = 0,
        Window = 1,
    }

    public enum UIType : int
    {
        NormalUI = 0,
        FullScreenUI = 1,
        ConfirmationUI = 2,
    }


    public class EnumComparer_UILayerType : IEqualityComparer<UILayerType>
    {
        public static EnumComparer_UILayerType Instance = new EnumComparer_UILayerType();

        public bool Equals(UILayerType x, UILayerType y)
        {
            return (int)x == (int)y;
        }

        public int GetHashCode(UILayerType obj)
        {
            return (int)obj;
        }
    }
}