|
class_name PauseMenuSettings
|
|
extends BaseMenu
|
|
|
|
|
|
@export_group("Game Option Nodes")
|
|
@export var autosaves_input: CheckButton
|
|
@export var block_highlight_input: CheckButton
|
|
@export var creative_mode_input: CheckButton
|
|
@export var held_block_ui_input: CheckButton
|
|
@export var quick_slots_ui_input: CheckButton
|
|
@export var screenshot_icon_input: CheckButton
|
|
@export var waila_input: CheckButton
|
|
|
|
@export_group("Graphics Settings Nodes")
|
|
@export var fov_slider: HSlider
|
|
@export var fov_value_label: Label
|
|
@export var resolution_input: OptionButton
|
|
@export var vsync_input: CheckBox
|
|
@export var window_mode_input: OptionButton
|
|
|
|
|
|
func init() -> void:
|
|
super.init()
|
|
|
|
apply_default_values()
|
|
|
|
|
|
## Sets the default values of all the inputs
|
|
func apply_default_values() -> void:
|
|
#region Game Options
|
|
autosaves_input.button_pressed = GameSettingsManager.settings.game_options.enable_autosaves
|
|
creative_mode_input.button_pressed = GameSettingsManager.settings.game_options.enable_creative_mode
|
|
block_highlight_input.set_pressed_no_signal(GameSettingsManager.settings.game_options.enable_block_highlight)
|
|
held_block_ui_input.set_pressed_no_signal(GameSettingsManager.settings.game_options.enable_held_block)
|
|
quick_slots_ui_input.set_pressed_no_signal(GameSettingsManager.settings.game_options.enable_quickslots_ui)
|
|
screenshot_icon_input.set_pressed_no_signal(GameSettingsManager.settings.game_options.enable_save_screenshots)
|
|
waila_input.set_pressed_no_signal(GameSettingsManager.settings.game_options.enable_waila)
|
|
#endregion
|
|
|
|
#region Graphics Settings
|
|
# Changing the FOV value should trigger the value_changed signal which should update the camera and label automatically
|
|
fov_slider.value = GameSettingsManager.settings.graphics.fov
|
|
vsync_input.set_pressed_no_signal(GameSettingsManager.settings.graphics.vsync)
|
|
|
|
var current_mode_index: int = window_mode_input.get_item_index(GameSettingsManager.settings.graphics.window_mode)
|
|
window_mode_input.select(current_mode_index)
|
|
|
|
var current_resolution_index: int = resolution_input.get_item_index(GameSettingsManager.settings.graphics.resolution_id)
|
|
resolution_input.select(current_resolution_index)
|
|
#endregion
|
|
|
|
|
|
|
|
#region Game Settings
|
|
func _on_block_highlighting_toggled(toggled_on: bool) -> void:
|
|
GameSettingsManager.game_options_block_highlight_changed.emit(toggled_on)
|
|
|
|
func _on_creative_mode_toggled(toggled_on: bool) -> void:
|
|
GameSettingsManager.game_options_creative_mode_changed.emit(toggled_on)
|
|
InventoryManager.toggle_creative_mode.emit(toggled_on)
|
|
|
|
func _on_held_block_ui_toggled(toggled_on: bool) -> void:
|
|
GameSettingsManager.game_options_held_block_ui_changed.emit(toggled_on)
|
|
|
|
func _on_quickslots_ui_toggled(toggled_on: bool) -> void:
|
|
GameSettingsManager.game_options_quickslots_ui_changed.emit(toggled_on)
|
|
|
|
func _on_enable_waila_toggled(toggled_on: bool) -> void:
|
|
GameSettingsManager.game_options_waila_changed.emit(toggled_on)
|
|
|
|
func _on_screenshot_icon_button_toggled(toggled_on: bool) -> void:
|
|
GameSettingsManager.game_options_screenshot_saves_changed.emit(toggled_on)
|
|
SaveGameManager.toggle_save_icon_generation.emit(toggled_on)
|
|
|
|
func _on_autosaves_button_toggled(toggled_on: bool) -> void:
|
|
GameSettingsManager.game_options_autosaves_changed.emit(toggled_on)
|
|
if toggled_on:
|
|
SaveGameManager.enable_autosaves.emit()
|
|
else:
|
|
SaveGameManager.disable_autosaves.emit()
|
|
#endregion
|
|
|
|
#region Graphics Settings
|
|
func _on_fov_slider_changed(value: float) -> void:
|
|
fov_value_label.text = str(int(value))
|
|
GameSettingsManager.graphics_fov_changed.emit(int(fov_slider.value))
|
|
|
|
func _on_graphics_apply_button_pressed() -> void:
|
|
var values: Array = resolution_input.text.split_floats("x")
|
|
var resolution_id: int = resolution_input.get_selected_id()
|
|
var window_mode_id: int = window_mode_input.get_selected_id()
|
|
|
|
GameSettingsManager.graphics_resolution_changed.emit(Vector2i(values[0], values[1]), resolution_id)
|
|
GameSettingsManager.graphics_window_mode_changed.emit(window_mode_id)
|
|
GameSettingsManager.graphics_vsync_changed.emit(vsync_input.button_pressed)
|
|
GameSettingsManager.apply_graphics_settings.emit()
|
|
#endregion
|
|
|
|
#region Audio Settings
|
|
#endregion
|
|
|
|
#region Input Settings
|
|
#endregion
|
|
|
|
|
|
func _on_close_button_pressed() -> void:
|
|
pause_menu.open_menu.emit("MainMenu")
|