extends Node # Reference to the inputOutput.tscn scene var field = preload("res://scenes/menu/inputOutput.tscn") # Variable to store loaded JSON data var data # Called when the node is added to the scene func _ready(): # Load JSON data from stats.json data = Load.loadJSON("res://content/stats.json") # Instantiate input fields based on 'amount' from data for i in range(int(data.get("amount"))): var fieldInstance = field.instance() $"ScrollContainer/VBoxContainer".add_child(fieldInstance) # Set position, placeholder text, and minimum size for each field $"ScrollContainer/VBoxContainer".get_child(i).position = Vector2(16, (16 + i * 88)) $"ScrollContainer/VBoxContainer".get_child(i).placeholder_text = data.get(str(i)) $"ScrollContainer/VBoxContainer".get_child(i).custom_minimum_size.y = 40 # Handler for when a button is pressed func _on_button_pressed(): # Construct save path based on user input var savePath = "user://player_data" + $"ScrollContainer/VBoxContainer".get_child(0).text + ".json" # Prepare data to save var saveData = {} for i in range(int(data.get("amount"))): if i > 0: saveData[data.get(str(i))] = $"ScrollContainer/VBoxContainer".get_child(i).text # Save data to JSON file Save.saveJSON(savePath, saveData) # Process function called every frame func _process(delta): # Check if the Escape key is pressed to change scene to main.tscn if Input.is_action_pressed("escape"): get_tree().change_scene_to_file("res://scenes/menu/main.tscn")