diff options
author | Daniel Weipert <git@mail.dweipert.de> | 2024-09-28 15:27:43 +0200 |
---|---|---|
committer | Daniel Weipert <git@mail.dweipert.de> | 2024-09-28 15:27:43 +0200 |
commit | b96e384d8299473b14edcbf885fa914a9308d18f (patch) | |
tree | 0bde9428f42b309ea167a41473252bda8035e21a /UI/players_list.gd | |
parent | 4597189f157834c80f56b12b701fd2b2a15c2798 (diff) |
next commit
Diffstat (limited to 'UI/players_list.gd')
-rw-r--r-- | UI/players_list.gd | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/UI/players_list.gd b/UI/players_list.gd new file mode 100644 index 0000000..c1ca00f --- /dev/null +++ b/UI/players_list.gd @@ -0,0 +1,33 @@ +extends PanelContainer + + +@onready var list: Control = %List + + +func _ready() -> void: + #players_list_container.visible = false + Network.players_changed.connect(update_players) + update_players() + + multiplayer.peer_disconnected.connect(remove_player) + + +func update_players(): + for id in Network.players.keys(): + var player: Player = Network.players[id] + + var control: Control = list.get_node_or_null(str(id)) + if not control: + control = preload("res://UI/PlayersListItem.tscn").instantiate() + control.name = str(id) + control.modulate = player.get_color() + control.get_node("%Indicator").visible = id == multiplayer.get_unique_id() + list.add_child(control) + + control.get_node("%ID").text = str(id) + control.get_node("%Score").text = str(player.score) + list.move_child(control, Network.get_ordered_player_ids().find(id) + 1) + + +func remove_player(id): + list.remove_child(list.get_node(str(id))) |