ChronoChamber/Scripts/gui.gd
2025-07-08 15:06:09 +10:00

77 lines
2.1 KiB
GDScript

extends Control
@export_group("Node References")
@export var lose_panel : PanelContainer
@export var lose_label : Label
@export var reset_label : Label
@export var start_level : PanelContainer
@export var level_title : Label
@export var clock_progress : TextureProgressBar
@export var clock_label : Label
@export var volume_slider : HSlider
@export var music_slider : HSlider
@export var level_name : Label
@export var pause_menu : MarginContainer
var title_fade : float = 2.5
var sound = AudioServer.get_bus_index("SoundFX")
var music = AudioServer.get_bus_index("Music")
# Called when the node enters the scene tree for the first time.
func _ready():
lose_panel.visible = false
volume_slider.value = db_to_linear(AudioServer.get_bus_volume_db(sound))
music_slider.value = db_to_linear(AudioServer.get_bus_volume_db(music))
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
title_fade -= delta
start_level.modulate.a = clamp(title_fade,0,1)
pass
func show_lose_screen(lose_text : String, reset_timer : float):
lose_panel.visible = true
if lose_text != "":
lose_label.text = lose_text
reset_label.text = "Resetting in: " + str(round(reset_timer*10)/10)
func hide_lose_screen():
lose_panel.visible = false
clock_progress.value = 0
clock_label.text = str(0)
pass
func show_level_title(title : String):
level_title.text = title
level_name.text = title
title_fade = 2
func onTick(tick : int):
clock_progress.value = tick
if(tick == 11):
clock_label.text = str(10)
else:
clock_label.text = str(tick)
func open_pause():
pause_menu.show()
func close_pause():
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
pause_menu.hide()
get_parent().process_mode = Node.PROCESS_MODE_INHERIT
func goto_menu():
get_tree().change_scene_to_file(GameManager.menu_scene_path)
func _on_h_slider_value_changed(value: float) -> void:
AudioServer.set_bus_volume_db(sound, linear_to_db(value))
func _on_music_slider_value_changed(value: float) -> void:
AudioServer.set_bus_volume_db(music, linear_to_db(value))