﻿using System;
using UnityEngine;

namespace JLGames.RocketDriver.Games.RpgMaterial.Common
{
    [Serializable]
    public class MetaOper
    {
        [Tooltip("Oper mark\n操作码位")] [SerializeField] protected int m_OperMark;

        /// <summary>
        /// Oper mark
        /// 操作码
        /// </summary>
        public int OperMark => m_OperMark;

        public override string ToString()
        {
            return $"{{Mark={OperMark},MarkBin={Convert.ToString(m_OperMark, 2)}}}";
        }

        public MetaOper()
        {
        }

        public MetaOper(int operMark)
        {
            m_OperMark = operMark;
        }

        /// <summary>
        /// Check if the nth code point is 1
        /// 检查第n个码位是否为1
        /// </summary>
        /// <param name="index"></param>
        /// <returns></returns>
        public bool CheckOperability(int index)
        {
            return ((1 << index) & m_OperMark) > 0;
        }
    }
}