Added a settings menu
This commit is contained in:
11
client/ui/settings/Glow.gd
Normal file
11
client/ui/settings/Glow.gd
Normal 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
|
20
client/ui/settings/RenderScale.gd
Normal file
20
client/ui/settings/RenderScale.gd
Normal 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]
|
23
client/ui/settings/ScaleMode.gd
Normal file
23
client/ui/settings/ScaleMode.gd
Normal 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
|
5
client/ui/settings/Settings.gd
Normal file
5
client/ui/settings/Settings.gd
Normal file
@ -0,0 +1,5 @@
|
||||
extends Control
|
||||
|
||||
func _unhandled_input(event):
|
||||
if event.is_action_pressed("menu"):
|
||||
visible = !visible
|
98
client/ui/settings/Settings.tscn
Normal file
98
client/ui/settings/Settings.tscn
Normal 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"]
|
Reference in New Issue
Block a user