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