using System;
using UnityEngine;

namespace AlicizaX.UI
{
    public abstract class ControllerStateBase
    {
        public abstract void Init(UXControllerStateRecorder recorder);
        public abstract void Execute(UXControllerStateRecorder recorder, int entryIndex, int selectionIndex);
        public abstract bool Valid(UXControllerStateRecorder recorder);
    }

    [AttributeUsage(AttributeTargets.Class)]
    public class ControlerStateNameAttribute : Attribute
    {
        public string StateName;

        public ControlerStateNameAttribute(string stateName)
        {
            StateName = stateName;
        }
    }

    [AttributeUsage(AttributeTargets.Class)]
    public class ControlerStateAttachTypeAttribute : Attribute
    {
        public bool Repeat;

        public ControlerStateAttachTypeAttribute(bool repeat)
        {
            Repeat = repeat;
        }
    }
}
