mirror of
https://github.com/Reuh/ubiquitousse.git
synced 2025-10-27 17:19:31 +00:00
43 lines
1.2 KiB
Lua
43 lines
1.2 KiB
Lua
local signal = require((...):match("^(.-%.)backend").."signal")
|
|
|
|
function signal.registerEvents()
|
|
local callbacks = { -- everything except run, errorhandler, threaderror
|
|
"displayrotated", "draw", "load", "lowmemory", "quit", "update",
|
|
"directorydropped", "filedropped", "focus", "mousefocus", "resize", "visible",
|
|
"keypressed", "keyreleased", "textedited", "textinput",
|
|
"mousemoved", "mousepressed", "mousereleased", "wheelmoved",
|
|
"gamepadaxis", "gamepadpressed", "gamepadreleased",
|
|
"joystickadded", "joystickaxis", "joystickhat", "joystickpressed", "joystickreleased", "joystickremoved",
|
|
"touchmoved", "touchpressed", "touchreleased"
|
|
}
|
|
local event = signal.event
|
|
for _, callback in ipairs(callbacks) do
|
|
if callback == "update" then
|
|
if love[callback] then
|
|
local old = love[callback]
|
|
love[callback] = function(dt)
|
|
old(dt)
|
|
event:emit(callback, dt*1000)
|
|
end
|
|
else
|
|
love[callback] = function(dt)
|
|
event:emit(callback, dt*1000)
|
|
end
|
|
end
|
|
else
|
|
if love[callback] then
|
|
local old = love[callback]
|
|
love[callback] = function(...)
|
|
old(...)
|
|
event:emit(callback, ...)
|
|
end
|
|
else
|
|
love[callback] = function(...)
|
|
event:emit(callback, ...)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
return signal
|