-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathkeymap.lua
42 lines (33 loc) · 1.21 KB
/
keymap.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
local String = require 'stringutil'
local Keymap = {}
local KEYMAP_FILE = "keymap.data"
Keymap.loadKeymapFromSaveData = function()
-- move left, move right, hard drop, soft drop, rotate ccw, rotate cw
local keymapString = 'left,right,up,down,z,x'
local fileInfo = love.filesystem.getInfo(KEYMAP_FILE)
if (fileInfo) then
local contents = love.filesystem.read(KEYMAP_FILE)
if contents ~= nil then
keymapString = contents
end
else
love.filesystem.write(KEYMAP_FILE, keymapString, #keymapString)
end
local keymapArr = String.split(String.trim(keymapString), ',')
local keymapTable = {}
keymapTable.left = keymapArr[1]
keymapTable.right = keymapArr[2]
keymapTable.up = keymapArr[3]
keymapTable.down = keymapArr[4]
keymapTable.z = keymapArr[5]
keymapTable.x = keymapArr[6]
-- store inverted map starting with underscores
keymapTable['_' .. keymapArr[1]] = 'left'
keymapTable['_' .. keymapArr[2]] = 'right'
keymapTable['_' .. keymapArr[3]] = 'up'
keymapTable['_' .. keymapArr[4]] = 'down'
keymapTable['_' .. keymapArr[5]] = 'z'
keymapTable['_' .. keymapArr[6]] = 'x'
return keymapTable
end
return Keymap