36 lines
1.2 KiB
GDScript
36 lines
1.2 KiB
GDScript
extends HBoxContainer
|
|
## FriendRow — Single row in the friends list inside SocialPanel.
|
|
|
|
@onready var _name_label: Label = %NameLabel
|
|
@onready var _state_label: Label = %StateLabel
|
|
@onready var _dm_btn: Button = %DMBtn
|
|
@onready var _accept_btn: Button = %AcceptBtn
|
|
@onready var _decline_btn: Button = %DeclineBtn
|
|
@onready var _remove_btn: Button = %RemoveBtn
|
|
|
|
var _user_id: String
|
|
var _username: String
|
|
var _panel: Control # reference to SocialPanel for opening DM
|
|
|
|
func setup(uid: String, uname: String, state: int, panel: Control) -> void:
|
|
_user_id = uid
|
|
_username = uname
|
|
_panel = panel
|
|
|
|
_name_label.text = uname
|
|
|
|
match state:
|
|
FriendManager.STATE_FRIEND:
|
|
_dm_btn.visible = true
|
|
_remove_btn.visible = true
|
|
_dm_btn.pressed.connect(func(): panel.call("open_dm", uid, uname))
|
|
_remove_btn.pressed.connect(func(): FriendManager.remove_friend(uid))
|
|
FriendManager.STATE_INVITE_OUT:
|
|
_state_label.text = "(invite sent)"
|
|
_state_label.visible = true
|
|
FriendManager.STATE_INVITE_IN:
|
|
_accept_btn.visible = true
|
|
_decline_btn.visible = true
|
|
_accept_btn.pressed.connect(func(): FriendManager.add_friend_by_id(uid))
|
|
_decline_btn.pressed.connect(func(): FriendManager.remove_friend(uid))
|