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();
}
}