81 lines
3.0 KiB
GDScript
81 lines
3.0 KiB
GDScript
extends Control
|
|
@onready var options_menu: Control = $"."
|
|
|
|
@onready var volume_slider: HSlider = $Volume
|
|
@onready var music: HSlider = $Music
|
|
@onready var sfx_vol: HSlider = $SFX_vol
|
|
@onready var mute_checkbox: CheckButton = $Mute
|
|
@onready var resolution_dropdown: OptionButton = $Resolution
|
|
@onready var fullscreen_checkbox: CheckButton = $Fullscreen
|
|
@onready var vol_percentage: Label = $Volume/vol_percentage
|
|
@onready var music_percentage: Label = $Music/music_percentage
|
|
@onready var sfx_percentage: Label = $SFX_vol/sfx_percentage
|
|
|
|
|
|
func _ready() -> void:
|
|
# Update the UI with the loaded settings when the options menu is ready
|
|
update_ui()
|
|
|
|
func update_ui() -> void:
|
|
# Update UI elements to match the loaded settings
|
|
if Save.game_data.has("volume"):
|
|
volume_slider.value = Save.game_data["volume"]
|
|
if Save.game_data.has("music"):
|
|
music.value = Save.game_data["music"]
|
|
if Save.game_data.has("sfx"):
|
|
sfx_vol.value = Save.game_data["sfx"]
|
|
if Save.game_data.has("mute"):
|
|
mute_checkbox.button_pressed = Save.game_data["mute"]
|
|
if Save.game_data.has("resolution"):
|
|
resolution_dropdown.selected = Save.game_data["resolution"]
|
|
if Save.game_data.has("fullscreen"):
|
|
fullscreen_checkbox.button_pressed = Save.game_data["fullscreen"]
|
|
|
|
func _on_back_pressed() -> void:
|
|
options_menu.visible = false
|
|
|
|
func _on_volume_value_changed(value: float) -> void:
|
|
GlobalSettings.volume_value_changed(value)
|
|
Save.game_data["volume"] = value # Update the save data
|
|
Save.save_data() # Save the updated data
|
|
update_volume_percentage_label(value)
|
|
|
|
func update_volume_percentage_label(slider_value: float) -> void:
|
|
var percentage = int(slider_value)
|
|
vol_percentage.text = str(percentage) + "%"
|
|
|
|
func _on_music_value_changed(value: float) -> void:
|
|
GlobalSettings.music_value_changed(value)
|
|
Save.game_data["music"] = value # Update the save data
|
|
Save.save_data() # Save the updated data
|
|
update_music_percentage_label(value)
|
|
|
|
func update_music_percentage_label(slider_value: float) -> void:
|
|
var percentage = int(slider_value)
|
|
music_percentage.text = str(percentage) + "%"
|
|
|
|
func _on_sfx_vol_value_changed(value: float) -> void:
|
|
GlobalSettings.sfx_value_changed(value)
|
|
Save.game_data["sfx"] = value # Update the save data
|
|
Save.save_data() # Save the updated data
|
|
update_sfx_percentage_label(value)
|
|
|
|
func update_sfx_percentage_label(slider_value: float) -> void:
|
|
var percentage = int(slider_value)
|
|
sfx_percentage.text = str(percentage) + "%"
|
|
|
|
func _on_mute_toggled(toggled_on: bool) -> void:
|
|
GlobalSettings.mute_toggled(toggled_on)
|
|
Save.game_data["mute"] = toggled_on # Update the save data
|
|
Save.save_data() # Save the updated data
|
|
|
|
func _on_resolution_item_selected(index: int) -> void:
|
|
GlobalSettings.resolution_item_selected(index)
|
|
Save.game_data["resolution"] = index # Update the save data
|
|
Save.save_data() # Save the updated data
|
|
|
|
func _on_fullscreen_toggled(toggled_on: bool) -> void:
|
|
GlobalSettings.toggle_fullscreen(toggled_on)
|
|
Save.game_data["fullscreen"] = toggled_on # Update the save data
|
|
Save.save_data() # Save the updated data
|