From f2814b332dbdc3e06ef0af694512022ea4b9ed95 Mon Sep 17 00:00:00 2001 From: Relintai Date: Sun, 11 Dec 2022 11:46:31 +0100 Subject: [PATCH] Implemented shrink override setting. --- game/Main.gd | 9 +++-- game/project.pandemonium | 2 ++ game/settings/Settings.gd | 23 +++++++++++- game/settings/Settings.tscn | 72 +++++++++++++++++++++++++++---------- 4 files changed, 84 insertions(+), 22 deletions(-) diff --git a/game/Main.gd b/game/Main.gd index e51acbd..2d46cc0 100644 --- a/game/Main.gd +++ b/game/Main.gd @@ -10,6 +10,13 @@ func hide_all() -> void: _settings.hide() _sort.hide() +func apply_shink() -> void: + if !ProjectSettings.get("display/window/stretch/shrink_override"): + get_tree().set_screen_stretch(SceneTree.STRETCH_MODE_DISABLED, SceneTree.STRETCH_ASPECT_IGNORE, Vector2(900, 1000), clamp(OS.get_screen_dpi() / 72.0, 1, 3)) + else: + var shrink_override_value : float = ProjectSettings.get("display/window/stretch/shrink_override_value") + get_tree().set_screen_stretch(SceneTree.STRETCH_MODE_DISABLED, SceneTree.STRETCH_ASPECT_IGNORE, Vector2(900, 1000), shrink_override_value) + func _on_Sort_pressed() -> void: if !_sort.validate_folders(): _folder_setup_error_popup.popup_centered() @@ -24,8 +31,6 @@ func _on_Settings_pressed() -> void: func _notification(what: int) -> void: if what == NOTIFICATION_READY: - get_tree().set_screen_stretch(SceneTree.STRETCH_MODE_DISABLED, SceneTree.STRETCH_ASPECT_IGNORE, Vector2(900, 1000), clamp(OS.get_screen_dpi() / 72.0, 1, 3)) - _menu = get_node("Menu") _settings = get_node("Settings") _sort = get_node("Sort") diff --git a/game/project.pandemonium b/game/project.pandemonium index c761fc1..7050b84 100644 --- a/game/project.pandemonium +++ b/game/project.pandemonium @@ -24,6 +24,8 @@ window/size/width=900 window/size/height=1000 window/energy_saving/keep_screen_on=false window/handheld/orientation="sensor" +window/stretch/shrink_override=false +window/stretch/shrink_override_value=1.0 [editor_plugins] diff --git a/game/settings/Settings.gd b/game/settings/Settings.gd index 68a216d..cdeda90 100644 --- a/game/settings/Settings.gd +++ b/game/settings/Settings.gd @@ -6,6 +6,8 @@ signal back var _sort_folder_line_edit : LineEdit var _target_folder_line_edit : LineEdit +var _shrink_override_cb : CheckButton +var _shrink_override_value_slider : HSlider func load_settings() -> void: var config_file : ConfigFile = ConfigFile.new() @@ -18,12 +20,20 @@ func load_settings() -> void: var sort_folder : String = config_file.get_value("default", "sort_folder", "") var target_folder : String = config_file.get_value("default", "target_folder", "") + var shrink_override : bool = config_file.get_value("default", "shrink_override", false) + var shrink_override_value : float = config_file.get_value("default", "shrink_override_value", 1) ProjectSettings.set("application/config/sort_folder", sort_folder) ProjectSettings.set("application/config/target_folder", target_folder) + ProjectSettings.set("display/window/stretch/shrink_override", shrink_override) + ProjectSettings.set("display/window/stretch/shrink_override_value", shrink_override_value) _sort_folder_line_edit.text = sort_folder _target_folder_line_edit.text = target_folder + _shrink_override_cb.pressed = shrink_override + _shrink_override_value_slider.value = shrink_override_value + + get_parent().apply_shink() func save_settings() -> void: @@ -31,18 +41,26 @@ func save_settings() -> void: var sort_folder : String = _sort_folder_line_edit.text var target_folder : String = _target_folder_line_edit.text + var shrink_override : bool = _shrink_override_cb.pressed + var shrink_override_value : float = _shrink_override_value_slider.value config_file.set_value("default", "sort_folder", sort_folder) config_file.set_value("default", "target_folder", target_folder) - + config_file.set_value("default", "shrink_override", shrink_override) + config_file.set_value("default", "shrink_override_value", shrink_override_value) + ProjectSettings.set("application/config/sort_folder", sort_folder) ProjectSettings.set("application/config/target_folder", target_folder) + ProjectSettings.set("display/window/stretch/shrink_override", shrink_override) + ProjectSettings.set("display/window/stretch/shrink_override_value", shrink_override_value) var error : int = config_file.save(settings_file) if error != OK: # print("Failed to load the settings file! Error code %s" % error) return + + get_parent().apply_shink() func _on_Button_pressed() -> void: save_settings() @@ -52,4 +70,7 @@ func _notification(what: int) -> void: if what == NOTIFICATION_READY: _sort_folder_line_edit = get_node("VBoxContainer/SortFolder") as LineEdit _target_folder_line_edit = get_node("VBoxContainer/TargetFolder") as LineEdit + _shrink_override_cb = get_node("VBoxContainer/ShrinkOverride") as CheckButton + _shrink_override_value_slider = get_node("VBoxContainer/ShrinkOverrideValue") as HSlider + load_settings() diff --git a/game/settings/Settings.tscn b/game/settings/Settings.tscn index 7f342f4..5da6e66 100644 --- a/game/settings/Settings.tscn +++ b/game/settings/Settings.tscn @@ -3,41 +3,75 @@ [ext_resource path="res://settings/Settings.gd" type="Script" id=1] [node name="Settings" type="MarginContainer"] -margin_right = 1024.0 -margin_bottom = 600.0 +anchor_right = 1.0 +anchor_bottom = 1.0 script = ExtResource( 1 ) [node name="VBoxContainer" type="VBoxContainer" parent="."] -margin_right = 1024.0 -margin_bottom = 600.0 +margin_right = 900.0 +margin_bottom = 1000.0 +custom_constants/separation = 10 alignment = 1 [node name="Label" type="Label" parent="VBoxContainer"] -margin_top = 244.0 -margin_right = 1024.0 -margin_bottom = 258.0 +margin_top = 368.0 +margin_right = 900.0 +margin_bottom = 382.0 text = "Sort folder" [node name="SortFolder" type="LineEdit" parent="VBoxContainer"] -margin_top = 262.0 -margin_right = 1024.0 -margin_bottom = 286.0 +margin_top = 392.0 +margin_right = 900.0 +margin_bottom = 416.0 [node name="Label2" type="Label" parent="VBoxContainer"] -margin_top = 290.0 -margin_right = 1024.0 -margin_bottom = 304.0 +margin_top = 426.0 +margin_right = 900.0 +margin_bottom = 440.0 text = "Target folder" [node name="TargetFolder" type="LineEdit" parent="VBoxContainer"] -margin_top = 308.0 -margin_right = 1024.0 -margin_bottom = 332.0 +margin_top = 450.0 +margin_right = 900.0 +margin_bottom = 474.0 + +[node name="HSeparator" type="HSeparator" parent="VBoxContainer"] +margin_top = 484.0 +margin_right = 900.0 +margin_bottom = 488.0 + +[node name="ShrinkOverride" type="CheckButton" parent="VBoxContainer"] +margin_top = 498.0 +margin_right = 900.0 +margin_bottom = 538.0 +text = "Shrink Override" + +[node name="Label3" type="Label" parent="VBoxContainer"] +margin_top = 548.0 +margin_right = 900.0 +margin_bottom = 562.0 +text = "Shrink Override Value" + +[node name="ShrinkOverrideValue" type="HSlider" parent="VBoxContainer"] +margin_top = 572.0 +margin_right = 900.0 +margin_bottom = 588.0 +min_value = 0.2 +max_value = 10.0 +step = 0.0 +value = 1.0 +tick_count = 11 +ticks_on_borders = true + +[node name="HSeparator2" type="HSeparator" parent="VBoxContainer"] +margin_top = 598.0 +margin_right = 900.0 +margin_bottom = 602.0 [node name="BackButton" type="Button" parent="VBoxContainer"] -margin_top = 336.0 -margin_right = 1024.0 -margin_bottom = 356.0 +margin_top = 612.0 +margin_right = 900.0 +margin_bottom = 632.0 text = "<- Back" [connection signal="pressed" from="VBoxContainer/BackButton" to="." method="_on_Button_pressed"]