🩹 rename nickname to username

This commit is contained in:
anyreso 2024-05-11 18:26:46 -04:00
parent 223aab2527
commit a64383a511
5 changed files with 37 additions and 32 deletions

View file

@ -1,22 +1,24 @@
class_name MatchParticipantComponent extends MultiplayerSynchronizer
signal player_id_changed(new_player_id : int)
signal nickname_changed(new_nickname : String)
signal username_changed(new_username : String)
@export var nickname : String = "<Newblood>":
@export var username : String = "<Newblood>":
set(value):
nickname = value
nickname_changed.emit(nickname)
username = value
username_changed.emit(username)
@export var player_id : int:
set(value):
player_id = value
player_id_changed.emit(player_id)
@export var team_id : int = 1
func _ready() -> void:
func _enter_tree() -> void:
root_path = "."
replication_config = SceneReplicationConfig.new()
for prop : String in ["player_id", "team_id", "nickname"]:
for prop : String in ["player_id", "team_id", "username"]:
var prop_path : NodePath = NodePath(prop).get_as_property_path()
replication_config.add_property(prop_path)
replication_config.property_set_replication_mode(

View file

@ -64,7 +64,7 @@ static var pawn_player : Player
func _ready() -> void:
match_participant_component.player_id_changed.connect(_setup_pawn)
match_participant_component.nickname_changed.connect(iff._on_username_changed)
match_participant_component.username_changed.connect(iff._on_username_changed)
match_participant_component.player_id_changed.connect(input.update_multiplayer_authority)
health_component.health_changed.connect(hud._on_health_changed)

View file

@ -17,10 +17,10 @@ class_name Scoreboard extends Control
@export var _entries : Dictionary = {}
class ScoreboardEntry:
var nickname : String
var username : String
var kills : int
var score : int
var nickname_label : Label = Label.new()
var username_label : Label = Label.new()
var kills_label : Label = Label.new()
var score_label : Label = Label.new()
@ -31,7 +31,7 @@ func _unhandled_input(event : InputEvent) -> void:
hide()
func add_participant(participant : MatchParticipantComponent) -> void:
_add_scoreboard_entry.rpc(participant.player_id, participant.nickname)
_add_scoreboard_entry.rpc(participant.player_id, participant.username)
func remove_participant(participant : MatchParticipantComponent) -> void:
_remove_scoreboard_entry.rpc(participant.player_id)
@ -42,7 +42,7 @@ func increment_kill_count(participant : MatchParticipantComponent) -> void:
func add_score_to_player(participant : MatchParticipantComponent, amount : int) -> void:
var player_id : int = participant.player_id
var entry : ScoreboardEntry = _entries[player_id]
_update_scoreboard_entry.rpc(player_id, entry.nickname, entry.kills, entry.score + amount)
_update_scoreboard_entry.rpc(player_id, entry.username, entry.kills, entry.score + amount)
@rpc("any_peer", "call_remote", "reliable")
func request_scoreboard_from_authority() -> void:
@ -50,21 +50,21 @@ func request_scoreboard_from_authority() -> void:
var recipient_id : int = multiplayer.get_remote_sender_id()
for entry_player_id : int in _entries:
var entry : ScoreboardEntry = _entries[entry_player_id]
_add_scoreboard_entry.rpc_id(recipient_id, entry_player_id, entry.nickname, entry.kills, entry.score)
_add_scoreboard_entry.rpc_id(recipient_id, entry_player_id, entry.username, entry.kills, entry.score)
@rpc("authority", "call_local", "reliable")
func _add_scoreboard_entry(player_id : int, nickname : String, kills : int = 0, score : int = 0) -> void:
func _add_scoreboard_entry(player_id : int, username : String, kills : int = 0, score : int = 0) -> void:
var new_entry : ScoreboardEntry = ScoreboardEntry.new()
_entries[player_id] = new_entry
%Scores.add_child(new_entry.nickname_label)
%Scores.add_child(new_entry.username_label)
%Scores.add_child(new_entry.kills_label)
%Scores.add_child(new_entry.score_label)
_update_scoreboard_entry(player_id, nickname, kills, score)
_update_scoreboard_entry(player_id, username, kills, score)
@rpc("authority", "call_local", "reliable")
func _update_scoreboard_entry(player_id : int, nickname : String, kills : int, score : int) -> void:
func _update_scoreboard_entry(player_id : int, username : String, kills : int, score : int) -> void:
var entry : ScoreboardEntry = _entries[player_id]
entry.nickname = nickname
entry.username = username
entry.kills = kills
entry.score = score
_update_scoreboard_entry_ui(player_id)
@ -72,13 +72,13 @@ func _update_scoreboard_entry(player_id : int, nickname : String, kills : int, s
@rpc("authority", "call_local", "reliable")
func _remove_scoreboard_entry(player_id : int) -> void:
var entry : ScoreboardEntry = _entries[player_id]
entry.nickname_label.queue_free()
entry.username_label.queue_free()
entry.kills_label.queue_free()
entry.score_label.queue_free()
_entries.erase(player_id)
func _update_scoreboard_entry_ui(player_id : int) -> void:
var entry : ScoreboardEntry = _entries[player_id]
entry.nickname_label.text = entry.nickname
entry.username_label.text = entry.username
entry.kills_label.text = str(entry.kills)
entry.score_label.text = str(entry.score)

View file

@ -28,7 +28,7 @@ class_name Multiplayer extends Node
signal connected_to_server
signal connection_failed
func start_server(port : int, map_scene : PackedScene, nickname : String = "mercury") -> void:
func start_server(port : int, map_scene : PackedScene, username : String = "mercury") -> void:
# setup enet server peer
var peer : ENetMultiplayerPeer = ENetMultiplayerPeer.new()
peer.create_server(port, MAX_CLIENTS)
@ -38,19 +38,19 @@ func start_server(port : int, map_scene : PackedScene, nickname : String = "merc
_load_map(map_scene)
if DisplayServer.get_name() != "headless":
add_player(1, nickname)
add_player(1, username)
func join_server(host : String, port : int, nickname : String) -> void:
func join_server(host : String, port : int, username : String) -> void:
var peer : ENetMultiplayerPeer = ENetMultiplayerPeer.new()
peer.create_client(host, port)
multiplayer.connected_to_server.connect(_on_connected_to_server.bind(nickname))
multiplayer.connected_to_server.connect(_on_connected_to_server.bind(username))
multiplayer.connection_failed.connect(_on_connection_failed)
multiplayer.multiplayer_peer = peer
func _on_connected_to_server(nickname : String) -> void:
func _on_connected_to_server(username : String) -> void:
connected_to_server.emit()
scoreboard.request_scoreboard_from_authority.rpc()
_join_match.rpc(nickname)
_join_match.rpc(username)
func _on_connection_failed() -> void:
connection_failed.emit()
@ -63,14 +63,14 @@ func respawn_player(player : Player) -> void:
var spawn_location : Vector3 = MapsManager.get_player_spawn().position
player.respawn.rpc(spawn_location)
func add_player(peer_id : int, nickname : String) -> void:
func add_player(peer_id : int, username : String) -> void:
var player : Player = PLAYER.instantiate()
player.name = str(peer_id)
player.died.connect(_on_player_died)
players.add_child(player)
player.match_participant_component.player_id = peer_id
player.match_participant_component.team_id = ($RabbitScoringComponent as RabbitScoringComponent)._team_chasers.team_id
player.match_participant_component.nickname = nickname
player.match_participant_component.username = username
player.global_position = MapsManager.get_player_spawn().position
$DeathmatchScoringComponent.subscribe_player(player)
scoreboard.add_participant(player.match_participant_component)
@ -100,10 +100,13 @@ func _add_flag() -> void:
if flagstand:
flag.global_position = flagstand.global_position
# This method notifies the server that a player wants to join the match. It
# takes a single [param username] parameter and is invoked remotely by clients.
@rpc("any_peer", "reliable")
func _join_match(nickname : String) -> void:
if is_multiplayer_authority():
add_player(multiplayer.get_remote_sender_id(), nickname)
func _join_match(username : String) -> void:
if multiplayer.is_server():
# add player to server with unique id and username
add_player(multiplayer.get_remote_sender_id(), username)
func _exit_tree() -> void:
# @NOTE: The `is_multiplayer_authority` method in `_exit_tree` push an error

View file

@ -27,12 +27,12 @@ func test_that_new_scoreboard_is_empty() -> void:
func test_that_added_entry_is_added_correctly() -> void:
var participant : MatchParticipantComponent = MatchParticipantComponent.new()
participant.nickname = "test_nickname"
participant.username = "test_username"
_subject.add_participant(participant)
var entries : Array = _subject._entries.values()
assert_eq(1, entries.size())
var tested_entry : Scoreboard.ScoreboardEntry = entries[0]
assert_eq("test_nickname", tested_entry.nickname)
assert_eq("test_username", tested_entry.username)
assert_eq(0, tested_entry.kills)
assert_eq(0, tested_entry.score)
participant.free()