diff options
Diffstat (limited to 'settings.lua')
-rw-r--r-- | settings.lua | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/settings.lua b/settings.lua new file mode 100644 index 0000000..ad8b8e5 --- /dev/null +++ b/settings.lua @@ -0,0 +1,63 @@ +Settings = {} +Settings.current = {} +function Settings.load() + if Controller then + if not love.filesystem.exists("settings") then + local def = love.filesystem.newFile("settings.default") + local new = love.filesystem.newFile("settings") + new:open("w") def:open("r") + new:write(def:read()) + new:close() def:close() + end + local getSettings = love.filesystem.load("settings") + Settings.current = getSettings() + local joysticksList = love.joystick.getJoysticks() -- local list for editing + for _,set in pairs(Settings.current) do + local isJoystick = set[7] + local joystick + if isJoystick then + -- take and remove first joystick from list + joystick = joysticksList[1] + table.remove(joysticksList, 1) + end + if not isJoystick or joystick then + Controller.registerSet(set[1], set[2], set[3], set[4], set[5], set[6], joystick) + end + end + end +end +function Settings.save() + local new = love.filesystem.newFile("settings") + local sets = Settings.current + local string = "return {\n" + for i,set in pairs(sets) do + string = string .. "\t{" + for j,word in pairs(set) do + if j ~= 7 then + string = string .. "\"" .. word .. "\", " + else + if word then + string = string .. "true" + else + string = string .. "false" + end + end + end + string = string .. "},\n" + end + string = string .. "}" + new:open("w") + new:write(string) + new:close() +end +function Settings.change(n, left, right, up, down, attack, jump, joystick) + local bool + if joystick then + bool = true + else + bool = false + end + Settings.current[n] = {left, right, up, down, attack, jump, bool} + table.remove(Controller.sets, n) + Controller.registerSet(left, right, up, down, attack, jump, joystick) +end
\ No newline at end of file |