diff --git a/rust/src/net/network_manager.rs b/rust/src/net/network_manager.rs index da4dae7..a39f413 100644 --- a/rust/src/net/network_manager.rs +++ b/rust/src/net/network_manager.rs @@ -10,6 +10,7 @@ use teanet::{Peer, PeerConfig, PeerMessage}; use crate::{ game_manager::{Game, GameManager, GameOption, GameOptionValue, NetPlayer}, + game_settings::GameSettingsManager, net::{net_stats::Stats, util::NetVector3}, player::{DamageSource, NetTransform}, popup_queue::{Popup, PopupQueue}, @@ -190,10 +191,16 @@ impl NetworkManager { self.swap_to_lobby(true); + let default_name = GameSettingsManager::singleton() + .bind() + .settings + .default_name + .clone(); + if let Some(game) = &mut Game::singleton() { let id = game.bind_mut().new_player( SocketAddr::from(([0, 0, 0, 0], 0)), - Some("Host".to_owned()), + Some(default_name), None, ); game.bind_mut().update_player_ready(id, true); diff --git a/rust/src/net/protocol.rs b/rust/src/net/protocol.rs index 7454fb5..188ba26 100644 --- a/rust/src/net/protocol.rs +++ b/rust/src/net/protocol.rs @@ -1,10 +1,11 @@ use std::net::SocketAddr; -use godot::obj::Singleton; +use godot::{global::godot_print, obj::Singleton}; use teanet::PeerMessage; use crate::{ game_manager::{Game, GameManager, GameOption}, + game_settings::GameSettingsManager, net::network_manager::{NetworkManager, Package, PeerKind}, popup_queue::{Popup, PopupQueue}, ui::cli::{CliColor, CommandLinePanel}, @@ -23,6 +24,12 @@ impl NetworkManager { CliColor::Info, ); self.swap_to_lobby(false); + let default_name = GameSettingsManager::singleton() + .bind() + .settings + .default_name + .clone(); + self.update_nick(default_name.clone()); } teanet::PeerMessage::Disconnected(connection, connection_error) => { cli.bind_mut().publish_message( @@ -70,9 +77,7 @@ impl NetworkManager { } Package::SetNick(id, nick) => { if let Some(game) = &mut Game::singleton() { - if game.bind().self_id != Some(id) { - game.bind_mut().update_player_nick(id, nick); - } + game.bind_mut().update_player_nick(id, nick); } } Package::UpdatePings(pings) => { diff --git a/rust/src/ui/lobby.rs b/rust/src/ui/lobby.rs index 95e0440..b6e4f5d 100644 --- a/rust/src/ui/lobby.rs +++ b/rust/src/ui/lobby.rs @@ -257,6 +257,15 @@ impl LobbyPanel { } pub fn update_players(&mut self, replace: bool) { + if let Some(game) = &Game::singleton() + && let Some(player) = game.bind().find_player(game.bind().self_id.unwrap_or(0)) + && let Some(name_label) = &mut self.name_field + { + if player.data.name != name_label.get_text().to_string() { + name_label.set_text(&player.data.name); + } + } + self.update_ready_button(); if let Some(list) = &mut self.players_list {