moved chat to new ChatPanel and added smooth bottom scrolling when new message is received
This commit is contained in:
@@ -19,7 +19,8 @@ extends Control
|
||||
@export var output: Label
|
||||
|
||||
func _write_line(text: String) -> void:
|
||||
output.text += text + "\n"
|
||||
#output.text += text + "\n"
|
||||
pass
|
||||
|
||||
func _on_create_lobby_button_pressed() -> void:
|
||||
client.create_lobby(name_input.text.strip_edges())
|
||||
@@ -63,12 +64,6 @@ func _on_web_client_tcp_client_joined_lobby(client_name: String, connected_clien
|
||||
}))
|
||||
_update_connected_players(connected_client_names)
|
||||
|
||||
func _on_web_client_tcp_received_chat_message(client_name: String, message: String) -> void:
|
||||
_write_line("<{client_name}> {message}".format({
|
||||
"client_name": client_name,
|
||||
"message": message,
|
||||
}))
|
||||
|
||||
func _on_web_client_tcp_client_left_lobby(client_name: String, connected_client_names: Array) -> void:
|
||||
_write_line("{client_name} left the lobby".format({"client_name": client_name}))
|
||||
_update_connected_players(connected_client_names)
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user