From 0e70bbda327dfbe02f3f934b74c37c2aaa995e61 Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 3 Jun 2026 14:40:20 +0200 Subject: [PATCH] misc menu reworks --- src/dev-util/cursor_util.gd | 10 +++ src/dev-util/stereo-switch.gd | 4 +- .../luna/playables/story_playable.gd | 2 +- .../themes/content_note_theme.tres | 27 ++++++++ src/singletons/global_state.gd | 18 ++++- src/ui/menu_main/accessibility_settings.gd | 13 +++- src/ui/menu_main/accessibility_settings.tscn | 66 +++++++++--------- src/ui/menu_main/audio_settings.tscn | 64 +++++++++-------- src/ui/menu_main/content_settings.tscn | 68 +++++++++---------- src/ui/menu_main/gameplay_settings.tscn | 52 +++++++------- src/ui/menu_main/main_menu.gd | 10 ++- src/ui/menu_main/main_menu.tscn | 30 ++++---- src/ui/menu_main/save_game_list.gd | 7 +- 13 files changed, 216 insertions(+), 155 deletions(-) create mode 100644 src/dev-util/cursor_util.gd create mode 100644 src/logic-scenes/themes/content_note_theme.tres diff --git a/src/dev-util/cursor_util.gd b/src/dev-util/cursor_util.gd new file mode 100644 index 00000000..f356907a --- /dev/null +++ b/src/dev-util/cursor_util.gd @@ -0,0 +1,10 @@ +extends Node + +var arrow: Texture2D = preload("res://import/interface-elements/cursor.png") +var grab: Texture2D = preload("res://import/interface-elements/cursor_grab.png") +var drag: Texture2D = preload("res://import/interface-elements/cursor_drag.png") + +func _ready() -> void: + Input.set_custom_mouse_cursor(arrow) + Input.set_custom_mouse_cursor(grab, Input.CURSOR_MOVE) + Input.set_custom_mouse_cursor(drag, Input.CURSOR_DRAG) diff --git a/src/dev-util/stereo-switch.gd b/src/dev-util/stereo-switch.gd index 6d519fbd..1c28619b 100644 --- a/src/dev-util/stereo-switch.gd +++ b/src/dev-util/stereo-switch.gd @@ -17,10 +17,10 @@ func update_mix_target(): func play(from:float = 0.0) -> void: if not alternate_streams == {}: - match State.speech_language: - 1: stream = default_stream + match State.speech_locale: 2: if alternate_streams.keys().has("de"): stream = alternate_streams["de"] + _: stream = default_stream super.play(from) diff --git a/src/logic-scenes/luna/playables/story_playable.gd b/src/logic-scenes/luna/playables/story_playable.gd index e71bbac9..61fa0a71 100644 --- a/src/logic-scenes/luna/playables/story_playable.gd +++ b/src/logic-scenes/luna/playables/story_playable.gd @@ -137,7 +137,7 @@ func appear(): all_text_revealed = false animation_complete = false - match State.speech_language: + match State.speech_locale: 2: animation_player.queue("de") _: diff --git a/src/logic-scenes/themes/content_note_theme.tres b/src/logic-scenes/themes/content_note_theme.tres new file mode 100644 index 00000000..112e0bec --- /dev/null +++ b/src/logic-scenes/themes/content_note_theme.tres @@ -0,0 +1,27 @@ +[gd_resource type="Theme" format=3 uid="uid://c30n4maixii5g"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fbpt0"] +content_margin_left = 10.0 +content_margin_top = 10.0 +content_margin_right = 10.0 +content_margin_bottom = 10.0 +bg_color = Color(0.73248583, 0.5589029, 0.8031642, 1) +border_width_left = 5 +border_width_top = 5 +border_width_right = 5 +border_width_bottom = 5 +border_color = Color(0.37666512, 0.30695406, 0.637124, 1) +corner_radius_top_left = 10 +corner_radius_top_right = 10 +corner_radius_bottom_right = 10 +corner_radius_bottom_left = 10 + +[resource] +Button/colors/font_color = Color(0, 0, 0, 1) +Button/styles/disabled = SubResource("StyleBoxFlat_fbpt0") +Button/styles/normal = SubResource("StyleBoxFlat_fbpt0") +Label/colors/font_color = Color(0, 0, 0, 1) +Label/font_sizes/font_size = 25 +Label/styles/normal = SubResource("StyleBoxFlat_fbpt0") +RichTextLabel/colors/default_color = Color(0, 0, 0, 1) +RichTextLabel/styles/normal = SubResource("StyleBoxFlat_fbpt0") diff --git a/src/singletons/global_state.gd b/src/singletons/global_state.gd index 35c0ce82..d1adc0f0 100644 --- a/src/singletons/global_state.gd +++ b/src/singletons/global_state.gd @@ -150,12 +150,26 @@ const user_saves_path:String = "user://savegames" match text_language: 1: TranslationServer.set_locale("en") 2: TranslationServer.set_locale("de") - _: TranslationServer.set_locale(OS.get_locale()) + _: + if OS.get_locale() == "de": + TranslationServer.set_locale("de") + else: + TranslationServer.set_locale("en") settings_changed.emit() @export_enum("system_locale", "english", "german") var speech_language: int = 0: set(value): speech_language = value - + match speech_language: + 1: speech_locale = 1 + 2: speech_locale = 2 + _: + if OS.get_locale() == "de": + speech_locale = 1 + else: + speech_locale = 2 + settings_changed.emit() + speech_language = value +var speech_locale @export_group("Gameplay Settings") @export var input_sensitivity: float = 1.0 @export var fov: float = 35.0 diff --git a/src/ui/menu_main/accessibility_settings.gd b/src/ui/menu_main/accessibility_settings.gd index bd70e298..352b23e6 100644 --- a/src/ui/menu_main/accessibility_settings.gd +++ b/src/ui/menu_main/accessibility_settings.gd @@ -14,8 +14,6 @@ var is_active:bool = false: set(active): if is_node_ready() and active: screenreader_check.grab_focus() - if not active and is_active: - leave_stage.emit() is_active = active if (is_active and not focused) and not get_tree().paused: @@ -24,6 +22,7 @@ var is_active:bool = false: @export var is_in_beginning: bool = false @onready var reduce_motion_check: CheckBox = %ReduceMotion +@onready var disable_bobbing_check: CheckBox = %DisableBobbing @onready var screenreader_check: CheckBox = %Screenreader @onready var disable_rendering_check: CheckBox = %DisableRendering @onready var simplify_controls_check: CheckBox = %SimplyifyControls @@ -44,8 +43,10 @@ func _ready() -> void: update_ui_from_state() - reduce_motion_check.pressed.connect(func(value): State.reduce_motion = value) + reduce_motion_check.pressed.connect(_on_reduce_motion_pressed) reduce_motion_check.pressed.connect(changed.emit) + disable_bobbing_check.pressed.connect(func(value): State.disable_bobbing = value) + disable_bobbing_check.pressed.connect(changed.emit) screenreader_check.pressed.connect(func(value): State.screen_reader_enabled = value) screenreader_check.pressed.connect(changed.emit) disable_rendering_check.pressed.connect(func(value): State.rendering_disabled = value) @@ -78,9 +79,15 @@ func update_ui_from_state(): subtitle_picker.selected = State.subtitles scale_slider.value = State.ui_scaling +func _on_reduce_motion_pressed(pressed: bool) -> void: + State.reduce_motion = pressed + disable_bobbing_check.disabled = pressed + disable_bobbing_check.button_pressed = pressed + func _on_save_button_pressed() -> void: State.save_settings() is_active = false + leave_stage.emit() func _input(event: InputEvent) -> void: if event.is_action_pressed("ui_cancel") and is_active: diff --git a/src/ui/menu_main/accessibility_settings.tscn b/src/ui/menu_main/accessibility_settings.tscn index 2d0cf344..2fb486c7 100644 --- a/src/ui/menu_main/accessibility_settings.tscn +++ b/src/ui/menu_main/accessibility_settings.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=5 format=3 uid="uid://b3wlecqvelh22"] +[gd_scene format=3 uid="uid://b3wlecqvelh22"] [ext_resource type="Script" uid="uid://cbax2lv4pstqk" path="res://ui/menu_main/accessibility_settings.gd" id="1_x3lym"] [ext_resource type="PackedScene" uid="uid://dy5rd437h5hsw" path="res://logic-scenes/board/card.tscn" id="2_24dtk"] @@ -17,85 +17,90 @@ func _ready() -> void: pressed.connect(func(): OS.shell_open(\"https://store.steampowered.com/news/app/2515480/view/534358622649452263\")) " -[node name="Accessibility" type="VBoxContainer"] +[node name="Accessibility" type="VBoxContainer" unique_id=1127462745] script = ExtResource("1_x3lym") -is_in_beginning = null metadata/_tab_index = 0 -[node name="Label" type="Label" parent="."] +[node name="Label" type="Label" parent="." unique_id=74247572] layout_mode = 2 theme_type_variation = &"HeaderLarge" text = "menu_a11y_title" -[node name="Label4" type="Label" parent="."] +[node name="Label4" type="Label" parent="." unique_id=1029235384] layout_mode = 2 text = "menu_a11y_disclaimer" -[node name="Container2" type="VBoxContainer" parent="."] +[node name="Container2" type="VBoxContainer" parent="." unique_id=349263796] layout_mode = 2 -[node name="ReduceMotion" type="CheckBox" parent="Container2"] +[node name="ReduceMotion" type="CheckBox" parent="Container2" unique_id=169685481] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 0 text = "menu_a11y_motion" -[node name="Screenreader" type="CheckBox" parent="Container2"] +[node name="DisableBobbing" type="CheckBox" parent="Container2" unique_id=311345643] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 0 +text = "menu_a11y_head_bobbing" + +[node name="Screenreader" type="CheckBox" parent="Container2" unique_id=260720725] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 0 disabled = true -text = "use Screenreader" +text = "menu_a11y_screenreader" script = SubResource("GDScript_v567h") -[node name="margin2" type="MarginContainer" parent="Container2"] +[node name="margin2" type="MarginContainer" parent="Container2" unique_id=1774098220] visible = false layout_mode = 2 -[node name="DisableRendering" type="CheckBox" parent="Container2/margin2"] +[node name="DisableRendering" type="CheckBox" parent="Container2/margin2" unique_id=981247924] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 0 disabled = true text = "disable video" -[node name="SimplyifyControls" type="CheckBox" parent="Container2"] +[node name="SimplyifyControls" type="CheckBox" parent="Container2" unique_id=1513674258] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 0 disabled = true text = "simplified Controls" -[node name="margin" type="MarginContainer" parent="Container2"] +[node name="margin" type="MarginContainer" parent="Container2" unique_id=1636751538] visible = false layout_mode = 2 -[node name="ShowNavUI" type="CheckBox" parent="Container2/margin"] +[node name="ShowNavUI" type="CheckBox" parent="Container2/margin" unique_id=1902241444] unique_name_in_owner = true layout_mode = 2 disabled = true text = "show Navigation Buttons" -[node name="HyperacusticsFilter" type="CheckBox" parent="Container2"] +[node name="HyperacusticsFilter" type="CheckBox" parent="Container2" unique_id=2043037116] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 0 tooltip_text = "Applies an audio filter that removes high pitched noises." text = "menu_a11y_hyperacoustics_filter" -[node name="GridContainer" type="GridContainer" parent="Container2"] +[node name="GridContainer" type="GridContainer" parent="Container2" unique_id=1659943778] layout_mode = 2 columns = 3 -[node name="Label" type="Label" parent="Container2/GridContainer"] +[node name="Label" type="Label" parent="Container2/GridContainer" unique_id=1143896544] layout_mode = 2 text = "menu_a11y_fonts" -[node name="VSeparator" type="VSeparator" parent="Container2/GridContainer"] +[node name="VSeparator" type="VSeparator" parent="Container2/GridContainer" unique_id=1188811042] custom_minimum_size = Vector2(30, 0) layout_mode = 2 -[node name="FontSeettings" type="OptionButton" parent="Container2/GridContainer"] +[node name="FontSeettings" type="OptionButton" parent="Container2/GridContainer" unique_id=775424409] unique_name_in_owner = true layout_mode = 2 size_flags_vertical = 4 @@ -111,15 +116,15 @@ popup/item_2/id = 3 popup/item_3/text = "system font" popup/item_3/id = 4 -[node name="Label2" type="Label" parent="Container2/GridContainer"] +[node name="Label2" type="Label" parent="Container2/GridContainer" unique_id=2096527155] layout_mode = 2 text = "menu_a11y_subtitles" -[node name="VSeparator2" type="VSeparator" parent="Container2/GridContainer"] +[node name="VSeparator2" type="VSeparator" parent="Container2/GridContainer" unique_id=92983831] custom_minimum_size = Vector2(30, 0) layout_mode = 2 -[node name="SubtitleSettings" type="OptionButton" parent="Container2/GridContainer"] +[node name="SubtitleSettings" type="OptionButton" parent="Container2/GridContainer" unique_id=1972211193] unique_name_in_owner = true layout_mode = 2 size_flags_vertical = 4 @@ -133,16 +138,16 @@ popup/item_1/id = 1 popup/item_2/text = "closed captions" popup/item_2/id = 2 -[node name="Label3" type="Label" parent="Container2/GridContainer"] +[node name="Label3" type="Label" parent="Container2/GridContainer" unique_id=573284714] modulate = Color(0.65012825, 0.6501283, 0.65012825, 1) layout_mode = 2 text = "menu_a11y_scale" -[node name="VSeparator3" type="VSeparator" parent="Container2/GridContainer"] +[node name="VSeparator3" type="VSeparator" parent="Container2/GridContainer" unique_id=1551132990] custom_minimum_size = Vector2(30, 0) layout_mode = 2 -[node name="UIScaleSlider" type="HSlider" parent="Container2/GridContainer"] +[node name="UIScaleSlider" type="HSlider" parent="Container2/GridContainer" unique_id=1826160884] unique_name_in_owner = true layout_mode = 2 size_flags_vertical = 4 @@ -151,33 +156,32 @@ max_value = 1.5 step = 0.0 value = 1.0 -[node name="Button" type="Button" parent="Container2"] +[node name="Button" type="Button" parent="Container2" unique_id=682416727] layout_mode = 2 size_flags_horizontal = 4 text = "menu_a11y_statement" script = SubResource("GDScript_72hl5") -[node name="navbuttons" type="HSplitContainer" parent="."] +[node name="navbuttons" type="HSplitContainer" parent="." unique_id=1233717805] layout_mode = 2 size_flags_horizontal = 4 size_flags_vertical = 10 dragger_visibility = 1 -[node name="BackButton" type="Button" parent="navbuttons"] +[node name="BackButton" type="Button" parent="navbuttons" unique_id=2023649520] unique_name_in_owner = true layout_mode = 2 disabled = true text = "menu_back" -[node name="SaveButton" type="Button" parent="navbuttons"] +[node name="SaveButton" type="Button" parent="navbuttons" unique_id=1663081349] unique_name_in_owner = true layout_mode = 2 text = "menu_save" -[node name="card" parent="." instance=ExtResource("2_24dtk")] +[node name="card" parent="." unique_id=177353873 instance=ExtResource("2_24dtk")] process_mode = 4 position = Vector2(837, 159) collision_layer = 0 -collision_mask = 0 input_pickable = false text = "I never put in much effort for Homework" diff --git a/src/ui/menu_main/audio_settings.tscn b/src/ui/menu_main/audio_settings.tscn index 756853d3..b7fc34bc 100644 --- a/src/ui/menu_main/audio_settings.tscn +++ b/src/ui/menu_main/audio_settings.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=3 uid="uid://dfhkfocy8axb8"] +[gd_scene format=3 uid="uid://dfhkfocy8axb8"] [ext_resource type="Script" uid="uid://b2redm7dwpcne" path="res://ui/menu_main/audio_settings.gd" id="1_0lla1"] [ext_resource type="AudioStream" uid="uid://cl74a68tjwinh" path="res://base-environments/youth_room/audio/Youth Loop.wav" id="2_01rsa"] @@ -63,43 +63,43 @@ pressed = true [sub_resource type="Shortcut" id="Shortcut_0peu0"] events = [SubResource("InputEventAction_gy6yb")] -[node name="Audio and Language" type="VBoxContainer"] +[node name="Audio and Language" type="VBoxContainer" unique_id=341739022] script = ExtResource("1_0lla1") metadata/_tab_index = 1 -[node name="Label" type="Label" parent="."] +[node name="Label" type="Label" parent="." unique_id=1039268819] layout_mode = 2 theme_type_variation = &"HeaderLarge" text = "Audio and Language" -[node name="VBoxContainer" type="VBoxContainer" parent="."] +[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=843555511] layout_mode = 2 -[node name="MuteSoundtrack" type="CheckBox" parent="VBoxContainer"] +[node name="MuteSoundtrack" type="CheckBox" parent="VBoxContainer" unique_id=1669925471] unique_name_in_owner = true layout_mode = 2 tooltip_text = "All Game Music is safe to stream." text = "mute Soundtrack" -[node name="MuteSFX" type="CheckBox" parent="VBoxContainer"] +[node name="MuteSFX" type="CheckBox" parent="VBoxContainer" unique_id=312275222] unique_name_in_owner = true layout_mode = 2 text = "mute Sound-Effects" -[node name="AdjustmentLabel" type="Label" parent="VBoxContainer"] +[node name="AdjustmentLabel" type="Label" parent="VBoxContainer" unique_id=1283139505] layout_mode = 2 theme_type_variation = &"HeaderMedium" text = "Volume Adjustment" -[node name="GridContainer" type="GridContainer" parent="VBoxContainer"] +[node name="GridContainer" type="GridContainer" parent="VBoxContainer" unique_id=1142552003] layout_mode = 2 columns = 2 -[node name="Label" type="Label" parent="VBoxContainer/GridContainer"] +[node name="Label" type="Label" parent="VBoxContainer/GridContainer" unique_id=941888483] layout_mode = 2 text = "Music" -[node name="MusicSlider" type="HSlider" parent="VBoxContainer/GridContainer"] +[node name="MusicSlider" type="HSlider" parent="VBoxContainer/GridContainer" unique_id=1791871311] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 @@ -109,24 +109,22 @@ step = 0.05 value = 1.0 ticks_on_borders = true -[node name="MusicPreview" type="AudioStreamPlayer" parent="VBoxContainer/GridContainer/MusicSlider"] +[node name="MusicPreview" type="AudioStreamPlayer" parent="VBoxContainer/GridContainer/MusicSlider" unique_id=971063897] unique_name_in_owner = true stream = ExtResource("2_01rsa") volume_db = -80.0 bus = &"music" -[node name="MusicMixer" type="AnimationPlayer" parent="VBoxContainer/GridContainer/MusicSlider"] +[node name="MusicMixer" type="AnimationPlayer" parent="VBoxContainer/GridContainer/MusicSlider" unique_id=1357197397] unique_name_in_owner = true root_node = NodePath("../../SumSlider") -libraries = { -&"": SubResource("AnimationLibrary_sfx55") -} +libraries/ = SubResource("AnimationLibrary_sfx55") -[node name="Label3" type="Label" parent="VBoxContainer/GridContainer"] +[node name="Label3" type="Label" parent="VBoxContainer/GridContainer" unique_id=91693976] layout_mode = 2 text = "Sounds" -[node name="SoundSlider" type="HSlider" parent="VBoxContainer/GridContainer"] +[node name="SoundSlider" type="HSlider" parent="VBoxContainer/GridContainer" unique_id=164766319] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 @@ -135,11 +133,11 @@ max_value = 1.5 step = 0.05 value = 1.0 -[node name="Label4" type="Label" parent="VBoxContainer/GridContainer"] +[node name="Label4" type="Label" parent="VBoxContainer/GridContainer" unique_id=1851625739] layout_mode = 2 text = "Speech" -[node name="SpeechSlider" type="HSlider" parent="VBoxContainer/GridContainer"] +[node name="SpeechSlider" type="HSlider" parent="VBoxContainer/GridContainer" unique_id=634964799] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 @@ -148,11 +146,11 @@ max_value = 1.5 step = 0.05 value = 1.0 -[node name="Label5" type="Label" parent="VBoxContainer/GridContainer"] +[node name="Label5" type="Label" parent="VBoxContainer/GridContainer" unique_id=1551017387] layout_mode = 2 text = "Sum" -[node name="SumSlider" type="HSlider" parent="VBoxContainer/GridContainer"] +[node name="SumSlider" type="HSlider" parent="VBoxContainer/GridContainer" unique_id=376143581] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 @@ -161,42 +159,42 @@ max_value = 1.5 step = 0.05 value = 1.0 -[node name="ForceStereoCheck" type="CheckBox" parent="."] +[node name="ForceStereoCheck" type="CheckBox" parent="." unique_id=220019275] unique_name_in_owner = true layout_mode = 2 tooltip_text = "This setting disables the surround center channel. May resolve you not hearing speech when your Operating Sustem has a misconfigured surround setup." text = "Headphone-Mode (may fix missing speech)" -[node name="I18nLabel" type="Label" parent="."] +[node name="I18nLabel" type="Label" parent="." unique_id=1331196346] layout_mode = 2 theme_type_variation = &"HeaderMedium" text = "Language Settings" -[node name="GridContainer" type="GridContainer" parent="."] +[node name="GridContainer" type="GridContainer" parent="." unique_id=288112326] layout_mode = 2 columns = 2 -[node name="Label2" type="Label" parent="GridContainer"] +[node name="Label2" type="Label" parent="GridContainer" unique_id=1704987098] layout_mode = 2 text = "Interface" -[node name="InterfaceSelector" type="OptionButton" parent="GridContainer"] +[node name="InterfaceSelector" type="OptionButton" parent="GridContainer" unique_id=56830931] unique_name_in_owner = true layout_mode = 2 selected = 0 item_count = 3 -popup/item_0/text = "use OS Language" +popup/item_0/text = "menu_lang_use_OS" popup/item_0/id = 0 popup/item_1/text = "English" popup/item_1/id = 1 popup/item_2/text = "German" popup/item_2/id = 2 -[node name="Label3" type="Label" parent="GridContainer"] +[node name="Label3" type="Label" parent="GridContainer" unique_id=500535399] layout_mode = 2 text = "Voice Lines" -[node name="SpeechSelector" type="OptionButton" parent="GridContainer"] +[node name="SpeechSelector" type="OptionButton" parent="GridContainer" unique_id=1539855962] unique_name_in_owner = true layout_mode = 2 selected = 0 @@ -208,21 +206,21 @@ popup/item_1/id = 1 popup/item_2/text = "German" popup/item_2/id = 2 -[node name="I18nLabel2" type="Label" parent="."] +[node name="I18nLabel2" type="Label" parent="." unique_id=2072531334] layout_mode = 2 text = "Find Subtitle Settings in Acessability Settings." -[node name="confirm_buttons" type="HSplitContainer" parent="."] +[node name="confirm_buttons" type="HSplitContainer" parent="." unique_id=1487666725] layout_mode = 2 size_flags_horizontal = 4 size_flags_vertical = 10 -[node name="ResetButton" type="Button" parent="confirm_buttons"] +[node name="ResetButton" type="Button" parent="confirm_buttons" unique_id=1535010885] unique_name_in_owner = true layout_mode = 2 text = "reset" -[node name="SaveButton" type="Button" parent="confirm_buttons"] +[node name="SaveButton" type="Button" parent="confirm_buttons" unique_id=1047362891] unique_name_in_owner = true layout_mode = 2 shortcut = SubResource("Shortcut_0peu0") diff --git a/src/ui/menu_main/content_settings.tscn b/src/ui/menu_main/content_settings.tscn index 5cc9f3ab..0875abac 100644 --- a/src/ui/menu_main/content_settings.tscn +++ b/src/ui/menu_main/content_settings.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=22 format=3 uid="uid://chal0ioagspx0"] +[gd_scene format=3 uid="uid://chal0ioagspx0"] [ext_resource type="Script" uid="uid://wybb38po3pbo" path="res://ui/menu_main/content_settings.gd" id="1_wnuvg"] [ext_resource type="Script" uid="uid://dbap0gqox0ty1" path="res://addons/markdownlabel/markdownlabel.gd" id="2_b7ja7"] +[ext_resource type="Theme" uid="uid://c30n4maixii5g" path="res://logic-scenes/themes/content_note_theme.tres" id="2_v1dfg"] [ext_resource type="Script" uid="uid://dcx7crs23nf4" path="res://addons/markdownlabel/header_formats/h1_format.gd" id="3_00t14"] [ext_resource type="Script" uid="uid://d0sin64i4v3op" path="res://addons/markdownlabel/header_formats/h2_format.gd" id="4_336xo"] [ext_resource type="Script" uid="uid://dlok0dv1tq2bf" path="res://addons/markdownlabel/header_formats/h3_format.gd" id="5_ltaew"] @@ -115,50 +116,51 @@ pressed = true [sub_resource type="Shortcut" id="Shortcut_df462"] events = [SubResource("InputEventAction_gy6yb")] -[node name="Content Notes" type="VBoxContainer"] +[node name="Content Notes" type="VBoxContainer" unique_id=973098421] custom_minimum_size = Vector2(800, 0) script = ExtResource("1_wnuvg") metadata/_tab_index = 1 -[node name="Label" type="Label" parent="."] +[node name="Label" type="Label" parent="." unique_id=1549570360] layout_mode = 2 theme_type_variation = &"HeaderLarge" text = "title_content_notes" -[node name="Label2" type="Label" parent="."] -layout_mode = 2 -text = "menu_cn_disclaimer" - -[node name="HSplitContainer" type="HSplitContainer" parent="."] +[node name="HSplitContainer" type="HSplitContainer" parent="." unique_id=1619461295] layout_mode = 2 -[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer"] +[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer" unique_id=1835335582] layout_mode = 2 size_flags_horizontal = 0 -[node name="ContentNoteButton" type="CheckBox" parent="HSplitContainer/VBoxContainer"] +[node name="Label2" type="Label" parent="HSplitContainer/VBoxContainer" unique_id=539682298] +layout_mode = 2 +text = "menu_cn_disclaimer" + +[node name="ContentNoteButton" type="CheckBox" parent="HSplitContainer/VBoxContainer" unique_id=520243906] unique_name_in_owner = true layout_mode = 2 tooltip_text = "menu_cn_enable_tooltip" text = "menu_cn_enable" -[node name="AllowSkipButton" type="CheckBox" parent="HSplitContainer/VBoxContainer"] +[node name="AllowSkipButton" type="CheckBox" parent="HSplitContainer/VBoxContainer" unique_id=637627445] unique_name_in_owner = true layout_mode = 2 tooltip_text = "menu_cn_allow_skips_tooltip" text = "menu_cn_allow_skips" -[node name="ReturnThoughtsButton" type="CheckBox" parent="HSplitContainer/VBoxContainer"] +[node name="ReturnThoughtsButton" type="CheckBox" parent="HSplitContainer/VBoxContainer" unique_id=357788228] unique_name_in_owner = true layout_mode = 2 tooltip_text = "menu_cn_allow_returns_tooltip" text = "menu_cn_allow_returns" -[node name="RichTextLabel2" type="RichTextLabel" parent="HSplitContainer"] +[node name="RichTextLabel2" type="RichTextLabel" parent="HSplitContainer" unique_id=857499896] custom_minimum_size = Vector2(512, 0) layout_mode = 2 +theme = ExtResource("2_v1dfg") bbcode_enabled = true -text = "menu[i]cn[/i]summary" +text = "These options provide accessiblity and allow you to play as you like. Buttons related to these settings will appear pink. Hover on each option to learn more." fit_content = true script = ExtResource("2_b7ja7") markdown_text = "menu_cn_summary" @@ -170,31 +172,29 @@ h5 = SubResource("Resource_y1yi1") h6 = SubResource("Resource_5g2ol") metadata/_custom_type_script = "uid://dbap0gqox0ty1" -[node name="ExpandButton" type="Button" parent="."] +[node name="ExpandButton" type="Button" parent="." unique_id=1027829682] unique_name_in_owner = true layout_mode = 2 text = "menu_cn_learn_more" -[node name="ScrollContainer" type="ScrollContainer" parent="."] +[node name="ScrollContainer" type="ScrollContainer" parent="." unique_id=1668975511] layout_mode = 2 follow_focus = true scroll_vertical = 50 horizontal_scroll_mode = 0 -[node name="Reveal" type="AnimationPlayer" parent="ScrollContainer"] +[node name="Reveal" type="AnimationPlayer" parent="ScrollContainer" unique_id=1783569037] unique_name_in_owner = true -libraries = { -&"": SubResource("AnimationLibrary_x5rp4") -} +libraries/ = SubResource("AnimationLibrary_x5rp4") -[node name="Content Notes" type="VBoxContainer" parent="ScrollContainer"] +[node name="Content Notes" type="VBoxContainer" parent="ScrollContainer" unique_id=1723059374] layout_mode = 2 size_flags_horizontal = 3 -[node name="VBoxContainer1" type="VBoxContainer" parent="ScrollContainer/Content Notes"] +[node name="VBoxContainer1" type="VBoxContainer" parent="ScrollContainer/Content Notes" unique_id=127752457] layout_mode = 2 -[node name="Button" type="Button" parent="ScrollContainer/Content Notes/VBoxContainer1"] +[node name="Button" type="Button" parent="ScrollContainer/Content Notes/VBoxContainer1" unique_id=596287848] layout_mode = 2 focus_neighbor_bottom = NodePath("../../../../SaveButton") toggle_mode = true @@ -202,7 +202,7 @@ button_group = SubResource("ButtonGroup_v7ly6") text = "menu_cn_warm_title" script = SubResource("GDScript_rhtho") -[node name="RichTextLabel" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer1"] +[node name="RichTextLabel" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer1" unique_id=1398140896] visible = false custom_minimum_size = Vector2(512, 0) layout_mode = 2 @@ -210,34 +210,34 @@ bbcode_enabled = true text = "menu_cn_warm" fit_content = true -[node name="VBoxContainer2" type="VBoxContainer" parent="ScrollContainer/Content Notes"] +[node name="VBoxContainer2" type="VBoxContainer" parent="ScrollContainer/Content Notes" unique_id=917721565] layout_mode = 2 -[node name="Button" type="Button" parent="ScrollContainer/Content Notes/VBoxContainer2"] +[node name="Button" type="Button" parent="ScrollContainer/Content Notes/VBoxContainer2" unique_id=1634489748] layout_mode = 2 toggle_mode = true button_group = SubResource("ButtonGroup_v7ly6") text = "menu_cn_harsh_title" script = SubResource("GDScript_rhtho") -[node name="RichTextLabel" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer2"] +[node name="RichTextLabel" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer2" unique_id=656044582] custom_minimum_size = Vector2(512, 0) layout_mode = 2 bbcode_enabled = true text = "menu_cn_harsh" fit_content = true -[node name="VBoxContainer3" type="VBoxContainer" parent="ScrollContainer/Content Notes"] +[node name="VBoxContainer3" type="VBoxContainer" parent="ScrollContainer/Content Notes" unique_id=1429733158] layout_mode = 2 -[node name="Button" type="Button" parent="ScrollContainer/Content Notes/VBoxContainer3"] +[node name="Button" type="Button" parent="ScrollContainer/Content Notes/VBoxContainer3" unique_id=495224903] layout_mode = 2 toggle_mode = true button_group = SubResource("ButtonGroup_v7ly6") text = "menu_cn_somber_title" script = SubResource("GDScript_rhtho") -[node name="RichTextLabel" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer3"] +[node name="RichTextLabel" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer3" unique_id=2133568938] visible = false custom_minimum_size = Vector2(512, 0) layout_mode = 2 @@ -245,18 +245,18 @@ bbcode_enabled = true text = "menu_cn_somber" fit_content = true -[node name="VBoxContainer4" type="VBoxContainer" parent="ScrollContainer/Content Notes"] +[node name="VBoxContainer4" type="VBoxContainer" parent="ScrollContainer/Content Notes" unique_id=1769051693] visible = false layout_mode = 2 -[node name="Button" type="Button" parent="ScrollContainer/Content Notes/VBoxContainer4"] +[node name="Button" type="Button" parent="ScrollContainer/Content Notes/VBoxContainer4" unique_id=1520601041] layout_mode = 2 toggle_mode = true button_group = SubResource("ButtonGroup_v7ly6") text = "menu_cn_details" script = SubResource("GDScript_rhtho") -[node name="RichTextLabel2" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer4"] +[node name="RichTextLabel2" type="RichTextLabel" parent="ScrollContainer/Content Notes/VBoxContainer4" unique_id=2102565746] visible = false custom_minimum_size = Vector2(512, 0) layout_mode = 2 @@ -264,7 +264,7 @@ bbcode_enabled = true text = "menu_cn_details" fit_content = true -[node name="SaveButton" type="Button" parent="."] +[node name="SaveButton" type="Button" parent="." unique_id=622072687] unique_name_in_owner = true layout_mode = 2 shortcut = SubResource("Shortcut_df462") diff --git a/src/ui/menu_main/gameplay_settings.tscn b/src/ui/menu_main/gameplay_settings.tscn index a05343b0..78aee1b3 100644 --- a/src/ui/menu_main/gameplay_settings.tscn +++ b/src/ui/menu_main/gameplay_settings.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=4 format=3 uid="uid://dxwqkxq6qjk7i"] +[gd_scene format=3 uid="uid://dxwqkxq6qjk7i"] [ext_resource type="Script" uid="uid://bsnktd8qk5fl7" path="res://ui/menu_main/gameplay_settings.gd" id="1_aurh1"] @@ -9,52 +9,52 @@ pressed = true [sub_resource type="Shortcut" id="Shortcut_0peu0"] events = [SubResource("InputEventAction_gy6yb")] -[node name="Gameplay Settings" type="VBoxContainer"] +[node name="Gameplay Settings" type="VBoxContainer" unique_id=981179239] script = ExtResource("1_aurh1") metadata/_tab_index = 1 -[node name="Label" type="Label" parent="."] +[node name="Label" type="Label" parent="." unique_id=833518675] layout_mode = 2 theme_type_variation = &"HeaderLarge" text = "setting_gameplay_title" -[node name="Label2" type="Label" parent="."] +[node name="Label2" type="Label" parent="." unique_id=345006756] visible = false layout_mode = 2 theme_type_variation = &"HeaderMedium" text = "Gameplay Settings" -[node name="VBoxContainer" type="VBoxContainer" parent="."] +[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=556335546] layout_mode = 2 -[node name="InvertYGamepad" type="CheckBox" parent="VBoxContainer"] +[node name="InvertYGamepad" type="CheckBox" parent="VBoxContainer" unique_id=724133773] unique_name_in_owner = true layout_mode = 2 tooltip_text = "gameplay_invert_y_tooltop" -text = "gameplay_invert_y_gamepad" +text = "menu_gameplay_invert_gamepad" -[node name="InvertYMouse" type="CheckBox" parent="VBoxContainer"] +[node name="InvertYMouse" type="CheckBox" parent="VBoxContainer" unique_id=1537134451] unique_name_in_owner = true layout_mode = 2 tooltip_text = "gameplay_invert_y_tooltop" -text = "gameplay_invert_y_mouse" +text = "menu_gameplay_invert_mouse" -[node name="SimplifyControls" type="CheckBox" parent="VBoxContainer"] +[node name="SimplifyControls" type="CheckBox" parent="VBoxContainer" unique_id=1833387260] unique_name_in_owner = true layout_mode = 2 tooltip_text = "gameplay_simplify_tooltop" disabled = true -text = "gameplay_simplified" +text = "menu_gameplay_simplified" -[node name="GridContainer" type="GridContainer" parent="VBoxContainer"] +[node name="GridContainer" type="GridContainer" parent="VBoxContainer" unique_id=1442014797] layout_mode = 2 columns = 2 -[node name="Label" type="Label" parent="VBoxContainer/GridContainer"] +[node name="Label" type="Label" parent="VBoxContainer/GridContainer" unique_id=385946628] layout_mode = 2 -text = "Input Sensitivity" +text = "menu_gameplay_sensitivity" -[node name="InputSensitivitySlider" type="HSlider" parent="VBoxContainer/GridContainer"] +[node name="InputSensitivitySlider" type="HSlider" parent="VBoxContainer/GridContainer" unique_id=1486035043] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 @@ -64,11 +64,11 @@ step = 0.05 value = 0.5 ticks_on_borders = true -[node name="Label2" type="Label" parent="VBoxContainer/GridContainer"] +[node name="Label2" type="Label" parent="VBoxContainer/GridContainer" unique_id=1127682229] layout_mode = 2 -text = "gameplay_fov" +text = "menu_gameplay_fov" -[node name="FOVSlider" type="HSlider" parent="VBoxContainer/GridContainer"] +[node name="FOVSlider" type="HSlider" parent="VBoxContainer/GridContainer" unique_id=1933726301] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 @@ -79,11 +79,11 @@ step = 0.05 value = 75.0 ticks_on_borders = true -[node name="Label3" type="Label" parent="VBoxContainer/GridContainer"] +[node name="Label3" type="Label" parent="VBoxContainer/GridContainer" unique_id=639204298] layout_mode = 2 -text = "Stream Overlay" +text = "menu_stream_overlay" -[node name="StreamOverlayPicker" type="OptionButton" parent="VBoxContainer/GridContainer"] +[node name="StreamOverlayPicker" type="OptionButton" parent="VBoxContainer/GridContainer" unique_id=1159622068] unique_name_in_owner = true layout_mode = 2 tooltip_text = "Displays content note and currently playing music at s corner of the screen." @@ -100,17 +100,17 @@ popup/item_3/id = 5 popup/item_4/text = "Bottom Right" popup/item_4/id = 6 -[node name="Audio Sliders" type="HBoxContainer" parent="VBoxContainer"] +[node name="Audio Sliders" type="HBoxContainer" parent="VBoxContainer" unique_id=1705003041] layout_mode = 2 -[node name="Labels" type="VBoxContainer" parent="VBoxContainer/Audio Sliders"] +[node name="Labels" type="VBoxContainer" parent="VBoxContainer/Audio Sliders" unique_id=580463425] layout_mode = 2 -[node name="Sliders" type="VBoxContainer" parent="VBoxContainer/Audio Sliders"] +[node name="Sliders" type="VBoxContainer" parent="VBoxContainer/Audio Sliders" unique_id=1182571764] layout_mode = 2 -[node name="SaveButton" type="Button" parent="."] +[node name="SaveButton" type="Button" parent="." unique_id=2065545672] unique_name_in_owner = true layout_mode = 2 shortcut = SubResource("Shortcut_0peu0") -text = "save and exit" +text = "menu_save_exit" diff --git a/src/ui/menu_main/main_menu.gd b/src/ui/menu_main/main_menu.gd index a9b88c41..857fc8d2 100644 --- a/src/ui/menu_main/main_menu.gd +++ b/src/ui/menu_main/main_menu.gd @@ -71,9 +71,8 @@ func _activate() -> void: load_game_button.disabled = not save_game_list.has_more_saves() - for child: Control in $PanelContainer.get_children(): - child.focus_mode = Control.FOCUS_ALL - child.modulate = Color.WHITE + for child: Button in $PanelContainer.get_children(): + child.disabled = false if continue_button.visible: continue_button.grab_focus() @@ -83,9 +82,8 @@ func _activate() -> void: visible = true func _deactivate() -> void: - for child: Control in $PanelContainer.get_children(): - child.focus_mode = FOCUS_NONE - child.modulate = Color.WEB_GRAY + for child: Button in $PanelContainer.get_children(): + child.disabled = true func _appear() -> void: diff --git a/src/ui/menu_main/main_menu.tscn b/src/ui/menu_main/main_menu.tscn index 1a34639b..4fca3ded 100644 --- a/src/ui/menu_main/main_menu.tscn +++ b/src/ui/menu_main/main_menu.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=12 format=3 uid="uid://b51wdql4mby47"] +[gd_scene format=3 uid="uid://b51wdql4mby47"] [ext_resource type="Theme" uid="uid://b056fn288p8ha" path="res://logic-scenes/themes/handwriting.theme" id="1_2dg4n"] [ext_resource type="Script" uid="uid://c3o65t2rwpbtn" path="res://ui/menu_main/main_menu.gd" id="2_rm576"] @@ -13,7 +13,7 @@ [sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_njt06"] -[node name="MainMenu" type="Panel"] +[node name="MainMenu" type="Panel" unique_id=1778847711] anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 @@ -23,7 +23,7 @@ theme = ExtResource("1_2dg4n") theme_override_styles/panel = SubResource("StyleBoxEmpty_njt06") script = ExtResource("2_rm576") -[node name="Logo" type="TextureRect" parent="."] +[node name="Logo" type="TextureRect" parent="." unique_id=1461151531] layout_mode = 1 anchors_preset = 1 anchor_left = 1.0 @@ -36,7 +36,7 @@ grow_horizontal = 0 scale = Vector2(0.4, 0.4) texture = ExtResource("3_cm266") -[node name="LogoType" type="TextureRect" parent="."] +[node name="LogoType" type="TextureRect" parent="." unique_id=1160533112] layout_mode = 1 anchors_preset = 1 anchor_left = 1.0 @@ -56,14 +56,14 @@ textures = Dictionary[String, Texture]({ "en": ExtResource("4_g8g3n") }) -[node name="PanelContainer" type="VBoxContainer" parent="."] +[node name="PanelContainer" type="VBoxContainer" parent="." unique_id=778634405] layout_mode = 1 offset_left = 67.0 offset_top = 70.0 offset_right = 319.0 offset_bottom = 270.0 -[node name="ContinueGameButton" type="Button" parent="PanelContainer"] +[node name="ContinueGameButton" type="Button" parent="PanelContainer" unique_id=3002302] clip_contents = true layout_mode = 2 size_flags_horizontal = 0 @@ -72,7 +72,7 @@ text = "menu_continue" script = ExtResource("4_iotk1") metadata/_custom_type_script = "uid://cxton1pffwxk4" -[node name="NewGameButton" type="Button" parent="PanelContainer"] +[node name="NewGameButton" type="Button" parent="PanelContainer" unique_id=814470935] clip_contents = true layout_mode = 2 text = "menu_new_game" @@ -80,7 +80,7 @@ alignment = 0 script = ExtResource("4_iotk1") metadata/_custom_type_script = "uid://cxton1pffwxk4" -[node name="LoadGameButton" type="Button" parent="PanelContainer"] +[node name="LoadGameButton" type="Button" parent="PanelContainer" unique_id=1315125117] clip_contents = true layout_mode = 2 text = "menu_load" @@ -88,7 +88,7 @@ alignment = 0 script = ExtResource("4_iotk1") metadata/_custom_type_script = "uid://cxton1pffwxk4" -[node name="SettingsButton" type="Button" parent="PanelContainer"] +[node name="SettingsButton" type="Button" parent="PanelContainer" unique_id=1821753650] clip_contents = true layout_mode = 2 text = "menu_open_settings" @@ -96,7 +96,7 @@ alignment = 0 script = ExtResource("4_iotk1") metadata/_custom_type_script = "uid://cxton1pffwxk4" -[node name="CreditsButton" type="Button" parent="PanelContainer"] +[node name="CreditsButton" type="Button" parent="PanelContainer" unique_id=1609784329] clip_contents = true layout_mode = 2 tooltip_text = "Plays the Game Credits" @@ -105,14 +105,14 @@ alignment = 0 script = ExtResource("4_iotk1") metadata/_custom_type_script = "uid://cxton1pffwxk4" -[node name="BugButton" type="Button" parent="PanelContainer"] +[node name="BugButton" type="Button" parent="PanelContainer" unique_id=844490697] layout_mode = 2 text = "BugButton" alignment = 0 script = ExtResource("4_j5v2v") metadata/_custom_type_script = "uid://sa15wakvpj2e" -[node name="QuitButton" type="Button" parent="PanelContainer"] +[node name="QuitButton" type="Button" parent="PanelContainer" unique_id=1442382746] clip_contents = true layout_mode = 2 text = "quit" @@ -120,7 +120,7 @@ alignment = 0 script = ExtResource("4_iotk1") metadata/_custom_type_script = "uid://cxton1pffwxk4" -[node name="SettingsContainer" type="CenterContainer" parent="."] +[node name="SettingsContainer" type="CenterContainer" parent="." unique_id=737788457] visible = false layout_mode = 1 anchors_preset = 15 @@ -130,11 +130,11 @@ grow_horizontal = 2 grow_vertical = 2 mouse_filter = 0 -[node name="SettingsPopup" parent="SettingsContainer" instance=ExtResource("9_vhfai")] +[node name="SettingsPopup" parent="SettingsContainer" unique_id=431727728 instance=ExtResource("9_vhfai")] unique_name_in_owner = true layout_mode = 2 -[node name="SaveGameList" parent="." instance=ExtResource("10_vhfai")] +[node name="SaveGameList" parent="." unique_id=357507574 instance=ExtResource("10_vhfai")] unique_name_in_owner = true visible = false layout_mode = 1 diff --git a/src/ui/menu_main/save_game_list.gd b/src/ui/menu_main/save_game_list.gd index c139ad00..04c68861 100644 --- a/src/ui/menu_main/save_game_list.gd +++ b/src/ui/menu_main/save_game_list.gd @@ -86,7 +86,7 @@ func _rebuild_buttons() -> void: save_box.add_child(new_button) save_buttons.append(new_button) new_button.pressed.connect(_on_game_picked.bind(i)) - new_button.delete_requested.connect(_on_delete_requested.bind(i)) + new_button.delete_requested.connect(delete_at_index.bind(i)) # Reset scroll position to top after rebuilding scroll_container.scroll_vertical = 0 @@ -96,7 +96,7 @@ func _on_game_picked(id: int) -> void: _picked.emit(saves[id]) -func _on_delete_requested(id: int) -> void: +func delete_at_index(id: int) -> void: var save_to_delete := saves[id] var save_path := save_to_delete.file_name var thumbnail_path := "%s/thumbnails/%s.png" % [save_path.get_base_dir(), save_to_delete.unique_save_name] @@ -173,3 +173,6 @@ func close() -> void: _tween.tween_property(self, "modulate", Color.TRANSPARENT, 0.5) await _tween.finished hide() + +func reload_all_saves(): + _load_games()