aboutsummaryrefslogtreecommitdiff
path: root/client/menu
diff options
context:
space:
mode:
authornokoe <nokoe@mailbox.org>2024-10-03 16:43:37 +0200
committernokoe <nokoe@mailbox.org>2024-10-03 16:43:37 +0200
commit43390237a6dacaeff59826c1f6951afa13ab2d7f (patch)
treeab3dd6022596edbee3f5706b657311e22b6f3fd2 /client/menu
parent0c789a627e1f0357c2e14523782a253c80c50560 (diff)
downloadhurrycurry-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.gd9
-rw-r--r--client/menu/communicate/chat/chat_message.tscn19
-rw-r--r--client/menu/communicate/chat/chat_open.gd10
-rw-r--r--client/menu/communicate/chat/chat_preview.gd17
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)