Files
imnotsick/Scenes/UI/ui.gd
T
2026-08-16 01:06:53 +02:00

68 lines
2.2 KiB
GDScript

extends CanvasLayer
#UI Elements
@onready var confirmation_mask = $ConfirmationMask
@onready var masks = $Masks
@onready var pause_menu = $PauseMenu
#GameOver Scene
@onready var game_over = $GameOverControl
#Preloading Confirmation dialog
var confirmation_dialog = preload("res://Scenes/UI/confirmation_dialog.tscn")
#Signals for saving and loading
signal save_slot_pressed(save_slot_number: int)
signal load_slot_pressed(load_slot_number: int)
#Signal for going back to main menu
signal main_menu_pressed
#Signals for handling text settings
signal text_value_changed
signal auto_value_changed
#Boolean to differentiate in-game UI from title_screen UI
var in_title_screen = true
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
#Connecting signals
pause_menu.settings.text_value_changed.connect(func(): text_value_changed.emit())
pause_menu.settings.auto_value_changed.connect(func(): auto_value_changed.emit())
#Hiding everything at start
confirmation_mask.hide()
#Brings up a Confirmation Dialog
func ask_confirmation(function_yes: Callable, function_no: Callable, choice_text: String):
var choice_dialog = confirmation_dialog.instantiate()
add_child(choice_dialog)
var choice_text_label = choice_dialog.get_node("ConfirmationDialog/MarginContainer/VBoxContainer/ConfirmationText")
var choice_yes = choice_dialog.get_node("ConfirmationDialog/MarginContainer/VBoxContainer/MarginContainer/HBoxContainer/YesButton")
var choice_no = choice_dialog.get_node("ConfirmationDialog/MarginContainer/VBoxContainer/MarginContainer/HBoxContainer/NoButton")
#Clears the Confirmation Dialog and Remove the Mask no matter what choice is made
choice_yes.pressed.connect(func(): confirmation_mask.hide())
choice_yes.pressed.connect(func(): choice_dialog.queue_free())
choice_no.pressed.connect(func(): confirmation_mask.hide())
choice_no.pressed.connect(func(): choice_dialog.queue_free())
choice_yes.text = ("YES")
choice_no.text = ("NO")
choice_text_label.text = choice_text
#Connects Choices to their Functions
choice_yes.pressed.connect(function_yes, CONNECT_ONE_SHOT)
if function_no.is_valid():
choice_no.pressed.connect(function_no, CONNECT_ONE_SHOT)
choice_dialog.show()
confirmation_mask.show()