using UnityEngine;

public class MecanimStateBase : MonoBehaviour
{
	[SerializeField]
	private string m_openStateName;

	[SerializeField]
	private string m_closeStateName;

	[SerializeField]
	private MecanimStateBase m_autoNextState;

	public string OpenStateName
	{
		get
		{
			return m_openStateName;
		}
		set
		{
			m_openStateName = value;
		}
	}

	public string CloseStateName
	{
		get
		{
			return m_closeStateName;
		}
		set
		{
			m_closeStateName = value;
		}
	}

	public MecanimStateBase NextState
	{
		get
		{
			return m_autoNextState;
		}
		set
		{
			m_autoNextState = value;
		}
	}

	public bool DontMove { get; private set; }

	public virtual bool onOpenRequest(MecanimStateBase prev, bool isSkip)
	{
		return true;
	}

	public virtual void onOpen()
	{
		DontMove = false;
	}

	public virtual void onUpdateOpenAnim()
	{
	}

	public virtual void onFinishOpenAnim()
	{
	}

	public virtual bool onCloseRequest(MecanimStateBase next, bool isSkip)
	{
		return true;
	}

	public virtual void onClose()
	{
		DontMove = true;
	}

	public virtual void onUpdateCloseAnim()
	{
	}

	public virtual void onFinishCloseAnim()
	{
	}

	public virtual void onMove()
	{
	}

	public virtual void onNotify(int value)
	{
	}
}
