#[derive(Clone,Debug)]
pub enum Instruction{
	ReplaceMouse(crate::mouse::MouseState,crate::mouse::MouseState),
	SetNextMouse(crate::mouse::MouseState),
	SetMoveRight(bool),
	SetMoveUp(bool),
	SetMoveBack(bool),
	SetMoveLeft(bool),
	SetMoveDown(bool),
	SetMoveForward(bool),
	SetJump(bool),
	SetZoom(bool),
	/// Reset: fully replace the physics state.
	/// This forgets all inputs and settings which need to be reapplied.
	Reset,
	/// Restart: Teleport to the start zone.
	Restart,
	/// Spawn: Teleport to a specific mode's spawn
	/// Sets current mode & spawn
	Spawn(crate::gameplay_modes::ModeId,crate::gameplay_modes::StageId),
	Idle,
		//Idle: there were no input events, but the simulation is safe to advance to this timestep
		//for interpolation / networking / playback reasons, most playback heads will always want
		//to be 1 instruction ahead to generate the next state for interpolation.
	PracticeFly,
	SetSensitivity(crate::integer::Ratio64Vec2),
}