Files
mmo/scenes/menu/main_menu.gd
Marek Le 2d4002bd3f refactor
2026-05-09 23:37:26 +02:00

48 lines
1.5 KiB
GDScript

extends Control
@onready var name_input: LineEdit = %NameInput
@onready var ip_input: LineEdit = %IpInput
@onready var status_label: Label = %StatusLabel
func _ready() -> void:
name_input.text = Net.local_name
Net.connected_to_server.connect(_on_connected)
Net.connection_failed.connect(_on_failed)
func _on_singleplayer_pressed() -> void:
Net.local_name = name_input.text.strip_edges() if name_input.text.strip_edges() != "" else "Player"
GameState.reset_run()
if Net.host_singleplayer():
GameState.change_scene(GameState.SCENE_WORLD)
func _on_host_pressed() -> void:
Net.local_name = name_input.text.strip_edges() if name_input.text.strip_edges() != "" else "Host"
GameState.reset_run()
if Net.host():
status_label.text = "Hosting on port %d" % Net.DEFAULT_PORT
GameState.change_scene(GameState.SCENE_LOBBY)
else:
status_label.text = "Hosting failed."
func _on_join_pressed() -> void:
Net.local_name = name_input.text.strip_edges() if name_input.text.strip_edges() != "" else "Client"
var addr := ip_input.text.strip_edges()
if addr == "":
addr = "127.0.0.1"
status_label.text = "Connecting to %s..." % addr
if not Net.join(addr):
status_label.text = "Join failed."
func _on_options_pressed() -> void:
GameState.change_scene(GameState.SCENE_OPTIONS)
func _on_quit_pressed() -> void:
get_tree().quit()
func _on_connected() -> void:
status_label.text = "Connected."
GameState.change_scene(GameState.SCENE_LOBBY)
func _on_failed() -> void:
status_label.text = "Connection failed."