make messages scroll to bottom on new messages
This commit is contained in:
@@ -5,13 +5,17 @@ var open: bool = false
|
||||
|
||||
var _chat_message_scene := preload("res://scenes/ui/chat_message.tscn")
|
||||
|
||||
@onready var _messages_container: Container = $Root/VBox/MsgScroll/MsgMargin/MsgContainer
|
||||
@onready var _message_edit: LineEdit = $Root/VBox/MessageEdit
|
||||
@onready var _msg_scroll: ScrollContainer = $MsgMargin/MsgVBox/MsgScroll
|
||||
@onready
|
||||
var _msg_container: Container = $MsgMargin/MsgVBox/MsgScroll/MsgMargin/MsgContainer
|
||||
@onready var _msg_margin: Container = $MsgMargin/MsgVBox/MsgScroll/MsgMargin
|
||||
@onready var _message_edit: LineEdit = $EditMargin/EditVBox/MessageEdit
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
_message_edit.text_submitted.connect(_on_message_edit_text_submitted)
|
||||
_message_edit.visible = false
|
||||
_msg_margin.minimum_size_changed.connect(_on_message_margin_minimum_size_changed)
|
||||
Referencer.chat = self
|
||||
|
||||
|
||||
@@ -48,7 +52,7 @@ func _send_message(message: String) -> void:
|
||||
Networker.players[multiplayer.get_remote_sender_id()]["name"] as String
|
||||
)
|
||||
var message_node := _make_message_node(player_name, message)
|
||||
_messages_container.add_child(message_node)
|
||||
_msg_container.add_child(message_node)
|
||||
print(player_name + ": " + message)
|
||||
|
||||
|
||||
@@ -60,5 +64,13 @@ func _make_message_node(player_name: String, message: String) -> RichTextLabel:
|
||||
|
||||
|
||||
func _on_message_edit_text_submitted(message: String) -> void:
|
||||
if _message_edit.text == "":
|
||||
return
|
||||
_message_edit.text = ""
|
||||
_send_message.rpc(message)
|
||||
|
||||
|
||||
func _on_message_margin_minimum_size_changed() -> void:
|
||||
_msg_scroll.set_deferred(
|
||||
"scroll_vertical", int(_msg_scroll.get_v_scroll_bar().max_value) + 100
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user