2025-04-26 21:33:44 +00:00
|
|
|
class_name ChatView extends ScrollContainer
|
|
|
|
|
|
|
|
|
|
@export var messages: Array[ChatMessage]
|
2025-05-26 15:44:11 +00:00
|
|
|
|
2026-03-20 21:06:48 +00:00
|
|
|
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")
|
2026-03-20 20:29:35 +00:00
|
|
|
|
2025-05-26 15:44:11 +00:00
|
|
|
var v_box: VBoxContainer
|
|
|
|
|
|
|
|
|
|
func _ready() -> void:
|
2026-03-20 21:06:48 +00:00
|
|
|
rebuild.call_deferred()
|
2026-03-12 13:14:18 +00:00
|
|
|
|
2025-05-26 15:44:11 +00:00
|
|
|
func rebuild():
|
|
|
|
|
for message in messages:
|
2026-03-20 21:06:48 +00:00
|
|
|
var bubble : ChatBubble = prefab_self.instantiate() if message.is_own_message else prefab_other.instantiate()
|
|
|
|
|
$VBoxContainer.add_child(bubble)
|
|
|
|
|
bubble.set_text.call_deferred(message.text, message.time_string)
|