Added a settings menu

This commit is contained in:
2024-02-05 23:42:04 +01:00
parent 08292dc20a
commit 81670e7df5
11 changed files with 215 additions and 45 deletions

View File

@ -0,0 +1,11 @@
extends CheckButton
var environment: Environment
func _ready():
var world_environment := get_node("/root/Main/World/Environment") as WorldEnvironment
environment = world_environment.environment
set_pressed_no_signal(environment.glow_enabled)
func on_toggled(toggled_on: bool):
environment.glow_enabled = toggled_on

View File

@ -0,0 +1,20 @@
extends OptionButton
var fsrQuality: Array[float] = [0.50, 0.59, 0.67, 0.77, 1.0]
func _ready():
var viewport_scale := get_viewport().scaling_3d_scale
var closest := -1
var closest_diff := 999.0
for index in range(item_count):
var diff: float = abs(viewport_scale - fsrQuality[index])
if diff < closest_diff:
closest = index
closest_diff = diff
selected = closest
func on_item_selected(index):
get_viewport().scaling_3d_scale = fsrQuality[index]

View File

@ -0,0 +1,23 @@
extends OptionButton
func _ready():
var viewport = get_viewport()
match viewport.scaling_3d_mode:
Viewport.SCALING_3D_MODE_BILINEAR:
selected = 0
Viewport.SCALING_3D_MODE_FSR:
selected = 1
Viewport.SCALING_3D_MODE_FSR2:
selected = 2
func on_item_selected(index: int):
var viewport = get_viewport()
match index:
0:
viewport.scaling_3d_mode = Viewport.SCALING_3D_MODE_BILINEAR
1:
viewport.scaling_3d_mode = Viewport.SCALING_3D_MODE_FSR
2:
viewport.scaling_3d_mode = Viewport.SCALING_3D_MODE_FSR2

View File

@ -0,0 +1,5 @@
extends Control
func _unhandled_input(event):
if event.is_action_pressed("menu"):
visible = !visible

View File

@ -0,0 +1,98 @@
[gd_scene load_steps=5 format=3 uid="uid://bqpbrju7mc7d5"]
[ext_resource type="Script" path="res://ui/settings/Settings.gd" id="1_gx3lf"]
[ext_resource type="Script" path="res://ui/settings/Glow.gd" id="1_vkhbt"]
[ext_resource type="Script" path="res://ui/settings/ScaleMode.gd" id="2_7a2hi"]
[ext_resource type="Script" path="res://ui/settings/RenderScale.gd" id="3_o5ei3"]
[node name="Settings" type="Control"]
layout_mode = 3
anchor_left = 0.25
anchor_top = 0.25
anchor_right = 0.75
anchor_bottom = 0.75
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_gx3lf")
[node name="TabContainer" type="TabContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Video" type="MarginContainer" parent="TabContainer"]
layout_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="TabContainer/Video"]
layout_mode = 2
[node name="HBoxContainer3" type="HBoxContainer" parent="TabContainer/Video/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="TabContainer/Video/VBoxContainer/HBoxContainer3"]
layout_mode = 2
size_flags_horizontal = 3
text = "Render Scale"
[node name="RenderScale2" type="OptionButton" parent="TabContainer/Video/VBoxContainer/HBoxContainer3"]
layout_mode = 2
size_flags_horizontal = 3
item_count = 5
popup/item_0/text = "Performance"
popup/item_0/id = 0
popup/item_1/text = "Balanced"
popup/item_1/id = 1
popup/item_2/text = "Quality"
popup/item_2/id = 2
popup/item_3/text = "Ultra Quality"
popup/item_3/id = 3
popup/item_4/text = "Native"
popup/item_4/id = 4
script = ExtResource("3_o5ei3")
[node name="HBoxContainer2" type="HBoxContainer" parent="TabContainer/Video/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="TabContainer/Video/VBoxContainer/HBoxContainer2"]
layout_mode = 2
size_flags_horizontal = 3
text = "Scale Mode"
[node name="ScaleMode" type="OptionButton" parent="TabContainer/Video/VBoxContainer/HBoxContainer2"]
layout_mode = 2
size_flags_horizontal = 3
item_count = 3
popup/item_0/text = "Bilinear"
popup/item_0/id = 0
popup/item_1/text = "FSR 1.0"
popup/item_1/id = 1
popup/item_2/text = "FSR 2.2"
popup/item_2/id = 2
script = ExtResource("2_7a2hi")
[node name="HBoxContainer" type="HBoxContainer" parent="TabContainer/Video/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="TabContainer/Video/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Glow"
[node name="Glow" type="CheckButton" parent="TabContainer/Video/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
script = ExtResource("1_vkhbt")
[node name="Audio" type="MarginContainer" parent="TabContainer"]
visible = false
layout_mode = 2
[node name="Volume" type="HSlider" parent="TabContainer/Audio"]
layout_mode = 2
[connection signal="item_selected" from="TabContainer/Video/VBoxContainer/HBoxContainer3/RenderScale2" to="TabContainer/Video/VBoxContainer/HBoxContainer3/RenderScale2" method="on_item_selected"]
[connection signal="item_selected" from="TabContainer/Video/VBoxContainer/HBoxContainer2/ScaleMode" to="TabContainer/Video/VBoxContainer/HBoxContainer2/ScaleMode" method="on_item_selected"]
[connection signal="toggled" from="TabContainer/Video/VBoxContainer/HBoxContainer/Glow" to="TabContainer/Video/VBoxContainer/HBoxContainer/Glow" method="on_toggled"]