using System;
namespace LaserWelder.StateMachine
{
public abstract class StateBase : ICanExcuteMsg,ICloneable
{
public abstract void Update();
public abstract StateType Type { get; }
public abstract void Enter(StateType oldState);
public abstract void Exit(StateType newState);
public virtual void WorkEnd()
{
}
public virtual void ExcuteMsg(string sender, string msg)
{
}
public object Clone()
{
return this.MemberwiseClone();
}
}
public interface ICanExcuteMsg
{
void ExcuteMsg(string sender, string msg);
}
}