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/communicate | |
| 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/communicate')
| -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) | 
