]> git.lizzy.rs Git - dragonblocks3d-lua.git/blobdiff - modules/RenderEngine/src/inputhandler.lua
Yaw & Pitch bound to mouse input
[dragonblocks3d-lua.git] / modules / RenderEngine / src / inputhandler.lua
index 4312dd16cda87abd85617e721dc1184256f8fe3a..54707f8a190fb3d37f7578b3f335f4eea8910a6f 100644 (file)
@@ -2,6 +2,11 @@ RenderEngine.listen_keys = {}
 Dragonblocks.create_event_interface(RenderEngine)
 
 function RenderEngine:process_input(dtime)
+       self:process_key_input(dtime)
+       self:process_mouse_input(dtime)
+end
+
+function RenderEngine:process_key_input(dtime)
        local keys_pressed = {}
        local was_key_pressed = false
        for key in pairs(self.listen_keys) do
@@ -19,6 +24,19 @@ function RenderEngine:process_input(dtime)
        end
 end
 
+function RenderEngine:process_mouse_input(dtime)
+       local dx, dy = self.cursor_delta_x or 0, self.cursor_delta_y or 0
+       if math.abs(dx) > 0 or math.abs(dy) > 0 then
+               self:fire_event({
+                       type = "mousemove",
+                       dtime = dtime,
+                       x = dx * self.mouse_sensitivity,
+                       y = dy * self.mouse_sensitivity,
+               })              
+       end
+       self.cursor_delta_x, self.cursor_delta_y = 0, 0
+end
+
 function RenderEngine:add_listen_key(key)
        self.listen_keys[key] = true
 end