diff options
author | nokoe <nokoe@mailbox.org> | 2024-10-03 16:43:37 +0200 |
---|---|---|
committer | nokoe <nokoe@mailbox.org> | 2024-10-03 16:43:37 +0200 |
commit | 43390237a6dacaeff59826c1f6951afa13ab2d7f (patch) | |
tree | ab3dd6022596edbee3f5706b657311e22b6f3fd2 /client/menu | |
parent | 0c789a627e1f0357c2e14523782a253c80c50560 (diff) | |
download | hurrycurry-43390237a6dacaeff59826c1f6951afa13ab2d7f.tar hurrycurry-43390237a6dacaeff59826c1f6951afa13ab2d7f.tar.bz2 hurrycurry-43390237a6dacaeff59826c1f6951afa13ab2d7f.tar.zst |
chat messages show user color; align vertically; fixes #207
Diffstat (limited to 'client/menu')
-rw-r--r-- | client/menu/communicate/chat/chat_message.gd | 9 | ||||
-rw-r--r-- | client/menu/communicate/chat/chat_message.tscn | 19 | ||||
-rw-r--r-- | client/menu/communicate/chat/chat_open.gd | 10 | ||||
-rw-r--r-- | client/menu/communicate/chat/chat_preview.gd | 17 |
4 files changed, 32 insertions, 23 deletions
diff --git a/client/menu/communicate/chat/chat_message.gd b/client/menu/communicate/chat/chat_message.gd index 1cc57102..c6e64a7c 100644 --- a/client/menu/communicate/chat/chat_message.gd +++ b/client/menu/communicate/chat/chat_message.gd @@ -13,16 +13,17 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. # -extends HBoxContainer +extends VBoxContainer class_name ChatMessage @onready var fade_away_timer: Timer = $FadeAway @onready var sender_label: Label = $Sender -@onready var message_label: Label = $Message +@onready var message_label: Label = $MarginContainer/Message -func set_message(username: String, message: String, fade_away: bool = false, fade_time: float = 5.): - sender_label.text = username +func set_message(username: String, message: String, username_color: Color, fade_away: bool = false, fade_time: float = 5.): + sender_label.text = "<%s>" % username message_label.text = message + sender_label.add_theme_color_override("font_color", username_color) if fade_away: fade_away_timer.start(fade_time) diff --git a/client/menu/communicate/chat/chat_message.tscn b/client/menu/communicate/chat/chat_message.tscn index a095c42e..06a9311e 100644 --- a/client/menu/communicate/chat/chat_message.tscn +++ b/client/menu/communicate/chat/chat_message.tscn @@ -6,9 +6,9 @@ [sub_resource type="FontVariation" id="FontVariation_jfhbh"] variation_embolden = 1.3 -[node name="ChatMessage" type="HBoxContainer"] +[node name="ChatMessage" type="VBoxContainer"] offset_right = 72.0 -offset_bottom = 165.0 +offset_bottom = 192.0 theme = ExtResource("1_rx6vg") script = ExtResource("1_ey0qp") @@ -17,14 +17,21 @@ layout_mode = 2 theme_override_fonts/font = SubResource("FontVariation_jfhbh") text = "<Name>" -[node name="Message" type="Label" parent="."] +[node name="FadeAway" type="Timer" parent="."] +one_shot = true + +[node name="MarginContainer" type="MarginContainer" parent="."] +layout_mode = 2 +theme_override_constants/margin_left = 10 +theme_override_constants/margin_top = 0 +theme_override_constants/margin_right = 0 +theme_override_constants/margin_bottom = 5 + +[node name="Message" type="Label" parent="MarginContainer"] layout_mode = 2 size_flags_horizontal = 3 text = "Message" vertical_alignment = 1 autowrap_mode = 3 -[node name="FadeAway" type="Timer" parent="."] -one_shot = true - [connection signal="timeout" from="FadeAway" to="." method="_on_fade_away_timeout"] diff --git a/client/menu/communicate/chat/chat_open.gd b/client/menu/communicate/chat/chat_open.gd index c7060e7d..af691f39 100644 --- a/client/menu/communicate/chat/chat_open.gd +++ b/client/menu/communicate/chat/chat_open.gd @@ -27,11 +27,11 @@ const CHAT_MESSAGE_SCENE = preload("res://menu/communicate/chat/chat_message.tsc func _ready() -> void: super() for i in game.text_message_history: - add_message(i[0], i[1]) + add_message(i) game.text_message.connect( - func message(username: String, text: String, _timeout_initial: float, _timeout_remaining: float): - add_message(username, text) + func message(m: Game.TextMessage): + add_message(m) ) func _input(event: InputEvent) -> void: @@ -41,8 +41,8 @@ func _input(event: InputEvent) -> void: exit() super(event) -func add_message(username: String, message: String): +func add_message(message: Game.TextMessage): var chat_message: ChatMessage = CHAT_MESSAGE_SCENE.instantiate() messages_container.add_child(chat_message) - chat_message.set_message("<%s>" % username, message) + chat_message.set_message(message.username, message.text, message.color) scroll_container.call_deferred("scroll_to_bottom") diff --git a/client/menu/communicate/chat/chat_preview.gd b/client/menu/communicate/chat/chat_preview.gd index 14713f7e..798fbdd1 100644 --- a/client/menu/communicate/chat/chat_preview.gd +++ b/client/menu/communicate/chat/chat_preview.gd @@ -22,12 +22,13 @@ const CHAT_MESSAGE_SCENE = preload("res://menu/communicate/chat/chat_message.tsc @onready var messages_container: VBoxContainer = $MarginContainer/ScrollContainer/PanelContainer/Messages func _ready(): - game.text_message.connect( - func message(username: String, text: String, _timeout_initial: float, timeout_remaining: float): - add_message(username, text, timeout_remaining) + game.text_message.connect(func(message: Game.TextMessage): + var chat_message: ChatMessage = CHAT_MESSAGE_SCENE.instantiate() + messages_container.add_child(chat_message) + chat_message.set_message( + message.username, + message.text, + message.color, + true, + message.timeout_remaining) ) - -func add_message(username: String, message: String, time: float): - var chat_message: ChatMessage = CHAT_MESSAGE_SCENE.instantiate() - messages_container.add_child(chat_message) - chat_message.set_message("<%s>" % username, message, true, time) |