extends Control @onready var host_button: Button = $PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2/HostButton @onready var connect_button = $PanelContainer/MarginContainer/VBoxContainer/ConnectButton @onready var stop_hosting_button = $PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2/StopHostingButton @onready var ip_input = $PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/IPInput @onready var port_input = $PanelContainer/MarginContainer/VBoxContainer/HBoxContainer/PortInput @onready var name_input = $PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2/NameInput @onready var game_list = $PanelContainer/MarginContainer/VBoxContainer/ScrollContainer/PanelContainer/GameList @onready var broadcast_timer = $BroadcastTimer var hosting: bool = false var send_socket: PacketPeerUDP = PacketPeerUDP.new() var server_socket: UDPServer = UDPServer.new() # Called when the node enters the scene tree for the first time. func _ready(): pass # Replace with function body. # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta): pass func update_buttons() -> void: host_button.disabled = hosting or name_input.text.is_empty() connect_button.disabled = hosting or name_input.text.is_empty() or ip_input.text.is_empty() or port_input.text.is_empty() func _on_line_edit_text_changed(new_text: String): update_buttons() func _on_ip_input_text_changed(new_text): update_buttons() func _on_port_input_text_changed(new_text): update_buttons() func _on_host_button_pressed(): hosting = true host_button.visible = false stop_hosting_button.visible = true broadcast_timer.start() update_buttons() func _on_stop_hosting_button_pressed(): hosting = false stop_hosting_button.visible = false host_button.visible = true broadcast_timer.stop() update_buttons() func _on_broadcast_timer_timeout(): var send_socket = PacketPeerUDP.new() send_socket.set_broadcast_enabled(true) send_socket.set_dest_address("255.255.255.255", 27474) var dat = name_input.text.to_utf8_buffer() send_socket.put_packet(dat)