rps-demo/src/title_screen/title_screen.gd

54 lines
1.2 KiB
GDScript3
Raw Normal View History

2025-01-13 15:57:57 -07:00
extends Control
const MAX_CLIENTS = 2
@export var game_scene: PackedScene
@onready var main_menu: VBoxContainer = %MainMenu
@onready var host_menu: VBoxContainer = %HostMenu
@onready var join_menu: VBoxContainer = %JoinMenu
@onready var host_port_input: SpinBox = %HostPortInput
@onready var hostname_input: LineEdit = %HostnameInput
@onready var join_port_input: SpinBox = %JoinPortInput
func quit() -> void:
get_tree().quit()
func show_host_menu() -> void:
main_menu.hide()
join_menu.hide()
host_menu.show()
func show_join_menu() -> void:
main_menu.hide()
host_menu.hide()
join_menu.show()
func show_main_menu() -> void:
host_menu.hide()
join_menu.hide()
main_menu.show()
func start_host_lobby() -> void:
var game: Game = game_scene.instantiate()
var peer := ENetMultiplayerPeer.new()
peer.create_server(host_port_input.value, MAX_CLIENTS)
add_sibling(game)
game.multiplayer.multiplayer_peer = peer
queue_free()
func join_lobby() -> void:
var game: Game = game_scene.instantiate()
var peer := ENetMultiplayerPeer.new()
peer.create_client(hostname_input.text, join_port_input.value)
add_sibling(game)
game.multiplayer.multiplayer_peer = peer
queue_free()