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