bitflags::bitflags!{
	#[derive(Clone,Copy,Debug,Default)]
	pub struct Controls:u32{
		const MoveForward=1<<0;
		const MoveLeft=1<<1;
		const MoveBackward=1<<2;
		const MoveRight=1<<3;
		const MoveUp=1<<4;
		const MoveDown=1<<5;
		const LookUp=1<<6;
		const LookLeft=1<<7;
		const LookDown=1<<8;
		const LookRight=1<<9;
		const Jump=1<<10;
		const Crouch=1<<11;
		const Sprint=1<<12;
		const Zoom=1<<13;
		const Use=1<<14;//Interact with object
		const PrimaryAction=1<<15;//LBM/Shoot/Melee
		const SecondaryAction=1<<16;//RMB/ADS/Block
	}
}
impl Controls{
	pub const fn wasd()->Self{
		Self::MoveForward.union(Self::MoveLeft).union(Self::MoveBackward).union(Self::MoveRight)
	}
	pub const fn wasdqe()->Self{
		Self::MoveForward.union(Self::MoveLeft).union(Self::MoveBackward).union(Self::MoveRight).union(Self::MoveUp).union(Self::MoveDown)
	}
}