1 RenderEngine.listen_keys = {}
2 Dragonblocks.create_event_interface(RenderEngine)
4 function RenderEngine:process_input(dtime)
5 self:process_key_input(dtime)
6 self:process_mouse_input(dtime)
9 function RenderEngine:process_key_input(dtime)
10 local keys_pressed = {}
11 local was_key_pressed = false
12 for key in pairs(self.listen_keys) do
13 if glfw.get_key(self.window, key) == "press" then
14 keys_pressed[key] = true
15 was_key_pressed = true
18 if was_key_pressed then
27 function RenderEngine:process_mouse_input(dtime)
28 local dx, dy = self.cursor_delta_x or 0, self.cursor_delta_y or 0
29 if math.abs(dx) > 0 or math.abs(dy) > 0 then
33 x = dx * self.mouse_sensitivity,
34 y = dy * self.mouse_sensitivity,
37 self.cursor_delta_x, self.cursor_delta_y = 0, 0
40 function RenderEngine:add_listen_key(key)
41 self.listen_keys[key] = true
44 function RenderEngine:remove_listen_key(key)
45 self.listen_keys[key] = nil