summaryrefslogtreecommitdiffhomepage
path: root/not/Settings.lua
diff options
context:
space:
mode:
authorAki <nthirtyone@gmail.com>2017-04-09 22:07:04 +0200
committerAki <nthirtyone@gmail.com>2017-04-09 22:07:04 +0200
commit0dd01913fe0eefc7ba4bc0797877f40fdedf9315 (patch)
tree8d270eb07f589d2487b3ce66d4865e5a4718042a /not/Settings.lua
parent55b0cf1a22e4a7e41fe00aa693445d6c4bd0652d (diff)
parenta03c1125f10fbbad253a0efc4727072fcbd55345 (diff)
downloadroflnauts-0dd01913fe0eefc7ba4bc0797877f40fdedf9315.zip
roflnauts-0dd01913fe0eefc7ba4bc0797877f40fdedf9315.tar.gz
roflnauts-0dd01913fe0eefc7ba4bc0797877f40fdedf9315.tar.bz2
Merge branch 'com'
Diffstat (limited to 'not/Settings.lua')
-rw-r--r--not/Settings.lua72
1 files changed, 72 insertions, 0 deletions
diff --git a/not/Settings.lua b/not/Settings.lua
new file mode 100644
index 0000000..e3316f9
--- /dev/null
+++ b/not/Settings.lua
@@ -0,0 +1,72 @@
+--- `Settings`
+-- Stores, loads, saves and changes game settings including Controller sets.
+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()
+ Controller.reset()
+ 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
+ -- Save current settings
+ Settings.current[n] = {left, right, up, down, attack, jump, bool}
+ Settings.save()
+ -- Load settings
+ Settings.load()
+end