class_name ChatView extends Control @export var conversation : ChatConversation @export var scroll_offset := 220 var prefab_other: PackedScene = preload("res://logic-scenes/chat_view/message_other.tscn") var prefab_self: PackedScene = preload("res://logic-scenes/chat_view/message_self.tscn") func _ready() -> void: rebuild.call_deferred() func rebuild() -> void: for message in conversation.messages: var bubble : ChatBubble = prefab_self.instantiate() if message.is_own_message else prefab_other.instantiate() %ChatHistory.add_child(bubble) bubble.set_text.call_deferred(message.text, message.time_string) await get_tree().process_frame %ChatContainer.scroll_vertical = scroll_offset