generated from krampus/template-godot4
54 lines
1.2 KiB
GDScript3
54 lines
1.2 KiB
GDScript3
|
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()
|