From 6cc3a68d00deae51c58fd3d9f7f0e1de8ceaf3d9 Mon Sep 17 00:00:00 2001 From: Ryan Reed Date: Sun, 23 Mar 2025 14:51:35 -0400 Subject: [PATCH] Adding resolution id to settings export (GraphicsSettingsResource) --- autoloads/game_settings_manager.gd | 6 ++++-- resources/game_settings/graphics_settings_resource.gd | 3 ++- scenes/ui/menus/settings_menu.gd | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/autoloads/game_settings_manager.gd b/autoloads/game_settings_manager.gd index ef03d49..c6d4eba 100644 --- a/autoloads/game_settings_manager.gd +++ b/autoloads/game_settings_manager.gd @@ -8,7 +8,7 @@ signal game_options_waila_changed(waila_enabled: bool) #region Graphics Settings Signals signal apply_graphics_settings -signal graphics_resolution_changed(resolution: Vector2i) +signal graphics_resolution_changed(resolution: Vector2i, id: int) signal graphics_fullscreen_changed(fullscreen_enabled: bool) signal graphics_vsync_changed(vsync_enabled: bool) signal graphics_fov_changed(fov: int) @@ -76,13 +76,15 @@ func _on_graphics_fov_changed(fov: int) -> void: func _on_graphics_fullscreen_changed(fullscreen_enabled: bool) -> void: settings.graphics.fullscreen = fullscreen_enabled -func _on_graphics_resolution_changed(resolution: Vector2i) -> void: +func _on_graphics_resolution_changed(resolution: Vector2i, id: int) -> void: settings.graphics.resolution = resolution + settings.graphics.resolution_id = id func _on_graphics_vsync_changed(vsync_enabled: bool) -> void: settings.graphics.vsync = vsync_enabled #endregion + #region Saving and Loading Settings func _on_load_settings(apply_after_load: bool = true) -> void: if !FileAccess.file_exists(settings_file_path): diff --git a/resources/game_settings/graphics_settings_resource.gd b/resources/game_settings/graphics_settings_resource.gd index 6a89209..3152aac 100644 --- a/resources/game_settings/graphics_settings_resource.gd +++ b/resources/game_settings/graphics_settings_resource.gd @@ -3,7 +3,8 @@ class_name GraphicsSettingsResource extends Resource -@export var resolution: Vector2i = Vector2i(1280, 720) +@export var resolution: Vector2i = Vector2i(1280, 720) ## Width, Height +@export var resolution_id: int = 0 ## The ID of the item in the OptionsButton list element @export var fullscreen: bool = false @export var vsync: bool = false @export var fov: int = 75 diff --git a/scenes/ui/menus/settings_menu.gd b/scenes/ui/menus/settings_menu.gd index 5cc8c46..014e71c 100644 --- a/scenes/ui/menus/settings_menu.gd +++ b/scenes/ui/menus/settings_menu.gd @@ -25,12 +25,12 @@ func _on_fov_slider_changed(value: float) -> void: func _on_graphics_apply_button_pressed() -> void: var values: Array = resolution_input.text.split_floats("x") + var id: int = resolution_input.get_selected_id() - GameSettingsManager.graphics_resolution_changed.emit(Vector2i(values[0], values[1])) + GameSettingsManager.graphics_resolution_changed.emit(Vector2i(values[0], values[1]), id) GameSettingsManager.graphics_fullscreen_changed.emit(fullscreen_input.button_pressed) GameSettingsManager.graphics_vsync_changed.emit(vsync_input.button_pressed) GameSettingsManager.apply_graphics_settings.emit() - #endregion #region Audio Settings