Browse Source

Displaying Save/Load UI from Pause Menu

pull/15/head
Ryan Reed 1 month ago
parent
commit
8aab061d36
8 changed files with 60 additions and 34 deletions
  1. +2
    -0
      save_load/autoloads/save_game_manager.gd
  2. +1
    -2
      save_load/ui/save_files_list.gd
  3. +10
    -0
      save_load/ui/save_files_list.tscn
  4. +3
    -8
      save_load/ui/save_load_ui.tscn
  5. +8
    -8
      scenes/ui/menus/pause_menu.gd
  6. +15
    -15
      scenes/ui/menus/pause_menu.tscn
  7. +16
    -0
      scenes/ui/ui.gd
  8. +5
    -1
      scenes/ui/ui.tscn

+ 2
- 0
save_load/autoloads/save_game_manager.gd View File

@ -16,6 +16,8 @@ signal delete_save_file(filename: String)
signal load_save_file(filename: String) signal load_save_file(filename: String)
signal quick_save signal quick_save
signal quick_load signal quick_load
signal open_save_list_ui
signal close_save_list_ui
var _game_data_resource: SaveGameDataResource var _game_data_resource: SaveGameDataResource


+ 1
- 2
save_load/ui/save_files_list.gd View File

@ -12,8 +12,7 @@ func _ready() -> void:
func refresh_saves_list() -> void: func refresh_saves_list() -> void:
_clear_save_files_list() _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: for save_resource: SaveFileDetailsResource in save_files:
var _save_file: SaveFilePanel = save_file_scene.instantiate() var _save_file: SaveFilePanel = save_file_scene.instantiate()


+ 10
- 0
save_load/ui/save_files_list.tscn View File

@ -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")

+ 3
- 8
save_load/ui/save_load_ui.tscn View File

@ -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"] [node name="SaveLoadUI" type="Control"]
layout_mode = 3 layout_mode = 3
@ -42,9 +41,5 @@ theme_override_font_sizes/font_size = 40
text = "Load Save" text = "Load Save"
horizontal_alignment = 1 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 layout_mode = 2
size_flags_horizontal = 4
script = ExtResource("1_t4pkj")
save_file_scene = ExtResource("1_tqtxm")

+ 8
- 8
scenes/ui/menus/pause_menu.gd View File

@ -23,13 +23,13 @@ func _on_exit_game_button_pressed() -> void:
func _on_resume_button_pressed() -> void: func _on_resume_button_pressed() -> void:
hide_menu() 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: func _on_settings_button_pressed() -> void:
SignalManager.open_settings_menu.emit() 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()

+ 15
- 15
scenes/ui/menus/pause_menu.tscn View File

@ -36,45 +36,45 @@ theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10 theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 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 layout_mode = 2
size_flags_horizontal = 4 size_flags_horizontal = 4
theme_override_constants/separation = 20 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 layout_mode = 2
theme_override_font_sizes/font_size = 40 theme_override_font_sizes/font_size = 40
text = "Paused" text = "Paused"
horizontal_alignment = 1 horizontal_alignment = 1
vertical_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 layout_mode = 2
size_flags_vertical = 6 size_flags_vertical = 6
theme_override_constants/separation = 20 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 layout_mode = 2
text = "Resume" 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 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 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 layout_mode = 2
text = "Settings" 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 layout_mode = 2
text = "Exit Game" 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"]

+ 16
- 0
scenes/ui/ui.gd View File

@ -6,6 +6,7 @@ extends CanvasLayer
@onready var inventory: Inventory = $Inventory @onready var inventory: Inventory = $Inventory
@onready var quick_slots: MarginContainer = $QuickSlots @onready var quick_slots: MarginContainer = $QuickSlots
@onready var pause_menu: PauseMenu = $PauseMenu @onready var pause_menu: PauseMenu = $PauseMenu
@onready var save_load_ui: Control = $SaveLoadUI
@onready var settings_menu: SettingsMenu = $SettingsMenu @onready var settings_menu: SettingsMenu = $SettingsMenu
@onready var waila: Waila = $Waila @onready var waila: Waila = $Waila
@ -16,6 +17,8 @@ func _ready() -> void:
SignalManager.close_settings_menu.connect(_on_close_settings_menu) SignalManager.close_settings_menu.connect(_on_close_settings_menu)
SignalManager.open_settings_menu.connect(_on_open_settings_menu) SignalManager.open_settings_menu.connect(_on_open_settings_menu)
SignalManager.resume_game.connect(_on_resume_game) 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() _on_resume_game()
@ -24,6 +27,7 @@ func hide_menus() -> void:
pause_menu.visible = false pause_menu.visible = false
settings_menu.visible = false settings_menu.visible = false
inventory.visible = false inventory.visible = false
save_load_ui.visible = false
func hide_ui_elements() -> void: func hide_ui_elements() -> void:
crosshair.visible = false crosshair.visible = false
@ -34,6 +38,9 @@ func hide_ui_elements() -> void:
func _on_close_pause_menu() -> void: func _on_close_pause_menu() -> void:
SignalManager.resume_game.emit() SignalManager.resume_game.emit()
func _on_close_save_list_ui() -> void:
SignalManager.open_settings_menu.emit()
func _on_close_settings_menu() -> void: func _on_close_settings_menu() -> void:
SignalManager.resume_game.emit() SignalManager.resume_game.emit()
@ -46,6 +53,15 @@ func _on_open_pause_menu() -> void:
get_tree().paused = true 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: func _on_open_settings_menu() -> void:
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE Input.mouse_mode = Input.MOUSE_MODE_VISIBLE


+ 5
- 1
scenes/ui/ui.tscn View File

@ -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="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"] [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="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="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://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"] [node name="UI" type="CanvasLayer"]
script = ExtResource("1_aac20") script = ExtResource("1_aac20")
@ -41,3 +42,6 @@ visible = false
[node name="SettingsMenu" parent="." instance=ExtResource("7_7vp6q")] [node name="SettingsMenu" parent="." instance=ExtResource("7_7vp6q")]
visible = false visible = false
[node name="SaveLoadUI" parent="." instance=ExtResource("8_jcn1r")]
visible = false

Loading…
Cancel
Save