Networking and menu cleanup, added nosteam window flag

This commit is contained in:
2026-05-22 23:37:12 -05:00
parent b7defbdbfc
commit 29de79725c
4 changed files with 88 additions and 94 deletions

View File

@@ -1,75 +1,47 @@
extends CanvasLayer
@onready var use_steam_check: CheckButton = %UseSteamCheck
@onready var ip_edit: LineEdit = %IPEdit
@onready var join_ip_button: Button = %JoinIPButton
@onready var quit_button: Button = %QuitButton
@onready var steam_host_button: Button = %SteamHostButton
@onready var steam_lobby_id_edit: LineEdit = %SteamLobbyIDEdit
@onready var join_steam_button: Button = %JoinSteamButton
@onready var quit_button: Button = %QuitButton
@onready var ip_host_button: Button = %IPHostButton
@onready var steam_controls: VBoxContainer = %SteamControls
@onready var e_net_controls: VBoxContainer = %ENetControls
@onready var steam_avatar: TextureRect = %SteamAvatar
@onready var steam_username_label: Label = %SteamUsernameLabel
@onready var ip_host_button: Button = %IPHostButton
@onready var e_net_controls: VBoxContainer = %ENetControls
@onready var username_input: LineEdit = %UsernameInput
@onready var ip_avatar_image: TextureButton = %IPAvatarImage
@onready var ip_edit: LineEdit = %IPEdit
@onready var join_ip_button: Button = %JoinIPButton
const TEST_LEVEL = preload("uid://tnw1q8a7ndio")
const PLAYER = preload("uid://cq6ovfsdvnt40")
func _ready() -> void:
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
#if OS.has_feature("server"):
#add_world()
#NetworkManager.start_server()
#hide()
use_steam_check.toggled.connect(_on_use_steam_toggled)
join_ip_button.pressed.connect(_on_ip_join_pressed)
check_command_line()
quit_button.pressed.connect(func(): get_tree().quit())
ip_host_button.pressed.connect(_on_host_ip_pressed)
username_input.text_changed.connect(_on_username_input_text_changed)
ip_avatar_image.pressed.connect(_on_ip_avatar_clicked)
if OS.has_feature("nosteam"):
steam_controls.hide()
e_net_controls.show()
join_ip_button.pressed.connect(_on_ip_join_pressed)
ip_host_button.pressed.connect(_on_host_ip_pressed)
username_input.text_changed.connect(_on_username_input_text_changed)
ip_avatar_image.pressed.connect(_on_ip_avatar_clicked)
return
join_steam_button.pressed.connect(_on_join_steam_pressed)
steam_host_button.pressed.connect(_on_host_steam_pressed)
steam_lobby_id_edit.text_changed.connect(_on_lobby_text_changed)
Steam.join_requested.connect(_on_lobby_join_requested)
check_command_line()
func _on_use_steam_toggled(toggled_on: bool):
if toggled_on:
if !Steamworks.is_initalized:
push_error("Steam not initalized, reverting to IP")
steam_controls.hide()
use_steam_check.button_pressed = false
else:
steam_controls.show()
e_net_controls.hide()
steam_username_label.text = Steamworks.steam_username
steam_avatar.texture = Steamworks.steam_avatar
else:
e_net_controls.show()
steam_controls.hide()
func _on_ip_join_pressed():
var avatar: ImageTexture = ImageTexture.create_from_image(ip_avatar_image.texture_normal.get_image())
NetworkManager.join_server(ip_edit.text, username_input.text, avatar)
add_world()
hide()
func _on_host_ip_pressed():
var avatar: ImageTexture = ImageTexture.create_from_image(ip_avatar_image.texture_normal.get_image())
NetworkManager.start_server(username_input.text, avatar)
add_world()
hide()
steam_username_label.text = Steamworks.steam_username
steam_avatar.texture = await Steamworks.get_player_avatar(Steamworks.steam_id)
func _on_host_steam_pressed():
@@ -113,6 +85,22 @@ func check_command_line() -> void:
hide()
#region Non steam
func _on_ip_join_pressed():
var avatar: ImageTexture = ImageTexture.create_from_image(ip_avatar_image.texture_normal.get_image())
NetworkManager.join_server(ip_edit.text, username_input.text, avatar)
add_world()
hide()
func _on_host_ip_pressed():
var avatar: ImageTexture = ImageTexture.create_from_image(ip_avatar_image.texture_normal.get_image())
NetworkManager.start_server(username_input.text, avatar)
add_world()
hide()
func _on_username_input_text_changed(new_text: String) -> void:
if new_text == "":
ip_host_button.hide()
@@ -149,3 +137,4 @@ func _on_ip_avatar_clicked():
add_child(file_dialog)
file_dialog.popup_centered()
#endregion

View File

@@ -51,19 +51,12 @@ layout_mode = 2
size_flags_horizontal = 6
text = "Multiplayer Template Game"
[node name="UseSteamCheck" type="CheckButton" parent="Control/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2" unique_id=2050719522]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "Use Steam"
[node name="HBoxContainer" type="HBoxContainer" parent="Control/PanelContainer/MarginContainer/VBoxContainer" unique_id=1028494634]
layout_mode = 2
size_flags_vertical = 3
[node name="SteamControls" type="VBoxContainer" parent="Control/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer" unique_id=614477215]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4
@@ -112,6 +105,7 @@ text = "Host"
[node name="ENetControls" type="VBoxContainer" parent="Control/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer" unique_id=1909532057]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4