multiplayer: added option for upnp

This commit is contained in:
Simon Ward 2026-01-27 20:16:53 +13:00
parent caaa09e517
commit 1d42620dbc
2 changed files with 16 additions and 6 deletions

View file

@ -113,7 +113,12 @@ text = "Menu
" "
horizontal_alignment = 1 horizontal_alignment = 1
[node name="ServerButton2" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"] [node name="DisableUPNPButton" type="CheckButton" parent="UI/Menu/MarginContainer/VBoxContainer"]
layout_mode = 2
text = "Disable UPNP
"
[node name="ServerButton" type="Button" parent="UI/Menu/MarginContainer/VBoxContainer"]
layout_mode = 2 layout_mode = 2
text = "Host text = "Host
" "
@ -131,5 +136,5 @@ text = "Enter Address"
_spawnable_scenes = PackedStringArray("uid://cfceg80unq0pe") _spawnable_scenes = PackedStringArray("uid://cfceg80unq0pe")
spawn_path = NodePath("..") spawn_path = NodePath("..")
[connection signal="pressed" from="UI/Menu/MarginContainer/VBoxContainer/ServerButton2" to="." method="_on_server_button_pressed"] [connection signal="pressed" from="UI/Menu/MarginContainer/VBoxContainer/ServerButton" to="." method="_on_server_button_pressed"]
[connection signal="pressed" from="UI/Menu/MarginContainer/VBoxContainer/ClientButton" to="." method="_on_client_button_pressed"] [connection signal="pressed" from="UI/Menu/MarginContainer/VBoxContainer/ClientButton" to="." method="_on_client_button_pressed"]

View file

@ -2,6 +2,7 @@ extends Node3D
@onready var menu = $UI/Menu @onready var menu = $UI/Menu
@onready var address_entry = $UI/Menu/MarginContainer/VBoxContainer/LineEdit @onready var address_entry = $UI/Menu/MarginContainer/VBoxContainer/LineEdit
@onready var disable_upnp = $UI/Menu/MarginContainer/VBoxContainer/DisableUPNPButton
const port = 9999 const port = 9999
const player_scene = preload("res://player/player.tscn") const player_scene = preload("res://player/player.tscn")
@ -16,11 +17,15 @@ func _on_server_button_pressed() -> void:
add_player(multiplayer.get_unique_id()) add_player(multiplayer.get_unique_id())
if not disable_upnp.button_pressed:
upnp_setup() upnp_setup()
func _on_client_button_pressed() -> void: func _on_client_button_pressed() -> void:
var address = "localhost"
if not disable_upnp.button_pressed:
address = address_entry.text
menu.hide() menu.hide()
peer.create_client(address_entry.text, port) peer.create_client(address, port)
multiplayer.multiplayer_peer = peer multiplayer.multiplayer_peer = peer
func add_player(peer_id): func add_player(peer_id):