50 lines
1.2 KiB
GDScript
50 lines
1.2 KiB
GDScript
extends Node
|
|
|
|
class_name SaveConverter
|
|
|
|
static func update_save():
|
|
var currentVersion = SaveManager.get_global_value("versionNum", 1)
|
|
if currentVersion == 1:
|
|
version1_conversion()
|
|
|
|
SaveManager.set_global_value("versionNum", 2)
|
|
|
|
static func version1_conversion():
|
|
if not FileAccess.file_exists("user://inventory.save"):
|
|
return
|
|
if not FileAccess.file_exists("user://player.cfg"):
|
|
return
|
|
|
|
#Update save path for most variables
|
|
var config = ConfigFile.new()
|
|
config.load("user://player.cfg")
|
|
config.save("user://player1.cfg")
|
|
|
|
var saveGame = FileAccess.open("user://inventory.save", FileAccess.READ)
|
|
|
|
var invInfo = {
|
|
"type": "inventory",
|
|
"items": [],
|
|
"name": "normal"
|
|
}
|
|
|
|
while saveGame.get_position() < saveGame.get_length():
|
|
var json_string = saveGame.get_line()
|
|
var json = JSON.new()
|
|
|
|
var parse_result = json.parse(json_string)
|
|
if not parse_result == OK:
|
|
print("JSON Parse Error: ", json.get_error_message(), " in ", json_string, " at line ", json.get_error_line())
|
|
continue
|
|
|
|
var lineInfo = json.get_data()
|
|
|
|
invInfo.items.append(lineInfo)
|
|
|
|
var newSave = FileAccess.open("user://player1inventory.save", FileAccess.WRITE)
|
|
|
|
var json_string = JSON.stringify(invInfo)
|
|
newSave.store_line(json_string)
|
|
|
|
|