-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathsettings.lua
61 lines (51 loc) · 1.45 KB
/
settings.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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
module(..., package.seeall)
local json = require "json"
local db = {}
game = {}
function settings:init()
local g = nil
local path = system.pathForFile( "settings.sqlite", system.DocumentsDirectory )
file = io.open( path, "r" )
if( file == nil )then
pathSource = system.pathForFile( "db/settings.sqlite", system.ResourceDirectory )
fileSource = io.open( pathSource, "r" )
contentsSource = fileSource:read( "*a" )
pathDest = system.pathForFile( "settings.sqlite", system.DocumentsDirectory )
fileDest = io.open( pathDest, "w" )
fileDest:write( contentsSource )
io.close( fileSource )
io.close( fileDest )
else
io.close( file )
end
path = system.pathForFile( "settings.sqlite", system.DocumentsDirectory )
db = sqlite3.open(path)
local sql = 'CREATE TABLE IF NOT EXISTS settings (id INTEGER PRIMARY KEY, key UNIQUE, value);'
db:exec(sql)
game = get()
if not game then
game = require("default_settings")
end
save()
end
function settings:reset_game()
local g=require("default_settings")
game = copy(g.game)
save()
end
function settings:close()
db:close()
end
function settings:get()
local val = nil
for result in db:nrows('SELECT value FROM settings WHERE key="game"') do
val = json.decode(result.value)
val = val[1]
end
return val
end
function settings:save()
local sql = 'INSERT OR REPLACE INTO settings(key, value) VALUES ("game", \''..json.encode({game})..'\')'
db:exec(sql)
print("Settings Saved")
end