namespace SupaLidlGame.State { public interface IState where T : IState { /// /// Called when this state is entered /// /// /// This returns a IState in case a state is being /// transitioned to but wants to transition to another state. For /// example, an attack state can return to an idle state, but that idle /// state can override it to the move state immediately when necessary. /// public IState Enter(IState previousState) => null; /// /// Called when the Character exits this CharacterState. /// public void Exit(IState nextState) { } public IState Process(double delta) => null; } }