Browse Source

Adding options for disabling quickslots or held block

pull/13/head
Ryan Reed 1 month ago
parent
commit
32f7a426db
6 changed files with 64 additions and 3 deletions
  1. +12
    -0
      autoloads/game_settings_manager.gd
  2. +2
    -0
      resources/game_settings/game_options_settings_resource.gd
  3. +7
    -1
      scenes/player/player.gd
  4. +11
    -0
      scenes/ui/menus/settings_menu.gd
  5. +29
    -1
      scenes/ui/menus/settings_menu.tscn
  6. +3
    -1
      scenes/ui/ui.gd

+ 12
- 0
autoloads/game_settings_manager.gd View File

@ -3,6 +3,8 @@ extends Node
#region Game Options Signals #region Game Options Signals
signal game_options_block_highlight_changed(block_highlight_enabled: bool) 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) signal game_options_waila_changed(waila_enabled: bool)
#endregion #endregion
@ -32,6 +34,8 @@ var settings: GameSettingsResource = GameSettingsResource.new()
func _init() -> void: func _init() -> void:
game_options_block_highlight_changed.connect(_on_game_options_block_highlight_changed) 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) game_options_waila_changed.connect(_on_game_options_waila_changed)
graphics_fov_changed.connect(_on_graphics_fov_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 settings.game_options.enable_block_highlight = highlight_enabled
_on_save_settings() _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: func _on_game_options_waila_changed(waila_enabled: bool) -> void:
settings.game_options.enable_waila = waila_enabled settings.game_options.enable_waila = waila_enabled
_on_save_settings() _on_save_settings()


+ 2
- 0
resources/game_settings/game_options_settings_resource.gd View File

@ -4,3 +4,5 @@ extends Resource
@export var enable_waila: bool = true ## Enable `What Am I Looking At` UI @export var enable_waila: bool = true ## Enable `What Am I Looking At` UI
@export var enable_block_highlight: bool = true @export var enable_block_highlight: bool = true
@export var enable_quickslots_ui: bool = true
@export var enable_held_block: bool = true

+ 7
- 1
scenes/player/player.gd View File

@ -54,6 +54,7 @@ func _physics_process(delta: float) -> void:
func _ready() -> void: func _ready() -> void:
GameSettingsManager.graphics_fov_changed.connect(_on_graphics_fov_changed) 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) InventoryManager.quick_slot_item_changed.connect(_on_quick_slot_item_changed)
_update_held_block_mesh(InventoryManager.quick_slot_item_id) _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") is_sprinting = Input.is_action_pressed("run")
func _update_held_block_mesh(item_id: String) -> void: 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: func _on_graphics_fov_changed(fov: int) -> void:
camera.fov = fov camera.fov = fov


+ 11
- 0
scenes/ui/menus/settings_menu.gd View File

@ -4,6 +4,8 @@ extends Panel
@export_group("Game Option Nodes") @export_group("Game Option Nodes")
@export var block_highlight_input: CheckButton @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 var waila_input: CheckButton
@export_group("Graphics Settings Nodes") @export_group("Graphics Settings Nodes")
@ -18,9 +20,12 @@ func _ready() -> void:
apply_default_values() apply_default_values()
## Sets the default values of all the inputs
func apply_default_values() -> void: func apply_default_values() -> void:
#region Game Options #region Game Options
block_highlight_input.set_pressed_no_signal(GameSettingsManager.settings.game_options.enable_block_highlight) 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) waila_input.set_pressed_no_signal(GameSettingsManager.settings.game_options.enable_waila)
#endregion #endregion
@ -39,6 +44,12 @@ func apply_default_values() -> void:
func _on_block_highlighting_toggled(toggled_on: bool) -> void: func _on_block_highlighting_toggled(toggled_on: bool) -> void:
GameSettingsManager.game_options_block_highlight_changed.emit(toggled_on) 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: func _on_enable_waila_toggled(toggled_on: bool) -> void:
GameSettingsManager.game_options_waila_changed.emit(toggled_on) GameSettingsManager.game_options_waila_changed.emit(toggled_on)
#endregion #endregion


+ 29
- 1
scenes/ui/menus/settings_menu.tscn View File

@ -14,7 +14,7 @@ corner_radius_top_right = 2
corner_radius_bottom_right = 2 corner_radius_bottom_right = 2
corner_radius_bottom_left = 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 process_mode = 3
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
@ -23,6 +23,8 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
script = ExtResource("1_qwcqe") script = ExtResource("1_qwcqe")
block_highlight_input = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Game/BlockHighlight/CheckButton") 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") waila_input = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Game/Waila/CheckButton")
resolution_input = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Graphics/Resolution/OptionButton") resolution_input = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Graphics/Resolution/OptionButton")
fullscreen_input = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Graphics/Fullscreen/CheckBox") fullscreen_input = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Graphics/Fullscreen/CheckBox")
@ -100,6 +102,30 @@ text = "Enable Waila"
layout_mode = 2 layout_mode = 2
button_pressed = true 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"] [node name="Graphics" type="VBoxContainer" parent="Background/MarginContainer/VBoxContainer/TabContainer"]
visible = false visible = false
layout_mode = 2 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/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/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="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/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"] [connection signal="pressed" from="Background/BottomRow/CloseButton" to="." method="_on_close_button_pressed"]

+ 3
- 1
scenes/ui/ui.gd View File

@ -17,6 +17,8 @@ func _ready() -> void:
SignalManager.open_settings_menu.connect(_on_open_settings_menu) SignalManager.open_settings_menu.connect(_on_open_settings_menu)
SignalManager.resume_game.connect(_on_resume_game) SignalManager.resume_game.connect(_on_resume_game)
_on_resume_game()
func hide_menus() -> void: func hide_menus() -> void:
pause_menu.visible = false pause_menu.visible = false
@ -58,7 +60,7 @@ func _on_resume_game() -> void:
hide_menus() hide_menus()
crosshair.visible = true crosshair.visible = true
quick_slots.visible = true
quick_slots.visible = true and GameSettingsManager.settings.game_options.enable_quickslots_ui
waila.visible = true waila.visible = true
get_tree().paused = false get_tree().paused = false

Loading…
Cancel
Save