using OpenTK.Input; namespace RecrownedGTK.Game { public interface IState { /// /// Called when this state is going to be shown. /// /// The instance of the game manager that is requesting this. /// True of it's ready to be displayed, false otherwise. bool Shown(GameEngine gameManager); /// /// Called on updating the state. /// /// The time that has passed since the last update in seconds. void Update(double time); /// /// Called for rendering things. /// /// The time that has elapsed since last rendering in seconds. void Render(double time); /// /// Called when this state is no longer being displayed. /// void Hidden(); /// /// Called when the game window size is updated. /// /// The new width /// The new height void WindowSizeUpdate(int width, int height); /// /// When the game is being requested to be closed. /// /// True if closing is acceptable, or false otherwise. bool CloseRequested(); /// /// Called every update in the case that there should be a state change. /// /// Another state if ready to change states, or null if not. IState ChangeState(); } }