From 32f7a426dbc2f03ea7f13fb09dd9986405821da9 Mon Sep 17 00:00:00 2001 From: Ryan Reed Date: Mon, 24 Mar 2025 16:16:12 -0400 Subject: [PATCH] Adding options for disabling quickslots or held block --- autoloads/game_settings_manager.gd | 12 ++++++++ .../game_options_settings_resource.gd | 2 ++ scenes/player/player.gd | 8 ++++- scenes/ui/menus/settings_menu.gd | 11 +++++++ scenes/ui/menus/settings_menu.tscn | 30 ++++++++++++++++++- scenes/ui/ui.gd | 4 ++- 6 files changed, 64 insertions(+), 3 deletions(-) diff --git a/autoloads/game_settings_manager.gd b/autoloads/game_settings_manager.gd index c6d4eba..276570c 100644 --- a/autoloads/game_settings_manager.gd +++ b/autoloads/game_settings_manager.gd @@ -3,6 +3,8 @@ extends Node #region Game Options Signals signal game_options_block_highlight_changed(block_highlight_enabled: bool) +signal game_options_held_block_ui_changed(held_block_enabled: bool) +signal game_options_quickslots_ui_changed(quickslots_enabled: bool) signal game_options_waila_changed(waila_enabled: bool) #endregion @@ -32,6 +34,8 @@ var settings: GameSettingsResource = GameSettingsResource.new() func _init() -> void: game_options_block_highlight_changed.connect(_on_game_options_block_highlight_changed) + game_options_held_block_ui_changed.connect(_on_game_options_held_block_ui_changed) + game_options_quickslots_ui_changed.connect(_on_game_options_quickslots_ui_changed) game_options_waila_changed.connect(_on_game_options_waila_changed) graphics_fov_changed.connect(_on_graphics_fov_changed) @@ -49,6 +53,14 @@ func _on_game_options_block_highlight_changed(highlight_enabled: bool) -> void: settings.game_options.enable_block_highlight = highlight_enabled _on_save_settings() +func _on_game_options_held_block_ui_changed(held_block_enabled: bool) -> void: + settings.game_options.enable_held_block = held_block_enabled + _on_save_settings() + +func _on_game_options_quickslots_ui_changed(quickslots_enabled: bool) -> void: + settings.game_options.enable_quickslots_ui = quickslots_enabled + _on_save_settings() + func _on_game_options_waila_changed(waila_enabled: bool) -> void: settings.game_options.enable_waila = waila_enabled _on_save_settings() diff --git a/resources/game_settings/game_options_settings_resource.gd b/resources/game_settings/game_options_settings_resource.gd index 5b06441..bd78936 100644 --- a/resources/game_settings/game_options_settings_resource.gd +++ b/resources/game_settings/game_options_settings_resource.gd @@ -4,3 +4,5 @@ extends Resource @export var enable_waila: bool = true ## Enable `What Am I Looking At` UI @export var enable_block_highlight: bool = true +@export var enable_quickslots_ui: bool = true +@export var enable_held_block: bool = true diff --git a/scenes/player/player.gd b/scenes/player/player.gd index 8283ab5..7779e28 100644 --- a/scenes/player/player.gd +++ b/scenes/player/player.gd @@ -54,6 +54,7 @@ func _physics_process(delta: float) -> void: func _ready() -> void: GameSettingsManager.graphics_fov_changed.connect(_on_graphics_fov_changed) + GameSettingsManager.game_options_held_block_ui_changed.connect(_on_game_options_held_block_ui_changed) InventoryManager.quick_slot_item_changed.connect(_on_quick_slot_item_changed) _update_held_block_mesh(InventoryManager.quick_slot_item_id) @@ -128,9 +129,14 @@ func _set_is_sprinting() -> void: is_sprinting = Input.is_action_pressed("run") func _update_held_block_mesh(item_id: String) -> void: - block_mesh.apply_material(DBItems.data[item_id].material_texture) + block_mesh.visible = GameSettingsManager.settings.game_options.enable_held_block + if GameSettingsManager.settings.game_options.enable_held_block: + block_mesh.apply_material(DBItems.data[item_id].material_texture) +func _on_game_options_held_block_ui_changed(toggled: bool) -> void: + block_mesh.visible = toggled + func _on_graphics_fov_changed(fov: int) -> void: camera.fov = fov diff --git a/scenes/ui/menus/settings_menu.gd b/scenes/ui/menus/settings_menu.gd index 3b69e40..b192ce9 100644 --- a/scenes/ui/menus/settings_menu.gd +++ b/scenes/ui/menus/settings_menu.gd @@ -4,6 +4,8 @@ extends Panel @export_group("Game Option Nodes") @export var block_highlight_input: CheckButton +@export var held_block_ui_input: CheckButton +@export var quick_slots_ui_input: CheckButton @export var waila_input: CheckButton @export_group("Graphics Settings Nodes") @@ -18,9 +20,12 @@ func _ready() -> void: apply_default_values() +## Sets the default values of all the inputs func apply_default_values() -> void: #region Game Options 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) waila_input.set_pressed_no_signal(GameSettingsManager.settings.game_options.enable_waila) #endregion @@ -39,6 +44,12 @@ func apply_default_values() -> void: func _on_block_highlighting_toggled(toggled_on: bool) -> void: GameSettingsManager.game_options_block_highlight_changed.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) #endregion diff --git a/scenes/ui/menus/settings_menu.tscn b/scenes/ui/menus/settings_menu.tscn index 79bfc88..9a6250e 100644 --- a/scenes/ui/menus/settings_menu.tscn +++ b/scenes/ui/menus/settings_menu.tscn @@ -14,7 +14,7 @@ corner_radius_top_right = 2 corner_radius_bottom_right = 2 corner_radius_bottom_left = 2 -[node name="SettingsMenu" type="Panel" node_paths=PackedStringArray("block_highlight_input", "waila_input", "resolution_input", "fullscreen_input", "vsync_input", "fov_slider", "fov_value_label")] +[node name="SettingsMenu" type="Panel" node_paths=PackedStringArray("block_highlight_input", "held_block_ui_input", "quick_slots_ui_input", "waila_input", "resolution_input", "fullscreen_input", "vsync_input", "fov_slider", "fov_value_label")] process_mode = 3 anchors_preset = 15 anchor_right = 1.0 @@ -23,6 +23,8 @@ grow_horizontal = 2 grow_vertical = 2 script = ExtResource("1_qwcqe") block_highlight_input = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Game/BlockHighlight/CheckButton") +held_block_ui_input = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Game/HeldBlockUI/CheckButton") +quick_slots_ui_input = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Game/QuickslotsUI/CheckButton") waila_input = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Game/Waila/CheckButton") resolution_input = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Graphics/Resolution/OptionButton") fullscreen_input = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Graphics/Fullscreen/CheckBox") @@ -100,6 +102,30 @@ text = "Enable Waila" layout_mode = 2 button_pressed = true +[node name="QuickslotsUI" type="HBoxContainer" parent="Background/MarginContainer/VBoxContainer/TabContainer/Game"] +layout_mode = 2 + +[node name="Label" type="Label" parent="Background/MarginContainer/VBoxContainer/TabContainer/Game/QuickslotsUI"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Enable Quickslots UI" + +[node name="CheckButton" type="CheckButton" parent="Background/MarginContainer/VBoxContainer/TabContainer/Game/QuickslotsUI"] +layout_mode = 2 +button_pressed = true + +[node name="HeldBlockUI" type="HBoxContainer" parent="Background/MarginContainer/VBoxContainer/TabContainer/Game"] +layout_mode = 2 + +[node name="Label" type="Label" parent="Background/MarginContainer/VBoxContainer/TabContainer/Game/HeldBlockUI"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Enable Player Held Block" + +[node name="CheckButton" type="CheckButton" parent="Background/MarginContainer/VBoxContainer/TabContainer/Game/HeldBlockUI"] +layout_mode = 2 +button_pressed = true + [node name="Graphics" type="VBoxContainer" parent="Background/MarginContainer/VBoxContainer/TabContainer"] visible = false layout_mode = 2 @@ -216,6 +242,8 @@ text = "Close Settings" [connection signal="toggled" from="Background/MarginContainer/VBoxContainer/TabContainer/Game/BlockHighlight/CheckButton" to="." method="_on_block_highlighting_toggled"] [connection signal="toggled" from="Background/MarginContainer/VBoxContainer/TabContainer/Game/Waila/CheckButton" to="." method="_on_enable_waila_toggled"] +[connection signal="toggled" from="Background/MarginContainer/VBoxContainer/TabContainer/Game/QuickslotsUI/CheckButton" to="." method="_on_quickslots_ui_toggled"] +[connection signal="toggled" from="Background/MarginContainer/VBoxContainer/TabContainer/Game/HeldBlockUI/CheckButton" to="." method="_on_held_block_ui_toggled"] [connection signal="value_changed" from="Background/MarginContainer/VBoxContainer/TabContainer/Graphics/FOV/HSlider" to="." method="_on_fov_slider_changed"] [connection signal="pressed" from="Background/MarginContainer/VBoxContainer/TabContainer/Graphics/CenterContainer/ApplyButton" to="." method="_on_graphics_apply_button_pressed"] [connection signal="pressed" from="Background/BottomRow/CloseButton" to="." method="_on_close_button_pressed"] diff --git a/scenes/ui/ui.gd b/scenes/ui/ui.gd index 86dbc6d..1f201a8 100644 --- a/scenes/ui/ui.gd +++ b/scenes/ui/ui.gd @@ -17,6 +17,8 @@ func _ready() -> void: SignalManager.open_settings_menu.connect(_on_open_settings_menu) SignalManager.resume_game.connect(_on_resume_game) + _on_resume_game() + func hide_menus() -> void: pause_menu.visible = false @@ -58,7 +60,7 @@ func _on_resume_game() -> void: hide_menus() crosshair.visible = true - quick_slots.visible = true + quick_slots.visible = true and GameSettingsManager.settings.game_options.enable_quickslots_ui waila.visible = true get_tree().paused = false