aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authortpart <tpart120@proton.me>2024-07-30 19:09:24 +0200
committertpart <tpart120@proton.me>2024-07-30 19:09:24 +0200
commit384cf75485be9ede9b5dad8c735d6b9fc33e5bb8 (patch)
tree74602829c56be568fb46dc9ae5fbcd2cc59734cc /client
parent81a09080594e0b29a6b367fe3b3dff51ddefdfb9 (diff)
downloadhurrycurry-384cf75485be9ede9b5dad8c735d6b9fc33e5bb8.tar
hurrycurry-384cf75485be9ede9b5dad8c735d6b9fc33e5bb8.tar.bz2
hurrycurry-384cf75485be9ede9b5dad8c735d6b9fc33e5bb8.tar.zst
Add ui scale factor setting; Add more options to range settings to specify step
Diffstat (limited to 'client')
-rw-r--r--client/global.gd14
-rw-r--r--client/menu/settings/range_setting.gd9
2 files changed, 16 insertions, 7 deletions
diff --git a/client/global.gd b/client/global.gd
index 82409ae4..0d62931b 100644
--- a/client/global.gd
+++ b/client/global.gd
@@ -53,7 +53,8 @@ var default_settings := {
"usernames": ToggleSetting.new(tr("Show username tags"), true),
"server_binary": TextSetting.new(tr("Server binary (leave empty to search PATH)"), "", tr("Enter path")),
"server_data": TextSetting.new(tr("Server data directory (leave empty to auto-detect)"), "", tr("Enter path")),
- "ui_scale": DropdownSetting.new(tr("UI scale"), 0, [tr("Resize"), tr("Disabled")]),
+ "ui_scale_mode": DropdownSetting.new(tr("UI scale mode"), 0, [tr("Resize"), tr("Disabled")]),
+ "ui_scale_factor": RangeSetting.new(tr("UI scale factor"), 1, 0.5, 1.5, 3),
"aa": DropdownSetting.new(tr("Anti-aliasing"), 2 if on_high_end() else 0, [tr("Disabled"), "FXAA", "MSAA 2x", "MSAA 4x"]),
"ssao": ToggleSetting.new(tr("Ambient occlusion"), true if on_high_end() else false),
"taa": ToggleSetting.new(tr("Temporal Anti-Aliasing"), false),
@@ -62,7 +63,7 @@ var default_settings := {
"shadows": ToggleSetting.new(tr("Enable shadows"), true if on_high_end() else false),
"glow": ToggleSetting.new(tr("Enable glow"), true if on_high_end() else false),
"debug_info": ToggleSetting.new(tr("Display debug info (Framerate, etc.)"), false),
- "grass_amount": RangeSetting.new(tr("3D grass amount per grass tile"), 16 if on_high_end() else 0, 0, 32),
+ "grass_amount": RangeSetting.new(tr("3D grass amount per grass tile"), 16 if on_high_end() else 0, 0, 32, false),
"lq_trees": ToggleSetting.new(tr("Low-poly trees"), false if on_high_end() else true),
"setup_complete": ToggleSetting.new(tr("Initial setup complete. (Uncheck and restart to reenter)"), false),
"tutorial_started": ToggleSetting.new(tr("Tutorial started"), false),
@@ -85,7 +86,6 @@ func _ready():
get_viewport().gui_focus_changed.connect(Sound.play_hover_maybe)
get_viewport().gui_focus_changed.connect(func (node): focused_node = node)
-
func _input(event):
if Input.is_action_just_pressed("fullscreen"):
match Global.get_setting("fullscreen"):
@@ -151,12 +151,16 @@ func apply_settings():
# Temporal Anti-aliasing
get_viewport().use_taa = get_setting("taa")
- # UI scale
- match get_setting("ui_scale"):
+ # UI scale mode
+ match get_setting("ui_scale_mode"):
0:
get_tree().root.content_scale_mode = Window.CONTENT_SCALE_MODE_CANVAS_ITEMS
1:
get_tree().root.content_scale_mode = Window.CONTENT_SCALE_MODE_DISABLED
+
+ # UI scale factor
+ get_tree().root.content_scale_factor = get_setting("ui_scale_factor")
+ print("SCALE FACTOR ", get_tree().root.content_scale_factor)
# Hints
if not get_setting("tutorial_started"):
diff --git a/client/menu/settings/range_setting.gd b/client/menu/settings/range_setting.gd
index dca84b5e..d13e2262 100644
--- a/client/menu/settings/range_setting.gd
+++ b/client/menu/settings/range_setting.gd
@@ -18,18 +18,23 @@ extends GameSetting
var min_value: float
var max_value: float
+var tick_count
+var smooth: bool
-func _init(new_description: String, new_preset: float, new_min_value: float, new_max_value: float):
+func _init(new_description: String, new_preset: float, new_min_value: float, new_max_value: float, new_smooth: bool = true, new_tick_count = null):
super(new_description, new_preset)
min_value = new_min_value
max_value = new_max_value
+ tick_count = new_tick_count
+ smooth = new_smooth
func _update_row():
super()
row.value_node = HSlider.new()
row.value_node.min_value = min_value
row.value_node.max_value = max_value
- row.value_node.tick_count = abs(max_value - min_value)
+ row.value_node.tick_count = abs(max_value - min_value) if tick_count == null else tick_count
+ row.value_node.step = 0 if smooth else (1 if tick_count == null else abs(max_value - min_value) / (tick_count - 1))
row.value_node.value = _value
func fetch_setting():