extends Control class_name MainMenu const MAP_DIR := "res://scenes/maps/maps/" @onready var map_list: ItemList = $CreateServerMenu/MapList @onready var create_server_panel: VBoxContainer = $CreateServerMenu @onready var join_server_panel: VBoxContainer = $JoinServerMenu func _get_game_root() -> GameRoot: var game_root: GameRoot = find_parent("GameRoot") return game_root # Called when the node enters the scene tree for the first time. func _ready() -> void: var map_dir := DirAccess.open(MAP_DIR) if map_dir: map_dir.list_dir_begin() var file_name = map_dir.get_next() while file_name != "": map_list.add_item(file_name) file_name = map_dir.get_next() GameServerAutoload.current_map = map_list.get_item_text(0) # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass func _on_join_pressed() -> void: if create_server_panel.visible: create_server_panel.visible = false join_server_panel.visible = true func _on_create_server_pressed() -> void: if join_server_panel.visible: join_server_panel.visible = false create_server_panel.visible = true func _on_close_join_pressed() -> void: join_server_panel.visible = false func _on_close_create_pressed() -> void: create_server_panel.visible = false func _on_map_list_item_selected(index: int) -> void: GameServerAutoload.current_map = map_list.get_item_text(index) func _on_create_pressed() -> void: await GameServerAutoload.create_server(false) visible = false func _on_join_server_pressed() -> void: var ip: String = $JoinServerMenu/Host/TextEdit.text var port: int = $JoinServerMenu/Port/TextEdit.text.to_int() GameServerAutoload.join_server(ip, port) visible = false