2 #include "input_handler.hpp"
7 using namespace dragonblocks;
9 void InputHandler::processInput(double dtime)
11 processMouseInput(dtime);
12 processKeyInput(dtime);
15 void InputHandler::listenFor(int key)
17 listened_keys.insert(key);
20 void InputHandler::dontListenFor(int key)
22 listened_keys.erase(key);
25 void InputHandler::addMouseHandler(void (*callback)(double, double, double))
27 mouse_handlers.insert(callback);
30 void InputHandler::removeMouseHandler(void (*callback)(double, double, double))
32 mouse_handlers.erase(callback);
35 void InputHandler::addKeyHandler(void (*callback)(double, set<int>))
37 key_handlers.insert(callback);
40 void InputHandler::removeKeyHandler(void (*callback)(double, set<int>))
42 key_handlers.erase(callback);
45 InputHandler::InputHandler(Window *w) : window(w)
49 void InputHandler::processMouseInput(double dtime)
51 vec2 cursor_delta = vec2(mouse_sensitivity * dtime) * (vec2)window->getCursorDelta();
55 if (x != 0 && y != 0) {
56 for (auto it = mouse_handlers.begin(); it != mouse_handlers.end(); it++) {
62 void InputHandler::processKeyInput(double dtime)
65 for (auto it = listened_keys.begin(); it != listened_keys.end(); it++) {
67 if (window->wasKeyDown(key)) {
71 if (keysDown.begin() != keysDown.end()) {
72 for (auto it = key_handlers.begin(); it != key_handlers.end(); it++) {
73 (**it)(dtime, keysDown);