#pragma once
#include <Gorgon/Input/Keyboard.h>
class KeyPressHandle {
Gorgon::Input::Keyboard::Key key;
bool pressed;
public:
KeyPressHandle(Gorgon::Input::Keyboard::Key key) : key(key), pressed(false) {}
void Press() {
if(pressed) { return; }
this->pressed = true;
}
void DoIfPressed() {
if(not pressed) { return; }
do_if_pressed();
}
void Release() {
if(not pressed) { return; }
pressed = false;
}
void PressIf(Gorgon::Input::Keyboard::Key Key, float active) {
if(Key == key and active) {
Press();
}
}
void ReleaseIf(Gorgon::Input::Keyboard::Key Key, float active) {
if(Key == key and not active) {
Release();
}
}
std::function<void()> do_if_pressed;
};