sokoban
Diffstat (limited to 'Save_Load.gd')
| -rw-r--r-- | Save_Load.gd | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Save_Load.gd b/Save_Load.gd new file mode 100644 index 0000000..698d668 --- /dev/null +++ b/Save_Load.gd @@ -0,0 +1,41 @@ +extends Node + +const settings_file = "user://settings.res" +const level_file = "user://level_data.res" + +var files := { # file types + "settings": + { + "file": settings_file, + "data": + {"stopwatch": false, "fullscreen": true, "resolution": Vector2(1280, 720), "vsync": false} + }, + "level": {"file": level_file, "data": {"highest_level": "0", "current_level": "1"}} +} + + +func _ready(): + load_data("settings") + load_data("level") + + +func save(type): + var file = File.new() + file.open(files[type].file, File.WRITE) + file.store_string(var2str(files[type].data)) + + +func load_data(type: String): + var file = File.new() + if check_file(type): + file.open(files[type].file, File.READ) + if file.get_as_text().length() > 0: + var read_dictionary: Dictionary = str2var(file.get_as_text()) + if files[type].data.size() == read_dictionary.size(): + files[type].data = read_dictionary + file.close() + + +func check_file(type): + var file = File.new() + return file.file_exists(files[type].file) |