# Hurry Curry! - a game about cooking # Copyright (C) 2025 Hurry Curry! contributors # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, version 3 of the License only. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # extends Menu class_name ChatOpen const CHAT_MESSAGE_SCENE = preload("res://menu/communicate/chat/chat_message.tscn") @onready var messages_container: VBoxContainer = $PanelContainer/MarginContainer/VBoxContainer/ScrollContainerCustom/Messages @onready var scroll_container: ScrollContainerCustom = $PanelContainer/MarginContainer/VBoxContainer/ScrollContainerCustom @onready var line: LineEdit = $PanelContainer/MarginContainer/VBoxContainer/LineEdit @onready var game_menu: GameMenu = get_parent() @onready var game: Game = game_menu.game func _ready() -> void: super() for i in game.text_message_history: add_message(i) game.text_message.connect( func message(m: Game.TextMessage): add_message(m) ) func _input(event: InputEvent) -> void: if Input.is_action_just_pressed("chat"): if line.text != "": game.mp.send_chat(game.my_player_id, line.text) exit() super(event) func add_message(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) scroll_container.call_deferred("scroll_to_bottom")