Fixed player list
parent
9391eabbc5
commit
cbe6acbe8a
24
Game/Game.gd
24
Game/Game.gd
|
@ -36,12 +36,12 @@ func set_local_player(player):
|
||||||
var nickname = $MenuContainer/MainMenu/Name.text
|
var nickname = $MenuContainer/MainMenu/Name.text
|
||||||
set_nickname(nickname)
|
set_nickname(nickname)
|
||||||
player.set_nickname(nickname)
|
player.set_nickname(nickname)
|
||||||
on_player_added(player)
|
|
||||||
|
|
||||||
var player_data = get_player_data()
|
var player_data = get_player_data()
|
||||||
print(player_data)
|
|
||||||
|
|
||||||
rpc("set_player_data", player_data)
|
rpc("set_player_data", player_data)
|
||||||
|
|
||||||
|
$PlayerListContainer.update_player_list()
|
||||||
|
|
||||||
player.hide()
|
player.hide()
|
||||||
|
|
||||||
|
@ -282,10 +282,8 @@ remote func check_players(player_data):
|
||||||
player.translation += Vector3(0.0, 3.0, 0.0)
|
player.translation += Vector3(0.0, 3.0, 0.0)
|
||||||
|
|
||||||
player.set_nickname(data["nickname"])
|
player.set_nickname(data["nickname"])
|
||||||
|
|
||||||
on_player_added(player)
|
$PlayerListContainer.update_player_list()
|
||||||
|
|
||||||
print(player.player_class)
|
|
||||||
|
|
||||||
func join_game():
|
func join_game():
|
||||||
var player = player_scene.instance()
|
var player = player_scene.instance()
|
||||||
|
@ -303,19 +301,13 @@ sync func spawn(player_id):
|
||||||
spawning_player.show()
|
spawning_player.show()
|
||||||
close_menus()
|
close_menus()
|
||||||
|
|
||||||
func on_player_added(player):
|
|
||||||
var player_list_item = preload("res://Classes/UI/PlayerListItem.tscn").instance()
|
|
||||||
$PlayerListContainer/Panel/PlayerList.add_child(player_list_item)
|
|
||||||
player_list_item.player = player
|
|
||||||
|
|
||||||
sync func remove_player(id):
|
sync func remove_player(id):
|
||||||
for player_list_item in $PlayerListContainer/Panel/PlayerList.get_children():
|
|
||||||
if player_list_item.network_id == str(id):
|
|
||||||
player_list_item.queue_free()
|
|
||||||
|
|
||||||
for player in $Players.get_children():
|
for player in $Players.get_children():
|
||||||
if player.name == str(id):
|
if player.name == str(id):
|
||||||
player.queue_free()
|
player.free()
|
||||||
|
|
||||||
|
$PlayerListContainer.update_player_list()
|
||||||
|
|
||||||
|
|
||||||
func get_spawn_point():
|
func get_spawn_point():
|
||||||
return $Level/SpawnPoints.get_spawn_point()
|
return $Level/SpawnPoints.get_spawn_point()
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
[gd_scene load_steps=5 format=2]
|
[gd_scene load_steps=6 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://Classes/UI/theme.tres" type="Theme" id=1]
|
[ext_resource path="res://Classes/UI/theme.tres" type="Theme" id=1]
|
||||||
[ext_resource path="res://Game.gd" type="Script" id=2]
|
[ext_resource path="res://Game.gd" type="Script" id=2]
|
||||||
[ext_resource path="res://Assets/Maps/DM1/DM1.tscn" type="PackedScene" id=3]
|
[ext_resource path="res://Assets/Maps/DM1/DM1.tscn" type="PackedScene" id=3]
|
||||||
[ext_resource path="res://Classes/UI/CharacterSelect.tscn" type="PackedScene" id=4]
|
[ext_resource path="res://Classes/UI/CharacterSelect.tscn" type="PackedScene" id=4]
|
||||||
|
[ext_resource path="res://PlayerListContainer.gd" type="Script" id=5]
|
||||||
|
|
||||||
[node name="Game" type="Node"]
|
[node name="Game" type="Node"]
|
||||||
script = ExtResource( 2 )
|
script = ExtResource( 2 )
|
||||||
|
@ -300,6 +301,7 @@ visible = false
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
theme = ExtResource( 1 )
|
theme = ExtResource( 1 )
|
||||||
|
script = ExtResource( 5 )
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
extends CenterContainer
|
||||||
|
|
||||||
|
var tracked_players = []
|
||||||
|
|
||||||
|
func update_player_list():
|
||||||
|
var players = get_parent().get_node("Players").get_children()
|
||||||
|
|
||||||
|
for child in $Panel/PlayerList.get_children():
|
||||||
|
$Panel/PlayerList.remove_child(child)
|
||||||
|
|
||||||
|
for player in players:
|
||||||
|
var player_list_item = preload("res://Classes/UI/PlayerListItem.tscn").instance()
|
||||||
|
$Panel/PlayerList.add_child(player_list_item)
|
||||||
|
player_list_item.player = player
|
||||||
|
|
Reference in New Issue