moved chat to new ChatPanel and added smooth bottom scrolling when new message is received

This commit is contained in:
2025-07-20 13:36:30 +02:00
parent 4fe629d012
commit 3cf036db42
8 changed files with 274 additions and 79 deletions
+11 -1
View File
@@ -1,6 +1,9 @@
class_name WebClientTCP
extends Node
## Sender tag for system messages displayed in the chat
const SENDER_SYSTEM: String = "SYSTEM"
#var _tcp := StreamPeerTCP.new()
var _socket := WebSocketPeer.new()
@@ -58,6 +61,10 @@ signal received_end_game_request()
signal request_next_play()
signal request_next_round()
# new signals
## Emitted when a message that needs to be displayed to the player has been received.
signal user_message_received(sender: String, message: String)
enum ConnectionStatus {
DISCONNECTED,
ATTEMPTING_CONNECTION,
@@ -136,8 +143,11 @@ func _handle_response(response: String) -> void:
_connected_client_ids.assign(data["connected_client_ids"])
_connected_client_names.assign(data["connected_client_names"])
client_left_lobby.emit.call_deferred(data["client_name"], _connected_client_names)
## A chat message has been received
"receive_chat_message":
received_chat_message.emit.call_deferred(data["client_name"], data["message"])
# Relay message to be displayed in the chat panel
user_message_received.emit.call_deferred(data["client_name"], data["message"])
"new_round_started":
if data["current_round"] == 1: