freettrpg/scripts/getStats.gd
Patrick_Pluto 5e4f79ee19 Version: 0.0.4
Scrolling implemented in view and creator, so you can add infinite variables to the content.
2024-06-16 20:01:56 +02:00

46 lines
1.5 KiB
GDScript

extends Node
var field = preload("res://scenes/menu/inputOutput.tscn")
var data:Dictionary
var amount
func loadJSON(savePath):
if not FileAccess.file_exists(savePath):
return false
var fileAccess = FileAccess.open(savePath, FileAccess.READ)
var json_string = fileAccess.get_line()
fileAccess.close()
var json = JSON.new()
var error = json.parse(json_string)
if error:
print("JSON Parse Error: ", json.get_error_message(), " in ", json_string, " 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()
$"ScrollContainer/VBoxContainer".add_child(fieldInstance)
$"ScrollContainer/VBoxContainer".get_child(i).placeholder_text = data.get(str(i))
$"ScrollContainer/VBoxContainer".get_child(i).custom_minimum_size.y = 40
if i > 0:
$"ScrollContainer/VBoxContainer".get_child(i).editable = false
amount = data.get("amount")
func _on_button_pressed():
var savePath = str("user://player_data"+$"ScrollContainer/VBoxContainer".get_child(0).text+".json")
if loadJSON(savePath):
for i in range(int(amount)-1):
$"ScrollContainer/VBoxContainer".get_child(i+1).text = data.get(str($"ScrollContainer/VBoxContainer".get_child(i+1).placeholder_text))
func _process(_delta):
if Input.is_action_pressed("escape"):
get_tree().change_scene_to_file("res://scenes/menu/main.tscn")
func hideGet():
$button.visible = false
$button.disabled = true