124 lines
4.2 KiB
GDScript
124 lines
4.2 KiB
GDScript
extends Timer
|
|
|
|
var save_data = {}
|
|
|
|
|
|
func saveGame():
|
|
#var save_game = FileAccess.open("user://Save/savegame.save", FileAccess.WRITE)
|
|
#var save_nodes = get_tree().get_nodes_in_group("Persist")
|
|
#for node in save_nodes:
|
|
#if node.scene_file_path.is_empty():
|
|
#print("persistent node '%s' is not an instanced scene, skipped" % node.name)
|
|
#continue
|
|
#
|
|
## Check the node has a save function.
|
|
#if !node.has_method("save"):
|
|
#print("persistent node '%s' is missing a save() function, skipped" % node.name)
|
|
#continue
|
|
#
|
|
## Call the node's save function.
|
|
#var node_data = node.call("save")
|
|
#
|
|
## JSON provides a static method to serialized JSON string.
|
|
#var json_string = JSON.stringify(node_data)
|
|
#
|
|
## Store the save dictionary as a new line in the save file.
|
|
#save_game.store_line(json_string)
|
|
|
|
#func save():
|
|
#var save_dict = {
|
|
#"filename" : get_scene_file_path(),
|
|
#"parent" : get_parent().get_path(),
|
|
#"damagePerClick" : Global.globalDamagePerClick,
|
|
#"damagePerSec" : Global.globalDamagePerSec,
|
|
#"damageMultiplier" : Global.globalDamageMultiplier,
|
|
#"totalDamage" : Global.globalDamage
|
|
#}
|
|
|
|
var file_path = "user://Save/saveData.json"
|
|
var file = FileAccess.open(file_path, FileAccess.WRITE)
|
|
if file:
|
|
var json_text = JSON.stringify(save_data)
|
|
file.store_string(json_text)
|
|
file.close()
|
|
print("Game Data Saved")
|
|
else:
|
|
print("Failed to open file: ", file_path)
|
|
|
|
func load_save_data():
|
|
|
|
#If using json
|
|
var file = FileAccess.open("user://Save/saveData.json", FileAccess.READ)
|
|
#var file = FileAccess.open("user://memberData.json", FileAccess.READ)
|
|
if file:
|
|
var json_text = file.get_as_text()
|
|
#print (json_text)
|
|
file.close()
|
|
|
|
var json = JSON.new()
|
|
var json_result = json.parse(json_text)
|
|
#print (json_result)
|
|
|
|
if json_result == OK:
|
|
save_data = json.get_data()
|
|
print("Save data loaded successfully.")
|
|
#print(character_data)
|
|
else:
|
|
print("Failed to parse JSON: ", json_result.error_string)
|
|
else:
|
|
print("Save data file not found.")
|
|
|
|
|
|
func _ready():
|
|
# Initialize data or load from file if necessary
|
|
#$saveTimer.connect("timeout", _on_Timer_timeout)
|
|
connect("timeout", _on_Timer_timeout)
|
|
#var current_scene = get_tree().current_scene
|
|
#if current_scene:
|
|
## Verify the saveTimer node exists in the current scene
|
|
#var timer_node = current_scene.get_node("saveTimer") # Adjust the path as necessary
|
|
#if timer_node:
|
|
#print("Timer node found: ", timer_node)
|
|
#timer_node.connect("timeout", _on_Timer_timeout)
|
|
#timer_node.start()
|
|
#else:
|
|
#print("saveTimer node not found")
|
|
#else:
|
|
#print("Current scene not found")
|
|
|
|
func _on_Timer_timeout():
|
|
load_save_data()
|
|
save_data["damagePerClick"] = Global.globalDamagePerClick
|
|
save_data["damagePerSec"] = Global.globalDamagePerSec
|
|
save_data["damageMultiplier"] = Global.globalDamageMultiplier
|
|
save_data["totalDamage"] = Global.globalDamage
|
|
save_data["damagePerSecMember1"] = Global.damagePerSecMember1
|
|
save_data["damagePerClickMember1"] = Global.damagePerClickMember1
|
|
save_data["damageMultiplierMember1"] = Global.damageMultiplierMember1
|
|
if Global.texture_member1:
|
|
save_data["textureMember1"] = Global.texture_member1
|
|
save_data["damagePerSecMember2"] = Global.damagePerSecMember2
|
|
save_data["damagePerClickMember2"] = Global.damagePerClickMember2
|
|
save_data["damageMultiplierMember2"] = Global.damageMultiplierMember2
|
|
if Global.texture_member2:
|
|
save_data["textureMember2"] = Global.texture_member2
|
|
save_data["damagePerSecMember3"] = Global.damagePerSecMember3
|
|
save_data["damagePerClickMember3"] = Global.damagePerClickMember3
|
|
save_data["damageMultiplierMember3"] = Global.damageMultiplierMember3
|
|
if Global.texture_member3:
|
|
save_data["textureMember3"] = Global.texture_member3
|
|
save_data["damagePerSecMember4"] = Global.damagePerSecMember4
|
|
save_data["damagePerClickMember4"] = Global.damagePerClickMember4
|
|
save_data["damageMultiplierMember4"] = Global.damageMultiplierMember4
|
|
if Global.texture_member4:
|
|
save_data["textureMember4"] = Global.texture_member4
|
|
save_data["damagePerSecMember5"] = Global.damagePerSecMember5
|
|
save_data["damagePerClickMember5"] = Global.damagePerClickMember5
|
|
save_data["damageMultiplierMember5"] = Global.damageMultiplierMember5
|
|
if Global.texture_member5:
|
|
save_data["textureMember5"] = Global.texture_member5
|
|
saveGame()
|
|
func _process(delta):
|
|
|
|
pass
|