From 3c769f37e1710ba220c660f6aa0c61d85bb81214 Mon Sep 17 00:00:00 2001 From: katorovitalo Date: Mon, 15 Sep 2025 13:24:04 -0400 Subject: [PATCH 1/2] New frame limit --- Scenes/Prefabs/UI/SettingsMenu.tscn | 9 ++++++++- Scripts/Classes/Singletons/SettingsManager.gd | 3 ++- Scripts/UI/WindowChanger.gd | 7 ++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Scenes/Prefabs/UI/SettingsMenu.tscn b/Scenes/Prefabs/UI/SettingsMenu.tscn index 334ca28..01e8360 100644 --- a/Scenes/Prefabs/UI/SettingsMenu.tscn +++ b/Scenes/Prefabs/UI/SettingsMenu.tscn @@ -257,7 +257,7 @@ size_flags_vertical = 3 theme_override_constants/separation = -4 script = ExtResource("4_avtty") category_name = "SETTINGS_VIDEO" -options = [NodePath("Language"), NodePath("WindowMode"), NodePath("Size"), NodePath("Visuals"), NodePath("Scaling"), NodePath("VSync"), NodePath("DropShadows"), NodePath("HudStyle")] +options = [NodePath("Language"), NodePath("WindowMode"), NodePath("Size"), NodePath("Visuals"), NodePath("Scaling"), NodePath("VSync"), NodePath("DropShadows"), NodePath("HudStyle"), NodePath("FrameLimit")] [node name="Control" type="Control" parent="PanelContainer/MarginContainer/VBoxContainer/Video"] custom_minimum_size = Vector2(0, 4) @@ -321,6 +321,13 @@ option_key = "hud_scaling" title = "VIDEO_HUD_SCALING" values = ["VIDEO_HUD_STRETCHED", "VIDEO_HUD_CENTER"] +[node name="FrameLimit" parent="PanelContainer/MarginContainer/VBoxContainer/Video" instance=ExtResource("3_dl6kk")] +layout_mode = 2 +option_key = "frame_limit" +title = "Frame_Limit" +value_descs = Array[String](["Unlimited", "60fps", "120fps", "144fps", "240fps"]) +values = [0, 60, 120, 144, 240] + [node name="WindowChanger" type="Node" parent="PanelContainer/MarginContainer/VBoxContainer/Video"] script = ExtResource("5_hnwhb") diff --git a/Scripts/Classes/Singletons/SettingsManager.gd b/Scripts/Classes/Singletons/SettingsManager.gd index 5485818..2b9d004 100644 --- a/Scripts/Classes/Singletons/SettingsManager.gd +++ b/Scripts/Classes/Singletons/SettingsManager.gd @@ -8,7 +8,8 @@ var file := { "drop_shadows": 1, "scaling": 0, "visuals": 0, - "hud_size": 0 + "hud_size": 0, + "frame_limit" : 0, }, "audio": { "master": 10.0, diff --git a/Scripts/UI/WindowChanger.gd b/Scripts/UI/WindowChanger.gd index c28f55c..b6f6e93 100644 --- a/Scripts/UI/WindowChanger.gd +++ b/Scripts/UI/WindowChanger.gd @@ -44,6 +44,10 @@ func language_changed(new_value := 0) -> void: Settings.file.game.lang = Global.lang_codes[new_value] %Flag.region_rect.position.x = new_value * 16 +func frame_limit_changed(new_value := 0) -> void: + Engine.max_fps = new_value + Settings.file.video.frame_limit = new_value + func set_value(value_name := "", value := 0) -> void: { "mode": window_mode_changed, @@ -54,5 +58,6 @@ func set_value(value_name := "", value := 0) -> void: "visuals": visuals_changed, "palette": null_function, "hud_size": hud_style_changed, - "hud_style": hud_style_changed + "hud_style": hud_style_changed, + "frame_limit": frame_limit_changed, }[value_name].call(value) From 68a0d9bd78f658ec4ed8db0404a649fb58cb06bb Mon Sep 17 00:00:00 2001 From: katorovitalo Date: Mon, 15 Sep 2025 14:34:08 -0400 Subject: [PATCH 2/2] Frame Limits now set --- Scenes/Prefabs/UI/SettingsMenu.tscn | 6 +++--- Scripts/UI/WindowChanger.gd | 13 ++++++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Scenes/Prefabs/UI/SettingsMenu.tscn b/Scenes/Prefabs/UI/SettingsMenu.tscn index 01e8360..aa9db53 100644 --- a/Scenes/Prefabs/UI/SettingsMenu.tscn +++ b/Scenes/Prefabs/UI/SettingsMenu.tscn @@ -324,9 +324,8 @@ values = ["VIDEO_HUD_STRETCHED", "VIDEO_HUD_CENTER"] [node name="FrameLimit" parent="PanelContainer/MarginContainer/VBoxContainer/Video" instance=ExtResource("3_dl6kk")] layout_mode = 2 option_key = "frame_limit" -title = "Frame_Limit" -value_descs = Array[String](["Unlimited", "60fps", "120fps", "144fps", "240fps"]) -values = [0, 60, 120, 144, 240] +title = "FRAME LIMIT" +values = ["Unlimited", "60fps", "120fps", "144fps", "240fps"] [node name="WindowChanger" type="Node" parent="PanelContainer/MarginContainer/VBoxContainer/Video"] script = ExtResource("5_hnwhb") @@ -891,6 +890,7 @@ script = ExtResource("19_k6yev") [connection signal="value_changed" from="PanelContainer/MarginContainer/VBoxContainer/Video/VSync" to="PanelContainer/MarginContainer/VBoxContainer/Video/WindowChanger" method="vsync_changed"] [connection signal="value_changed" from="PanelContainer/MarginContainer/VBoxContainer/Video/DropShadows" to="PanelContainer/MarginContainer/VBoxContainer/Video/WindowChanger" method="drop_shadows_changed"] [connection signal="value_changed" from="PanelContainer/MarginContainer/VBoxContainer/Video/HudStyle" to="PanelContainer/MarginContainer/VBoxContainer/Video/WindowChanger" method="hud_style_changed"] +[connection signal="value_changed" from="PanelContainer/MarginContainer/VBoxContainer/Video/FrameLimit" to="PanelContainer/MarginContainer/VBoxContainer/Video/WindowChanger" method="frame_limit_changed"] [connection signal="value_changed" from="PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode" to="PanelContainer/MarginContainer/VBoxContainer/Audio/AudioAdjuster" method="master_changed"] [connection signal="value_changed" from="PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode2" to="PanelContainer/MarginContainer/VBoxContainer/Audio/AudioAdjuster" method="music_changed"] [connection signal="value_changed" from="PanelContainer/MarginContainer/VBoxContainer/Audio/SelectableOptionNode3" to="PanelContainer/MarginContainer/VBoxContainer/Audio/AudioAdjuster" method="sfx_changed"] diff --git a/Scripts/UI/WindowChanger.gd b/Scripts/UI/WindowChanger.gd index b6f6e93..ca558f0 100644 --- a/Scripts/UI/WindowChanger.gd +++ b/Scripts/UI/WindowChanger.gd @@ -22,6 +22,7 @@ func window_size_changed(new_value := 0) -> void: func vsync_changed(new_value := 0) -> void: DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED if new_value == 1 else DisplayServer.VSYNC_DISABLED) + Settings.file.video.vsync = new_value func drop_shadows_changed(new_value := 0) -> void: @@ -45,7 +46,17 @@ func language_changed(new_value := 0) -> void: %Flag.region_rect.position.x = new_value * 16 func frame_limit_changed(new_value := 0) -> void: - Engine.max_fps = new_value + print_debug(str(new_value)) + + var new_framerate := 0 + match new_value: + + 1: new_framerate = 60 + 2: new_framerate = 120 + 3: new_framerate = 144 + 4: new_framerate = 240 + + Engine.max_fps = new_framerate Settings.file.video.frame_limit = new_value func set_value(value_name := "", value := 0) -> void: