diary/user_interface/chat_panel/message_group_container.gd
2022-06-06 17:37:28 +02:00

60 lines
1.6 KiB
GDScript

extends HBoxContainer
class_name MessageGroupContainer
onready var profile_image_rect = get_node("ProfileImageRect")
onready var header = get_node("VBoxContainer/Header")
onready var username = get_node("VBoxContainer/Header/Username")
onready var date = get_node("VBoxContainer/Header/Date")
onready var message_container = get_node("VBoxContainer/MessageContainer")
var associated_message_group: WeakRef
func _ready():
# warning-ignore:return_value_discarded
Users.connect("switched", self, "_on_user_switched")
_setup()
func get_user() -> User:
return associated_message_group.get_ref().associated_user
func add(message):
message_container.add_child(message)
func _on_user_switched():
_adjust_layout_to_user()
func _setup():
profile_image_rect.texture = get_user().profile_image
username.text = get_user().username
# Define date.
var time_stamp = associated_message_group.get_ref().time_stamp
var storaged_date = OS.get_datetime_from_unix_time(time_stamp)
var os_time = OS.get_datetime_from_unix_time(Time.get_current_time())
if storaged_date.day == os_time.day:
date.text = "Today at " + Time.get_time_string(time_stamp)
elif storaged_date.day == os_time.day - 1:
date.text = "Yesterday at " + Time.get_time_string(time_stamp)
else:
date.text = Time.get_date_string(time_stamp)
_adjust_layout_to_user()
func _adjust_layout_to_user():
if get_user().is_current():
move_child(profile_image_rect, 1)
header.alignment = BoxContainer.ALIGN_END
size_flags_horizontal = SIZE_SHRINK_END
else:
move_child(profile_image_rect, 0)
header.alignment = BoxContainer.ALIGN_BEGIN
size_flags_horizontal = 0