# UltraFlare # Store.gd is a set of functions for storing settings/data using JSON files extends Node # Create a new file object for the config var store_dir = Directory.new() var store_file = File.new() # Define a place to store places to look for the date var store_paths = [OS.get_config_dir()+"/UltraFlare/"] var store_path = null # When script/game is loaded, func _ready(): # For each path, for path in store_paths: # If the path exists, if store_dir.dir_exists(path): if store_file.file_exists(path+"/store.json"): # Set the data_path to that path store_path = path # Break out of the loop break # If the for loop finished with no results, if store_path == null: # Set the data path to the first entry in the data_paths array store_path = store_paths[0] store_dir.make_dir_recursive(store_path) store_file.open(store_path+"/store.json", 2) store_file.close() # get_store() # Used for getting all data in storage func get_store(): var data = JSONParseResult.new() store_file.open(store_path+"/store.json", 1) # Read the data from the stores if store_file.get_as_text() != "": data = JSON.parse(store_file.get_as_text()) store_file.close() # If no data was found, if data.error or data == null or data.result == null: return {} # If data was found, return data.result # store() # Used for storing data to the storage func write_store(key, value): # Read the data from the store var data = get_store() # If the value is null, if value == null: # Remove the key-value pair from the dictionary data.erase(key) else: # Store the key-value pair data[key] = value store_file.open(store_path+"/store.json", 2) # Translate the dictionary back to JSON and store it store_file.store_string(JSON.print(data, " ")) # Close the file store_file.close()