messages can now be sent by pressing enter

This commit is contained in:
2025-07-20 14:11:46 +02:00
parent 3cf036db42
commit ce820260bd
5 changed files with 39 additions and 9 deletions
+21
View File
@@ -6,6 +6,10 @@ extends VBoxContainer
@export_range(0.1, 1.0, 0.05) var auto_scroll_duration: float = 0.2
@export var message_container: VBoxContainer
@export var scroll_container: ScrollContainer
@export var message_input: LineEdit
@export var send_message_button: Button
signal message_sent(message: String)
func put_chat_message(sender: String, message: String) -> void:
var scene: ChatMessage = _chat_message_scene.instantiate()
@@ -22,5 +26,22 @@ func put_chat_message(sender: String, message: String) -> void:
func _scroll_to_bottom() -> void:
create_tween().set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT).tween_property(scroll_container, "scroll_vertical", scroll_container.get_v_scroll_bar().max_value - scroll_container.get_v_scroll_bar().size.y, auto_scroll_duration)
func _send_chat_message() -> void:
if message_input.text.is_empty():
return
message_sent.emit(message_input.text.strip_edges())
message_input.text = ""
func _on_web_client_user_message_received(sender: String, message: String) -> void:
put_chat_message(sender, message)
func _on_message_input_text_changed(new_text: String) -> void:
send_message_button.disabled = new_text.is_empty()
func _on_message_input_gui_input(event: InputEvent) -> void:
if event.is_action_pressed("send_chat_message"):
_send_chat_message()
func _on_send_message_button_pressed() -> void:
_send_chat_message()