Keybind = {} Keybind.move = {} Keybind.move.left = { demo = "move_left"} Keybind.move.right = { demo = "move_right"} Keybind.move.up = { demo = "move_up"} Keybind.move.down = { demo = "move_down"} Keybind.move.jump = { demo = "move_jump"} Keybind.move.hook = { demo = "move_hook"} Keybind.move.dash = { demo = "move_dash"} Keybind.menu = {} Keybind.menu.pause = { demo = "menu_pause"} Keybind.menu.confirm = { demo = "menu_confirm"} Keybind.debug = {} Keybind.editor = {} Keybind.generic = {} function Keybind:CheckDown(action) if DemoPlayback then for _, demo_action in pairs(DemoAction[CurrentDemoFrame]) do if demo_action == action.demo then return true end end return false else for _, keyname in pairs(action.keys) do local fn = love.keyboard.isDown if not type(keyname) == "string" then local fn = love.mouse.isDown end if fn(keyname) then Demo:RecordAction(action.demo) return true end end return false end end function Keybind:CheckPressed(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"}} Keybind.debug.recording = { keys = {"f5"}} Keybind.debug.playback = { keys = {"f6"}} -- 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()