Files
2025-10-28 14:05:46 -04:00

86 lines
2.0 KiB
C++

#pragma once
namespace RBX {
class NavKeys {
public:
bool forward_arrow;
bool backward_arrow;
bool left_arrow;
bool right_arrow;
bool forward_asdw;
bool backward_asdw;
bool left_asdw;
bool right_asdw;
bool strafe_left_q;
bool strafe_right_e;
bool space;
bool backspace;
bool shift;
NavKeys() : forward_arrow(false),
backward_arrow(false),
left_arrow(false),
right_arrow(false),
forward_asdw(false),
backward_asdw(false),
left_asdw(false),
right_asdw(false),
strafe_left_q(false),
strafe_right_e(false),
space(false),
backspace(false),
shift(false)
{}
bool forward() const {return (forward_arrow || forward_asdw);}
bool backward() const {return (backward_arrow || backward_asdw);}
bool left() const {return (left_arrow || left_asdw);}
bool right() const {return (right_arrow || right_asdw);}
bool up() const {return strafe_left_q;}
bool down() const {return strafe_right_e;}
bool backspaceDown() const {return backspace;}
bool arrowKeyDown() const {return (forward_arrow || backward_arrow || left_arrow || right_arrow);}
bool asdwKeyDown() const {return (forward_asdw || backward_asdw || left_asdw || right_asdw);}
bool qeKeyDown() const {return (strafe_left_q || strafe_right_e);}
bool navKeyDown() const {return (arrowKeyDown() || asdwKeyDown() || qeKeyDown() || space) || backspaceDown();}
int leftRightASDW() const {return left_asdw ? 1 : (right_asdw ? -1 : 0);}
int strafeQE() const {return strafe_left_q ? 1 : (strafe_right_e ? -1 : 0);}
int leftRightArrow() const {
return left_arrow ? 1 : (right_arrow ? -1 : 0);
}
int forwardBackwardArrow() const {
return forward_arrow ? 1 : (backward_arrow ? -1 : 0);
}
int forwardBackwardASDW() const {
return forward_asdw ? 1 : (backward_asdw ? -1 : 0);
}
int strafeLeftRightQE() const {
return strafe_left_q ? 1 : (strafe_right_e ? -1 : 0);
}
bool shiftKeyDown() const
{
return shift;
}
};
} // namespace