Keybind = {} Keybind.move = {} Keybind.menu = {} Keybind.debug = {} Keybind.editor = {} Keybind.generic = {} function Keybind:CheckDown(action) for _, keyname in pairs(action.keys) do if type(keyname) == "string" then if love.keyboard.isDown(keyname) then return true end else if love.mouse.isDown(keyname) then return true end end end return false end function Keybind:HasPressed(action) if Keybind:CheckDown(action) then if not action.pressed then action.pressed = true return true end else action.pressed = nil end return false end function Keybind:CheckCollision(cat, key) for _, action in pairs(cat) do for _, keyname in pairs(action.keys) do if key == keyname then return true end end end return false end function Keybind:AddKey(action, key) table.insert(action.keys, key) end function Keybind:ChangeKey(action, position, key) action.keys[position] = key end function Keybind:RemoveKeys(action) action.keys = {} end function Keybind:Default() --Menu Keybind.menu.pause= { keys = {"escape"}} Keybind.menu.confirm= { keys = {"z", "space", 1}} --Move Keybind.move.left = { keys = {"left", "a"}} Keybind.move.right = { keys = {"right", "d"}} Keybind.move.up = { keys = {"up", "w"}} Keybind.move.down = { keys = {"down", "s"}} Keybind.move.jump = { keys = {"z", "space"}} Keybind.move.hook = { keys = {"x", 1}} Keybind.move.dash = { keys = {"c", 2}} --Debug Keybind.debug.debug = { keys = {"f1"}} Keybind.debug.reposition = { keys = {"f2"}} Keybind.debug.reload = { keys = {"f3"}} Keybind.debug.editor = { keys = {"f4"}} -- Editor Keybind.editor.palette = { keys = {"tab"}} -- Generic Keybind.generic.lclick = { keys = {1}} Keybind.generic.rclick = { keys = {2}} Keybind.generic.lshift = { keys = {"lshift"}} Keybind.generic.lctrl = { keys = {"lctrl"}} end -- Set default values at start Keybind:Default()