]> git.lizzy.rs Git - dragonblocks3d-lua.git/blobdiff - modules/RenderEngine/src/inputhandler.lua
Added Movement
[dragonblocks3d-lua.git] / modules / RenderEngine / src / inputhandler.lua
diff --git a/modules/RenderEngine/src/inputhandler.lua b/modules/RenderEngine/src/inputhandler.lua
new file mode 100644 (file)
index 0000000..4312dd1
--- /dev/null
@@ -0,0 +1,28 @@
+RenderEngine.listen_keys = {}
+Dragonblocks.create_event_interface(RenderEngine)
+
+function RenderEngine:process_input(dtime)
+       local keys_pressed = {}
+       local was_key_pressed = false
+       for key in pairs(self.listen_keys) do
+               if glfw.get_key(self.window, key) == "press" then
+                       keys_pressed[key] = true
+                       was_key_pressed = true
+               end
+       end
+       if was_key_pressed then
+               self:fire_event({
+                       type = "keypress",
+                       keys = keys_pressed,
+                       dtime = dtime
+               })
+       end
+end
+
+function RenderEngine:add_listen_key(key)
+       self.listen_keys[key] = true
+end
+
+function RenderEngine:remove_listen_key(key)
+       self.listen_keys[key] = nil
+end