diff --git a/save_load/autoloads/save_game_manager.gd b/save_load/autoloads/save_game_manager.gd index 9c25816..107743d 100644 --- a/save_load/autoloads/save_game_manager.gd +++ b/save_load/autoloads/save_game_manager.gd @@ -16,6 +16,8 @@ signal delete_save_file(filename: String) signal load_save_file(filename: String) signal quick_save signal quick_load +signal open_save_list_ui +signal close_save_list_ui var _game_data_resource: SaveGameDataResource diff --git a/save_load/ui/save_files_list.gd b/save_load/ui/save_files_list.gd index 382eb31..0135c48 100644 --- a/save_load/ui/save_files_list.gd +++ b/save_load/ui/save_files_list.gd @@ -12,8 +12,7 @@ func _ready() -> void: func refresh_saves_list() -> void: _clear_save_files_list() - var save_level_data_component: SaveLevelDataComponent = get_tree().get_first_node_in_group("save_level_data_component") - var save_files: Array[SaveFileDetailsResource] = save_level_data_component.list_saves() + var save_files: Array[SaveFileDetailsResource] = SaveGameManager.list_saves() for save_resource: SaveFileDetailsResource in save_files: var _save_file: SaveFilePanel = save_file_scene.instantiate() diff --git a/save_load/ui/save_files_list.tscn b/save_load/ui/save_files_list.tscn new file mode 100644 index 0000000..136ebdf --- /dev/null +++ b/save_load/ui/save_files_list.tscn @@ -0,0 +1,10 @@ +[gd_scene load_steps=3 format=3 uid="uid://cyxieflejsggu"] + +[ext_resource type="Script" uid="uid://cqabj86bq8whn" path="res://save_load/ui/save_files_list.gd" id="1_sh1p7"] +[ext_resource type="PackedScene" uid="uid://bb7poutsn4ex2" path="res://save_load/ui/save_file.tscn" id="2_kb5u8"] + +[node name="SaveFilesList" type="VBoxContainer"] +clip_contents = true +size_flags_horizontal = 4 +script = ExtResource("1_sh1p7") +save_file_scene = ExtResource("2_kb5u8") diff --git a/save_load/ui/save_load_ui.tscn b/save_load/ui/save_load_ui.tscn index 2250372..429c896 100644 --- a/save_load/ui/save_load_ui.tscn +++ b/save_load/ui/save_load_ui.tscn @@ -1,7 +1,6 @@ -[gd_scene load_steps=3 format=3 uid="uid://dauchkhmnyk7n"] +[gd_scene load_steps=2 format=3 uid="uid://dauchkhmnyk7n"] -[ext_resource type="Script" uid="uid://cqabj86bq8whn" path="res://save_load/ui/save_files_list.gd" id="1_t4pkj"] -[ext_resource type="PackedScene" uid="uid://bb7poutsn4ex2" path="res://save_load/ui/save_file.tscn" id="1_tqtxm"] +[ext_resource type="PackedScene" uid="uid://cyxieflejsggu" path="res://save_load/ui/save_files_list.tscn" id="1_tqtxm"] [node name="SaveLoadUI" type="Control"] layout_mode = 3 @@ -42,9 +41,5 @@ theme_override_font_sizes/font_size = 40 text = "Load Save" horizontal_alignment = 1 -[node name="SaveFilesList" type="VBoxContainer" parent="Panel/MarginContainer/VBoxContainer"] -clip_contents = true +[node name="SaveFilesList" parent="Panel/MarginContainer/VBoxContainer" instance=ExtResource("1_tqtxm")] layout_mode = 2 -size_flags_horizontal = 4 -script = ExtResource("1_t4pkj") -save_file_scene = ExtResource("1_tqtxm") diff --git a/scenes/ui/menus/pause_menu.gd b/scenes/ui/menus/pause_menu.gd index 5060614..c95c6cc 100644 --- a/scenes/ui/menus/pause_menu.gd +++ b/scenes/ui/menus/pause_menu.gd @@ -23,13 +23,13 @@ func _on_exit_game_button_pressed() -> void: func _on_resume_button_pressed() -> void: hide_menu() -func _on_quick_load_pressed() -> void: - SaveGameManager.quick_load.emit() - hide_menu() - -func _on_quick_save_pressed() -> void: - SaveGameManager.quick_save.emit() - hide_menu() - func _on_settings_button_pressed() -> void: SignalManager.open_settings_menu.emit() + + +func _on_load_game_pressed() -> void: + SaveGameManager.open_save_list_ui.emit() + +func _on_save_game_pressed() -> void: + # TODO + SaveGameManager.open_save_list_ui.emit() diff --git a/scenes/ui/menus/pause_menu.tscn b/scenes/ui/menus/pause_menu.tscn index 4e357f3..949adb3 100644 --- a/scenes/ui/menus/pause_menu.tscn +++ b/scenes/ui/menus/pause_menu.tscn @@ -36,45 +36,45 @@ theme_override_constants/margin_top = 10 theme_override_constants/margin_right = 10 theme_override_constants/margin_bottom = 10 -[node name="CenterContainer" type="VBoxContainer" parent="Background/MarginContainer"] +[node name="MenuContainer" type="VBoxContainer" parent="Background/MarginContainer"] layout_mode = 2 size_flags_horizontal = 4 theme_override_constants/separation = 20 -[node name="Title" type="Label" parent="Background/MarginContainer/CenterContainer"] +[node name="Title" type="Label" parent="Background/MarginContainer/MenuContainer"] layout_mode = 2 theme_override_font_sizes/font_size = 40 text = "Paused" horizontal_alignment = 1 vertical_alignment = 1 -[node name="ButtonsContainer" type="VBoxContainer" parent="Background/MarginContainer/CenterContainer"] +[node name="ButtonsContainer" type="VBoxContainer" parent="Background/MarginContainer/MenuContainer"] layout_mode = 2 size_flags_vertical = 6 theme_override_constants/separation = 20 -[node name="ResumeButton" type="Button" parent="Background/MarginContainer/CenterContainer/ButtonsContainer"] +[node name="ResumeButton" type="Button" parent="Background/MarginContainer/MenuContainer/ButtonsContainer"] layout_mode = 2 text = "Resume" -[node name="QuickSave" type="Button" parent="Background/MarginContainer/CenterContainer/ButtonsContainer"] +[node name="SaveGame" type="Button" parent="Background/MarginContainer/MenuContainer/ButtonsContainer"] layout_mode = 2 -text = "Quick Save" +text = "Save Game" -[node name="QuickLoad" type="Button" parent="Background/MarginContainer/CenterContainer/ButtonsContainer"] +[node name="LoadGame" type="Button" parent="Background/MarginContainer/MenuContainer/ButtonsContainer"] layout_mode = 2 -text = "Quick Load" +text = "Load Game" -[node name="SettingsButton" type="Button" parent="Background/MarginContainer/CenterContainer/ButtonsContainer"] +[node name="SettingsButton" type="Button" parent="Background/MarginContainer/MenuContainer/ButtonsContainer"] layout_mode = 2 text = "Settings" -[node name="ExitGameButton" type="Button" parent="Background/MarginContainer/CenterContainer/ButtonsContainer"] +[node name="ExitGameButton" type="Button" parent="Background/MarginContainer/MenuContainer/ButtonsContainer"] layout_mode = 2 text = "Exit Game" -[connection signal="pressed" from="Background/MarginContainer/CenterContainer/ButtonsContainer/ResumeButton" to="." method="_on_resume_button_pressed"] -[connection signal="pressed" from="Background/MarginContainer/CenterContainer/ButtonsContainer/QuickSave" to="." method="_on_quick_save_pressed"] -[connection signal="pressed" from="Background/MarginContainer/CenterContainer/ButtonsContainer/QuickLoad" to="." method="_on_quick_load_pressed"] -[connection signal="pressed" from="Background/MarginContainer/CenterContainer/ButtonsContainer/SettingsButton" to="." method="_on_settings_button_pressed"] -[connection signal="pressed" from="Background/MarginContainer/CenterContainer/ButtonsContainer/ExitGameButton" to="." method="_on_exit_game_button_pressed"] +[connection signal="pressed" from="Background/MarginContainer/MenuContainer/ButtonsContainer/ResumeButton" to="." method="_on_resume_button_pressed"] +[connection signal="pressed" from="Background/MarginContainer/MenuContainer/ButtonsContainer/SaveGame" to="." method="_on_save_game_pressed"] +[connection signal="pressed" from="Background/MarginContainer/MenuContainer/ButtonsContainer/LoadGame" to="." method="_on_load_game_pressed"] +[connection signal="pressed" from="Background/MarginContainer/MenuContainer/ButtonsContainer/SettingsButton" to="." method="_on_settings_button_pressed"] +[connection signal="pressed" from="Background/MarginContainer/MenuContainer/ButtonsContainer/ExitGameButton" to="." method="_on_exit_game_button_pressed"] diff --git a/scenes/ui/ui.gd b/scenes/ui/ui.gd index 1f201a8..4f330eb 100644 --- a/scenes/ui/ui.gd +++ b/scenes/ui/ui.gd @@ -6,6 +6,7 @@ extends CanvasLayer @onready var inventory: Inventory = $Inventory @onready var quick_slots: MarginContainer = $QuickSlots @onready var pause_menu: PauseMenu = $PauseMenu +@onready var save_load_ui: Control = $SaveLoadUI @onready var settings_menu: SettingsMenu = $SettingsMenu @onready var waila: Waila = $Waila @@ -16,6 +17,8 @@ func _ready() -> void: SignalManager.close_settings_menu.connect(_on_close_settings_menu) SignalManager.open_settings_menu.connect(_on_open_settings_menu) SignalManager.resume_game.connect(_on_resume_game) + SaveGameManager.close_save_list_ui.connect(_on_close_save_list_ui) + SaveGameManager.open_save_list_ui.connect(_on_open_save_list_ui) _on_resume_game() @@ -24,6 +27,7 @@ func hide_menus() -> void: pause_menu.visible = false settings_menu.visible = false inventory.visible = false + save_load_ui.visible = false func hide_ui_elements() -> void: crosshair.visible = false @@ -34,6 +38,9 @@ func hide_ui_elements() -> void: func _on_close_pause_menu() -> void: SignalManager.resume_game.emit() +func _on_close_save_list_ui() -> void: + SignalManager.open_settings_menu.emit() + func _on_close_settings_menu() -> void: SignalManager.resume_game.emit() @@ -46,6 +53,15 @@ func _on_open_pause_menu() -> void: get_tree().paused = true +func _on_open_save_list_ui() -> void: + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + + hide_ui_elements() + hide_menus() + save_load_ui.visible = true + + get_tree().paused = true + func _on_open_settings_menu() -> void: Input.mouse_mode = Input.MOUSE_MODE_VISIBLE diff --git a/scenes/ui/ui.tscn b/scenes/ui/ui.tscn index c69a58d..a6f3d5e 100644 --- a/scenes/ui/ui.tscn +++ b/scenes/ui/ui.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=8 format=3 uid="uid://c7fj7wla8bd70"] +[gd_scene load_steps=9 format=3 uid="uid://c7fj7wla8bd70"] [ext_resource type="Script" uid="uid://bslimr2y4lnvq" path="res://scenes/ui/ui.gd" id="1_aac20"] [ext_resource type="PackedScene" uid="uid://dvogu3djluqsn" path="res://scenes/ui/waila.tscn" id="1_u7n8c"] @@ -7,6 +7,7 @@ [ext_resource type="PackedScene" uid="uid://bopvfwcgnnawg" path="res://scenes/ui/menus/pause_menu.tscn" id="6_7vp6q"] [ext_resource type="Resource" uid="uid://blfp6tiir282o" path="res://resources/inventory/player_inventory_testing.tres" id="6_pfayw"] [ext_resource type="PackedScene" uid="uid://4bdgwwx27m71" path="res://scenes/ui/menus/settings_menu.tscn" id="7_7vp6q"] +[ext_resource type="PackedScene" uid="uid://dauchkhmnyk7n" path="res://save_load/ui/save_load_ui.tscn" id="8_jcn1r"] [node name="UI" type="CanvasLayer"] script = ExtResource("1_aac20") @@ -41,3 +42,6 @@ visible = false [node name="SettingsMenu" parent="." instance=ExtResource("7_7vp6q")] visible = false + +[node name="SaveLoadUI" parent="." instance=ExtResource("8_jcn1r")] +visible = false