freettrpg/scripts/createStats.gd

54 lines
1.4 KiB
GDScript3
Raw Normal View History

2024-06-14 09:44:34 +02:00
extends Node
var field = preload("res://scenes/menu/inputOutput.tscn")
var data:Dictionary
func loadJSON(savePath):
if not FileAccess.file_exists(savePath):
return false
var fileAccess = FileAccess.open(savePath, FileAccess.READ)
var jsonString = fileAccess.get_line()
fileAccess.close()
var json = JSON.new()
var error = json.parse(jsonString)
if error:
print("JSON Parse Error: ", json.get_error_message(), " in ", jsonString, " at line ", json.get_error_line())
return false
data = json.data
return true
func _ready():
if loadJSON("res://content/stats.json"):
for i in range(int(data.get("amount"))):
var fieldInstance = field.instantiate()
add_child(fieldInstance)
get_child(i+1).position = Vector2(16,(16+i*88))
get_child(i+1).placeholder_text = data.get(str(i))
func saveJSON(savePath):
var saveData = {}
for i in range(int(data.get("amount"))):
if i > 0:
saveData[data.get(str(i))] = get_child(i+1).text
2024-06-14 09:44:34 +02:00
var jsonString = JSON.stringify(saveData)
2024-06-14 09:44:34 +02:00
var fileAccess = FileAccess.open(savePath, FileAccess.WRITE)
if not fileAccess:
2024-06-14 09:44:34 +02:00
print("An error happened while saving data: ", FileAccess.get_open_error())
return
fileAccess.store_line(jsonString)
fileAccess.close()
2024-06-14 09:44:34 +02:00
2024-06-14 10:34:06 +02:00
func _on_button_pressed():
var savePath = str("user://player_data"+get_child(1).text+".json")
saveJSON(savePath)
func _process(delta):
if Input.is_action_pressed("escape"):
get_tree().change_scene_to_file("res://scenes/menu/main.tscn")