diff options
Diffstat (limited to 'client/gui/menus/game.gd')
-rw-r--r-- | client/gui/menus/game.gd | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/client/gui/menus/game.gd b/client/gui/menus/game.gd new file mode 100644 index 00000000..a4916b92 --- /dev/null +++ b/client/gui/menus/game.gd @@ -0,0 +1,64 @@ +# 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 <https://www.gnu.org/licenses/>. +# +extends Menu +class_name GameMenu + +@onready var game: Game = $Game +@onready var debug_label: RichTextLabel = $Debug +@onready var overlay: Overlay = $Overlay +@onready var popup_message: PopupMessage = $PopupMessage +@onready var chat_preview: ChatPreview = $ChatPreview +@onready var pinned_items: PinnedItemMessages = $PinnedItemMessages + +func _ready(): + get_tree().get_root().go_back_requested.connect(open_ingame_menu) + super() + transition.set_loading_text(tr("c.menu.game.connecting")) + Settings.hook_changed_init("ui.hide_overlays", false, apply_hide_overlays) + +func _input(_event): + if Input.is_action_just_pressed("ui_menu"): + open_ingame_menu() + + if Input.is_action_just_pressed("chat"): + Sound.play_click() + chat_preview.visible = false + await submenu("res://gui/menus/chat.tscn") + chat_preview.visible = true + + if Input.is_action_just_pressed("toggle_overlay"): + Global.set_setting("ui.hide_overlays", not Global.get_setting("ui.hide_overlays")) + +func _menu_cover(state): + game.follow_camera.disable_input_menu = state + game.follow_camera.update_disable_input() + +func _process(_delta): + if Global.get_setting("graphics.debug_info"): + debug_label.show() + debug_label.text = "%d FPS\nDriver: %s" % [Engine.get_frames_per_second(), ProjectSettings.get_setting("rendering/rendering_device/driver")] + else: debug_label.hide() + +func open_ingame_menu(): + if popup != null: return + Sound.play_click() + submenu("res://gui/menus/ingame.tscn") + +func apply_hide_overlays(v: bool): + overlay.visible = v + pinned_items.visible = v + chat_preview.visible = v + popup_message.visible = false |