Browse Source

Merge pull request 'Persistent Settings and Graphics Options' (#11) from pause-menu-continued into master

pull/12/head prototype-d53638574f
Ryan Reed 1 month ago
parent
commit
d53638574f
22 changed files with 382 additions and 24 deletions
  1. +109
    -0
      autoloads/game_settings_manager.gd
  2. +1
    -0
      autoloads/game_settings_manager.gd.uid
  3. +1
    -3
      autoloads/globals.gd
  4. +6
    -0
      project.godot
  5. +6
    -0
      resources/game_settings/game_options_settings_resource.gd
  6. +1
    -0
      resources/game_settings/game_options_settings_resource.gd.uid
  7. +9
    -0
      resources/game_settings/game_options_settings_resource.tres
  8. +10
    -0
      resources/game_settings/game_settings_resource.gd
  9. +1
    -0
      resources/game_settings/game_settings_resource.gd.uid
  10. +9
    -0
      resources/game_settings/game_settings_resource.tres
  11. +10
    -0
      resources/game_settings/graphics_settings_resource.gd
  12. +1
    -0
      resources/game_settings/graphics_settings_resource.gd.uid
  13. +11
    -0
      resources/game_settings/graphics_settings_resource.tres
  14. +1
    -1
      scenes/blocks/block.gd
  15. +8
    -0
      scenes/player/player.gd
  16. +0
    -2
      scenes/player/ray_cast_look.gd
  17. +5
    -0
      scenes/root.gd
  18. +1
    -0
      scenes/root.gd.uid
  19. +3
    -1
      scenes/root.tscn
  20. +58
    -2
      scenes/ui/menus/settings_menu.gd
  21. +130
    -14
      scenes/ui/menus/settings_menu.tscn
  22. +1
    -1
      scenes/ui/waila.gd

+ 109
- 0
autoloads/game_settings_manager.gd View File

@ -0,0 +1,109 @@
extends Node
#region Game Options Signals
signal game_options_block_highlight_changed(block_highlight_enabled: bool)
signal game_options_waila_changed(waila_enabled: bool)
#endregion
#region Graphics Settings Signals
signal apply_graphics_settings
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)
#endregion
signal load_settings
signal save_settings
## See documentation to where this path is: https://docs.godotengine.org/en/stable/tutorials/io/data_paths.html#accessing-persistent-user-data-user[br][br]
## Default Paths:[br]
## * Windows: %APPDATA%\Godot\app_userdata\[project_name][br]
## * macOS: ~/Library/Application Support/Godot/app_userdata/[project_name][br]
## * Linux: ~/.local/share/godot/app_userdata/[project_name][br]
var save_data_path: String = "user://game_data/"
var settings_file_name: String = "game_settings.tres"
var settings_file_path: String = save_data_path + settings_file_name
var settings: GameSettingsResource = GameSettingsResource.new()
func _init() -> void:
game_options_block_highlight_changed.connect(_on_game_options_block_highlight_changed)
game_options_waila_changed.connect(_on_game_options_waila_changed)
graphics_fov_changed.connect(_on_graphics_fov_changed)
graphics_fullscreen_changed.connect(_on_graphics_fullscreen_changed)
graphics_resolution_changed.connect(_on_graphics_resolution_changed)
graphics_vsync_changed.connect(_on_graphics_vsync_changed)
apply_graphics_settings.connect(_on_apply_graphics_settings)
load_settings.connect(_on_load_settings)
save_settings.connect(_on_save_settings)
#region Game Option Settings
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_waila_changed(waila_enabled: bool) -> void:
settings.game_options.enable_waila = waila_enabled
_on_save_settings()
#endregion
#region Graphics Settings
func _on_apply_graphics_settings() -> void:
if settings.graphics.fullscreen:
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
else:
DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
get_window().size = settings.graphics.resolution
if settings.graphics.vsync:
DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED)
else:
DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED)
_on_save_settings()
func _on_graphics_fov_changed(fov: int) -> void:
settings.graphics.fov = fov
func _on_graphics_fullscreen_changed(fullscreen_enabled: bool) -> void:
settings.graphics.fullscreen = fullscreen_enabled
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):
printerr("Failed to load game settings. File does not exist: ", settings_file_path)
return
settings = ResourceLoader.load(settings_file_path)
if settings == null:
printerr("Failed to load game settings. Unknown format? ", settings_file_path)
return
if apply_after_load:
apply_graphics_settings.emit()
func _on_save_settings() -> void:
if !DirAccess.dir_exists_absolute(save_data_path):
DirAccess.make_dir_absolute(save_data_path)
var result: int = ResourceSaver.save(settings, settings_file_path)
if result != OK:
printerr("Failed to save game settings: ", result)
#endregion

+ 1
- 0
autoloads/game_settings_manager.gd.uid View File

@ -0,0 +1 @@
uid://dxe2y12f412lp

+ 1
- 3
autoloads/globals.gd View File

@ -4,8 +4,6 @@ extends Node
const BLOCK_PREFAB: PackedScene = preload("res://scenes/blocks/block.tscn")
const DROPPED_BLOCK_PREFAB: PackedScene = preload("res://scenes/blocks/dropped_block.tscn")
# TODO: Move the following into the GameSettingsManager
var enable_waila: bool = true ## Enable `What Am I Looking At` UI
var enable_block_highlight: bool = true
var is_options_menu_active: bool = false

+ 6
- 0
project.godot View File

@ -24,6 +24,7 @@ InventoryManager="*res://autoloads/inventory_manager.gd"
DBItems="*res://autoloads/db_items.gd"
SaveGameManager="*res://save_load/autoloads/save_game_manager.gd"
SignalManager="*res://autoloads/signal_manager.gd"
GameSettingsManager="*res://autoloads/game_settings_manager.gd"
[debug]
@ -32,6 +33,11 @@ gdscript/warnings/untyped_declaration=1
gdscript/warnings/inferred_declaration=1
gdscript/warnings/unsafe_method_access=1
[display]
window/size/viewport_width=1280
window/size/viewport_height=720
[file_customization]
folder_colors={


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

@ -0,0 +1,6 @@
class_name GameOptionsSettingsResource
extends Resource
@export var enable_waila: bool = true ## Enable `What Am I Looking At` UI
@export var enable_block_highlight: bool = true

+ 1
- 0
resources/game_settings/game_options_settings_resource.gd.uid View File

@ -0,0 +1 @@
uid://7yv740somgqf

+ 9
- 0
resources/game_settings/game_options_settings_resource.tres View File

@ -0,0 +1,9 @@
[gd_resource type="Resource" script_class="GameOptionsSettingsResource" load_steps=2 format=3 uid="uid://cnpou521v2v8p"]
[ext_resource type="Script" uid="uid://7yv740somgqf" path="res://resources/game_settings/game_options_settings_resource.gd" id="1_wnf6r"]
[resource]
script = ExtResource("1_wnf6r")
enable_waila = true
enable_block_highlight = true
metadata/_custom_type_script = "uid://7yv740somgqf"

+ 10
- 0
resources/game_settings/game_settings_resource.gd View File

@ -0,0 +1,10 @@
## The resource for saving game settings.
## This should be not be saved with saves (for game syncing reasons)
class_name GameSettingsResource
extends Resource
@export var game_version: String = ProjectSettings.get_setting("application/config/version")
@export var game_options: GameOptionsSettingsResource = GameOptionsSettingsResource.new()
@export var graphics: GraphicsSettingsResource = GraphicsSettingsResource.new()

+ 1
- 0
resources/game_settings/game_settings_resource.gd.uid View File

@ -0,0 +1 @@
uid://cffw77d120p56

+ 9
- 0
resources/game_settings/game_settings_resource.tres View File

@ -0,0 +1,9 @@
[gd_resource type="Resource" script_class="GameSettingsResource" load_steps=2 format=3 uid="uid://b3kkeyyos7a7"]
[ext_resource type="Script" uid="uid://cffw77d120p56" path="res://resources/game_settings/game_settings_resource.gd" id="1_fe7s4"]
[resource]
script = ExtResource("1_fe7s4")
game_version = null
graphics = []
metadata/_custom_type_script = "uid://cffw77d120p56"

+ 10
- 0
resources/game_settings/graphics_settings_resource.gd View File

@ -0,0 +1,10 @@
## The resource for saving game settings.
## This should be not be saved with saves (for game syncing reasons)
class_name GraphicsSettingsResource
extends Resource
@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

+ 1
- 0
resources/game_settings/graphics_settings_resource.gd.uid View File

@ -0,0 +1 @@
uid://mfghfem8im6o

+ 11
- 0
resources/game_settings/graphics_settings_resource.tres View File

@ -0,0 +1,11 @@
[gd_resource type="Resource" script_class="GraphicsSettingsResource" load_steps=2 format=3 uid="uid://b07gyfa776057"]
[ext_resource type="Script" uid="uid://mfghfem8im6o" path="res://resources/game_settings/graphics_settings_resource.gd" id="1_3m2to"]
[resource]
script = ExtResource("1_3m2to")
resolution = Vector2i(1280, 720)
fullscreen = false
vsync = false
fov = 75
metadata/_custom_type_script = "uid://mfghfem8im6o"

+ 1
- 1
scenes/blocks/block.gd View File

@ -22,7 +22,7 @@ func get_id() -> String:
return id
func hook() -> void:
if not Globals.enable_block_highlight: return
if not GameSettingsManager.settings.game_options.enable_block_highlight: return
highlight_mesh.visible = true


+ 8
- 0
scenes/player/player.gd View File

@ -17,6 +17,7 @@ extends CharacterBody3D
@export var sprint_toggle: bool = false ## Enables toggle sprint instead of hold. When enabled, sprinting will also be disabled when velocity is zero
@export var walk_speed: float = 5.0
@onready var camera: Camera3D = $Head/Camera3D
@onready var head: Node3D = $Head
@onready var collision_shape_standing: CollisionShape3D = $CollisionShapeStanding
@onready var collision_shape_crouching: CollisionShape3D = $CollisionShapeCrouching
@ -47,6 +48,9 @@ func _physics_process(delta: float) -> void:
move_and_slide()
func _ready() -> void:
GameSettingsManager.graphics_fov_changed.connect(_on_graphics_fov_changed)
func _apply_gravity(delta: float) -> void:
if is_on_floor(): return
@ -115,3 +119,7 @@ func _set_is_sprinting() -> void:
is_sprinting = false
else:
is_sprinting = Input.is_action_pressed("run")
func _on_graphics_fov_changed(fov: int) -> void:
camera.fov = fov

+ 0
- 2
scenes/player/ray_cast_look.gd View File

@ -2,8 +2,6 @@ extends RayCast3D
func _process(_delta: float) -> void:
if Globals.is_options_menu_active: return
if is_colliding():
var collider: Object = get_collider()


+ 5
- 0
scenes/root.gd View File

@ -0,0 +1,5 @@
extends Node
func _enter_tree() -> void:
GameSettingsManager.load_settings.emit()

+ 1
- 0
scenes/root.gd.uid View File

@ -0,0 +1 @@
uid://cnnx3qtqvpwgg

+ 3
- 1
scenes/root.tscn View File

@ -1,9 +1,11 @@
[gd_scene load_steps=3 format=3 uid="uid://cgx0nawwjjj7g"]
[gd_scene load_steps=4 format=3 uid="uid://cgx0nawwjjj7g"]
[ext_resource type="Script" uid="uid://cnnx3qtqvpwgg" path="res://scenes/root.gd" id="1_lrqlo"]
[ext_resource type="PackedScene" uid="uid://mkfitwqnerku" path="res://scenes/world/world.tscn" id="2_vvh5c"]
[ext_resource type="PackedScene" uid="uid://c7fj7wla8bd70" path="res://scenes/ui/ui.tscn" id="3_vvh5c"]
[node name="Root" type="Node"]
script = ExtResource("1_lrqlo")
[node name="World" parent="." instance=ExtResource("2_vvh5c")]


+ 58
- 2
scenes/ui/menus/settings_menu.gd View File

@ -2,11 +2,67 @@ class_name SettingsMenu
extends Panel
@export_group("Game Option Nodes")
@export var block_highlight_input: CheckButton
@export var waila_input: CheckButton
@export_group("Graphics Settings Nodes")
@export var resolution_input: OptionButton
@export var fullscreen_input: CheckBox
@export var vsync_input: CheckBox
@export var fov_slider: HSlider
@export var fov_value_label: Label
func _ready() -> void:
apply_default_values()
func apply_default_values() -> void:
#region Game Options
block_highlight_input.set_pressed_no_signal(GameSettingsManager.settings.game_options.enable_block_highlight)
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
fullscreen_input.set_pressed_no_signal(GameSettingsManager.settings.graphics.fullscreen)
vsync_input.set_pressed_no_signal(GameSettingsManager.settings.graphics.vsync)
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:
Globals.enable_block_highlight = toggled_on
GameSettingsManager.game_options_block_highlight_changed.emit(toggled_on)
func _on_enable_waila_toggled(toggled_on: bool) -> void:
Globals.enable_waila = toggled_on
GameSettingsManager.game_options_waila_changed.emit(toggled_on)
#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 id: int = resolution_input.get_selected_id()
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
#endregion
#region Input Settings
#endregion
func _on_close_button_pressed() -> void:


+ 130
- 14
scenes/ui/menus/settings_menu.tscn View File

@ -1,9 +1,20 @@
[gd_scene load_steps=3 format=3 uid="uid://4bdgwwx27m71"]
[gd_scene load_steps=4 format=3 uid="uid://4bdgwwx27m71"]
[ext_resource type="Script" uid="uid://37ftrpj14msn" path="res://scenes/ui/menus/settings_menu.gd" id="1_qwcqe"]
[ext_resource type="Theme" uid="uid://b5q8b0l6qp1dt" path="res://resources/pause_menu_theme.tres" id="2_mhswj"]
[node name="SettingsMenu" type="Panel"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_80b2v"]
content_margin_left = 10.0
content_margin_top = 10.0
content_margin_right = 10.0
content_margin_bottom = 10.0
bg_color = Color(0, 0, 0, 0.27451)
corner_radius_top_left = 2
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")]
process_mode = 3
anchors_preset = 15
anchor_right = 1.0
@ -11,6 +22,14 @@ anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_qwcqe")
block_highlight_input = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Game/BlockHighlight/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")
vsync_input = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Graphics/VSync/CheckBox")
fov_slider = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Graphics/FOV/HSlider")
fov_value_label = NodePath("Background/MarginContainer/VBoxContainer/TabContainer/Graphics/FOV/Value")
metadata/_edit_vertical_guides_ = [349.0]
[node name="Background" type="ColorRect" parent="."]
custom_minimum_size = Vector2(400, 0)
@ -35,47 +54,142 @@ theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
[node name="CenterContainer" type="VBoxContainer" parent="Background/MarginContainer"]
[node name="VBoxContainer" type="VBoxContainer" parent="Background/MarginContainer"]
layout_mode = 2
size_flags_horizontal = 4
theme_override_constants/separation = 20
[node name="Title" type="Label" parent="Background/MarginContainer/CenterContainer"]
[node name="Title" type="Label" parent="Background/MarginContainer/VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 40
text = "Settings"
horizontal_alignment = 1
[node name="TabContainer" type="TabContainer" parent="Background/MarginContainer/CenterContainer"]
[node name="TabContainer" type="TabContainer" parent="Background/MarginContainer/VBoxContainer"]
layout_mode = 2
theme_override_constants/side_margin = 0
theme_override_styles/panel = SubResource("StyleBoxFlat_80b2v")
current_tab = 0
clip_tabs = false
[node name="Game" type="VBoxContainer" parent="Background/MarginContainer/CenterContainer/TabContainer"]
[node name="Game" type="VBoxContainer" parent="Background/MarginContainer/VBoxContainer/TabContainer"]
layout_mode = 2
metadata/_tab_index = 0
[node name="BlockHighlighting" type="CheckButton" parent="Background/MarginContainer/CenterContainer/TabContainer/Game"]
[node name="BlockHighlight" type="HBoxContainer" parent="Background/MarginContainer/VBoxContainer/TabContainer/Game"]
layout_mode = 2
button_pressed = true
[node name="Label" type="Label" parent="Background/MarginContainer/VBoxContainer/TabContainer/Game/BlockHighlight"]
layout_mode = 2
size_flags_horizontal = 3
text = "Enable Block Highlighting"
[node name="EnableWaila" type="CheckButton" parent="Background/MarginContainer/CenterContainer/TabContainer/Game"]
[node name="CheckButton" type="CheckButton" parent="Background/MarginContainer/VBoxContainer/TabContainer/Game/BlockHighlight"]
layout_mode = 2
button_pressed = true
[node name="Waila" type="HBoxContainer" parent="Background/MarginContainer/VBoxContainer/TabContainer/Game"]
layout_mode = 2
[node name="Label" type="Label" parent="Background/MarginContainer/VBoxContainer/TabContainer/Game/Waila"]
layout_mode = 2
size_flags_horizontal = 3
text = "Enable Waila"
[node name="Graphics" type="VBoxContainer" parent="Background/MarginContainer/CenterContainer/TabContainer"]
[node name="CheckButton" type="CheckButton" parent="Background/MarginContainer/VBoxContainer/TabContainer/Game/Waila"]
layout_mode = 2
button_pressed = true
[node name="Graphics" type="VBoxContainer" parent="Background/MarginContainer/VBoxContainer/TabContainer"]
visible = false
layout_mode = 2
metadata/_tab_index = 1
[node name="Audio" type="VBoxContainer" parent="Background/MarginContainer/CenterContainer/TabContainer"]
[node name="Resolution" type="HBoxContainer" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics"]
layout_mode = 2
[node name="Label" type="Label" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics/Resolution"]
layout_mode = 2
size_flags_horizontal = 3
text = "Resolution"
[node name="OptionButton" type="OptionButton" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics/Resolution"]
layout_mode = 2
selected = 0
item_count = 6
popup/item_0/text = "1280x720"
popup/item_0/id = 0
popup/item_1/text = "1280x800"
popup/item_1/id = 4
popup/item_2/text = "1920x1080"
popup/item_2/id = 1
popup/item_3/text = "2560x1440"
popup/item_3/id = 2
popup/item_4/text = "3440x1440"
popup/item_4/id = 3
popup/item_5/text = "3840 x 2160"
popup/item_5/id = 5
[node name="Fullscreen" type="HBoxContainer" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics"]
layout_mode = 2
[node name="Label" type="Label" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics/Fullscreen"]
layout_mode = 2
size_flags_horizontal = 3
text = "Fullscreen"
[node name="CheckBox" type="CheckBox" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics/Fullscreen"]
layout_mode = 2
[node name="VSync" type="HBoxContainer" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics"]
layout_mode = 2
[node name="Label" type="Label" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics/VSync"]
layout_mode = 2
size_flags_horizontal = 3
text = "VSync"
[node name="CheckBox" type="CheckBox" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics/VSync"]
layout_mode = 2
[node name="FOV" type="HBoxContainer" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics"]
layout_mode = 2
[node name="Label" type="Label" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics/FOV"]
layout_mode = 2
size_flags_horizontal = 3
text = "FOV"
[node name="HSlider" type="HSlider" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics/FOV"]
layout_mode = 2
size_flags_horizontal = 3
min_value = 60.0
max_value = 120.0
value = 75.0
rounded = true
ticks_on_borders = true
[node name="Value" type="Label" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics/FOV"]
layout_mode = 2
text = "75"
[node name="HSeparator" type="HSeparator" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics"]
layout_mode = 2
theme_override_constants/separation = 20
[node name="CenterContainer" type="CenterContainer" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics"]
layout_mode = 2
[node name="ApplyButton" type="Button" parent="Background/MarginContainer/VBoxContainer/TabContainer/Graphics/CenterContainer"]
layout_mode = 2
text = "Apply/Save"
[node name="Audio" type="VBoxContainer" parent="Background/MarginContainer/VBoxContainer/TabContainer"]
visible = false
layout_mode = 2
metadata/_tab_index = 2
[node name="Inputs" type="VBoxContainer" parent="Background/MarginContainer/CenterContainer/TabContainer"]
[node name="Inputs" type="VBoxContainer" parent="Background/MarginContainer/VBoxContainer/TabContainer"]
visible = false
layout_mode = 2
metadata/_tab_index = 3
@ -100,6 +214,8 @@ layout_mode = 2
theme = ExtResource("2_mhswj")
text = "Close Settings"
[connection signal="toggled" from="Background/MarginContainer/CenterContainer/TabContainer/Game/BlockHighlighting" to="." method="_on_block_highlighting_toggled"]
[connection signal="toggled" from="Background/MarginContainer/CenterContainer/TabContainer/Game/EnableWaila" to="." method="_on_enable_waila_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="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"]

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

@ -29,7 +29,7 @@ func get_target() -> Block:
return _target
func hook_target(id: String) -> void:
if not Globals.enable_waila: return
if not GameSettingsManager.settings.game_options.enable_waila: return
if not id: return
var item: ItemResource = DBItems.data[id]


Loading…
Cancel
Save