mtd/Scripts/server_form.gd

86 lines
1.8 KiB
GDScript

class_name ServerForm extends PanelContainer
signal connect_button_pressed
signal host_button_pressed
@export var ip_entry: LineEdit
@export var port_entry: LineEdit
@export var host_button: Button
@export var join_button: Button
@export var ip_field: HBoxContainer
@export var port_field: HBoxContainer
@export var players_field: HBoxContainer
@export var start_button: Button
var menu: int = 0
var hosting: bool = false
var ip: String :
get:
return ip_entry.text if ip_entry.text != "" else "localhost"
set(_value):
return
var port: int :
get:
return int(port_entry.text) if port_entry.text != "" and port_entry.text.is_valid_int() else Data.DEFAULT_SERVER_PORT
set(_value):
return
var max_players: int :
get:
return int($VBoxContainer/PlayersField/HSlider.value)
set(_value):
return
func _on_button_mouse_entered() -> void:
$AudioStreamPlayer.play()
func _on_button_pressed() -> void:
if menu == 0:
Game.scene_switch_main_menu()
else:
menu -= 1
host_button.visible = true
join_button.visible = true
ip_field.visible = false
port_field.visible = false
players_field.visible = false
start_button.visible = false
ip_entry.clear()
port_entry.clear()
func _on_host_button_pressed() -> void:
menu += 1
hosting = true
host_button.visible = false
join_button.visible = false
port_field.visible = true
players_field.visible = true
start_button.visible = true
func _on_join_button_pressed() -> void:
menu += 1
hosting = false
host_button.visible = false
join_button.visible = false
ip_field.visible = true
port_field.visible = true
start_button.visible = true
func _on_start_button_pressed() -> void:
if hosting:
host_button_pressed.emit()
else:
connect_button_pressed.emit()
queue_free()
func _on_h_slider_value_changed(value: float) -> void:
$VBoxContainer/PlayersField/Label2.text = str(int(value))