gates-multiplayer/ui/player_panel_contiainer.gd
2024-03-31 11:20:32 +04:00

28 lines
731 B
GDScript

extends VBoxContainer
@export var user_data_events: UserDataEvents
@export var player_panel: PackedScene
func _ready() -> void:
user_data_events.user_data_spawned.connect(user_data_spawned)
user_data_events.user_data_despawned.connect(user_data_despawned)
func user_data_spawned(id: int, user_data: UserData) -> void:
var p: PlayerPanel = player_panel.instantiate() as PlayerPanel
p.set_user_data(user_data)
p.name = str(id)
add_child(p)
if user_data.is_my_data: move_child(p, 0)
func user_data_despawned(id: int) -> void:
get_node(str(id)).queue_free()
func on_visibility_changed() -> void:
if not is_visible_in_tree() and not Connection.is_peer_connected:
for child in get_children():
child.queue_free()