extends Panel signal start_game(game_path:String) @onready var game_name_edit: LineEdit = %GameNameEdit # Called when the node enters the scene tree for the first time. func _ready() -> void: pass # Replace with function body. func sanitize_game_name(value:String) -> String: value.to_lower().replace(" ", "_") return value func create_game_directory() -> String: var dir_access = DirAccess.open("user://") if not dir_access.dir_exists("game_profiles"): dir_access.make_dir("game_profiles") var game_base_directory = DirAccess.open("user://game_profiles") if game_base_directory == null: push_warning(DirAccess.get_open_error()) var sanitized_name = sanitize_game_name(game_name_edit.text) if game_base_directory.dir_exists(sanitized_name): var free_name_counter:int = 0 var sanitized_name_with_counter = sanitized_name + "_" + str(free_name_counter) while game_base_directory.dir_exists(sanitized_name_with_counter): free_name_counter = free_name_counter + 1 sanitized_name_with_counter = sanitized_name + "_" + str(free_name_counter) sanitized_name = sanitized_name_with_counter game_base_directory.make_dir(sanitized_name) var game_profile = GameProfileResource.new() game_profile.game_name = game_name_edit.text game_profile.created = Time.get_datetime_string_from_system() game_profile.last_played = Time.get_datetime_string_from_system() ResourceSaver.save(game_profile, "user://game_profiles/" + sanitized_name + "/game.tres") return sanitized_name func _on_start_game_button_pressed() -> void: start_game.emit("user://game_profiles/" + create_game_directory() + "/game.tres")