84 lines
1.9 KiB
Lua
84 lines
1.9 KiB
Lua
|
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()
|