aboutsummaryrefslogtreecommitdiff
path: root/game/src/SaveLoadMenu
diff options
context:
space:
mode:
author Spartan322 <Megacake1234@gmail.com>2023-06-03 20:37:10 +0200
committer Spartan322 <Megacake1234@gmail.com>2023-06-03 20:37:10 +0200
commitcef940108fe15752c3ef66f43f5169403fa2f71d (patch)
treefe4de5a05830e3bddeae78f74f729503b7cee1e9 /game/src/SaveLoadMenu
parent73e29d02e48739aba5ca5db1b9575c67e795400f (diff)
Reorganize the file structure of the files in `game/src`
Diffstat (limited to 'game/src/SaveLoadMenu')
-rw-r--r--game/src/SaveLoadMenu/SaveLoadMenu.gd123
-rw-r--r--game/src/SaveLoadMenu/SaveLoadMenu.tscn109
-rw-r--r--game/src/SaveLoadMenu/SavePanelButton.gd41
-rw-r--r--game/src/SaveLoadMenu/SavePanelButton.tscn58
-rw-r--r--game/src/SaveLoadMenu/SaveResource.gd59
5 files changed, 0 insertions, 390 deletions
diff --git a/game/src/SaveLoadMenu/SaveLoadMenu.gd b/game/src/SaveLoadMenu/SaveLoadMenu.gd
deleted file mode 100644
index bff0bb5..0000000
--- a/game/src/SaveLoadMenu/SaveLoadMenu.gd
+++ /dev/null
@@ -1,123 +0,0 @@
-extends Control
-
-@export var _save_scene : PackedScene
-
-@export_group("Nodes")
-@export var _label : Label
-@export var _scroll_list : BoxContainer
-@export var _save_line_edit : LineEdit
-@export var _save_load_button : Button
-@export var _tag_selection_tab : TabBar
-@export var _delete_dialog : ConfirmationDialog
-@export var _overwrite_dialog : ConfirmationDialog
-
-var is_save_menu : bool = true
-var _id_to_tag : Array[StringName] = []
-
-func filter_for_tag(tag : StringName) -> void:
- for child in _scroll_list.get_children():
- if tag == &"":
- child.show()
- else:
- if tag == child.resource.session_tag:
- child.show()
- else:
- child.hide()
-
-# Requirements
-# * UIFUN-78
-func show_for_load() -> void:
- _label.text = "SAVELOADMENU_LOAD_TITLE"
- _save_load_button.text = "SAVELOADMENU_LOAD_BUTTON"
- _save_line_edit.editable = false
- is_save_menu = false
- show()
-
-# Requirements
-# * UIFUN-77
-func show_for_save() -> void:
- _label.text = "SAVELOADMENU_SAVE_TITLE"
- _save_load_button.text = "SAVELOADMENU_SAVE_BUTTON"
- _save_line_edit.editable = true
- is_save_menu = true
- show()
-
-func _build_save_list() -> void:
- _tag_selection_tab.add_tab("SAVELOADMENU_TABSELECTIONTABBAR_ALL")
- for save_name in SaveManager._save_dictionary:
- var save : SaveResource = SaveManager._save_dictionary[save_name]
- var save_node := _create_save_node(save)
- _scroll_list.add_child(save_node)
- if not _id_to_tag.has(save.session_tag):
- _id_to_tag.append(save.session_tag)
- _tag_selection_tab.add_tab(save.session_tag)
-
-func _create_save_node(resource : SaveResource) -> Control:
- var save_node = _save_scene.instantiate()
- save_node.resource = resource
- save_node.pressed.connect(_on_save_node_pressed.bind(save_node))
- save_node.request_to_delete.connect(_on_save_node_delete_requested.bind(save_node))
- return save_node
-
-func _queue_clear_scroll_list() -> void:
- for child in _scroll_list.get_children():
- child.queue_free()
- _tag_selection_tab.clear_tabs()
- _id_to_tag.clear()
-
-# REQUIREMENTS:
-# * UIFUN-84
-# * UIFUN-89
-func _on_close_button_pressed() -> void:
- hide()
-
-func _on_delete_dialog_confirmed() -> void:
- _requested_node_to_delete.resource.delete()
- _requested_node_to_delete.queue_free()
-
-# REQUIREMENTS:
-# * UIFUN-83
-func _on_overwrite_dialog_confirmed() -> void:
- SaveManager.add_or_replace_save(SaveManager.make_new_save(_submitted_text))
- _on_close_button_pressed()
-
-var _submitted_text : String = ""
-func _on_save_line_edit_text_submitted(new_text) -> void:
- _submitted_text = new_text
- if SaveManager.has_save(new_text):
- _overwrite_dialog.dialog_text = tr("SAVELOADMENU_OVERWRITE_DIALOG_TEXT").format({ "file_name": _submitted_text })
- _overwrite_dialog.title = tr("SAVELOADMENU_OVERWRITE_DIALOG_TITLE").format({ "file_name": _submitted_text })
- _overwrite_dialog.popup_centered()
- return
- _on_overwrite_dialog_confirmed()
-
-func _on_save_load_button_pressed() -> void:
- if is_save_menu:
- _save_line_edit.text_submitted.emit(_save_line_edit.text)
-
-var _requested_node_to_delete : Control
-func _on_save_node_delete_requested(node : Control) -> void:
- _requested_node_to_delete = node
- _delete_dialog.dialog_text = tr("SAVELOADMENU_DELETE_DIALOG_TEXT").format({ "file_name": _requested_node_to_delete.resource.save_name })
- _delete_dialog.title = tr("SAVELOADMENU_DELETE_DIALOG_TITLE").format({ "file_name": _requested_node_to_delete.resource.save_name })
- _delete_dialog.popup_centered()
-
-# REQUIREMENTS:
-# * UIFUN-81
-# * UIFUN-86
-func _on_save_node_pressed(node : Control) -> void:
- if is_save_menu:
- _save_line_edit.text = node.resource.save_name
-
-func _on_tag_selection_tab_bar_tab_changed(tab) -> void:
- if tab == 0:
- filter_for_tag(&"")
- else:
- filter_for_tag(_id_to_tag[tab - 1])
-
-func _on_visibility_changed() -> void:
- if visible:
- _build_save_list()
- else:
- _queue_clear_scroll_list()
- SaveManager.flush_save()
diff --git a/game/src/SaveLoadMenu/SaveLoadMenu.tscn b/game/src/SaveLoadMenu/SaveLoadMenu.tscn
deleted file mode 100644
index e9f068e..0000000
--- a/game/src/SaveLoadMenu/SaveLoadMenu.tscn
+++ /dev/null
@@ -1,109 +0,0 @@
-[gd_scene load_steps=5 format=3 uid="uid://d3g6wbvwflmyk"]
-
-[ext_resource type="Script" path="res://src/SaveLoadMenu/SaveLoadMenu.gd" id="1_3jkds"]
-[ext_resource type="PackedScene" uid="uid://d2s7roinx2or7" path="res://src/SaveLoadMenu/SavePanelButton.tscn" id="2_fc6r3"]
-
-[sub_resource type="InputEventAction" id="InputEventAction_8vo2t"]
-action = &"ui_accept"
-pressed = true
-
-[sub_resource type="Shortcut" id="Shortcut_o1f2l"]
-events = [SubResource("InputEventAction_8vo2t")]
-
-[node name="SaveLoadMenu" type="MarginContainer" node_paths=PackedStringArray("_label", "_scroll_list", "_save_line_edit", "_save_load_button", "_tag_selection_tab", "_delete_dialog", "_overwrite_dialog")]
-editor_description = "UI-82, UI-89"
-anchors_preset = 15
-anchor_right = 1.0
-anchor_bottom = 1.0
-grow_horizontal = 2
-grow_vertical = 2
-theme_override_constants/margin_left = 250
-theme_override_constants/margin_top = 100
-theme_override_constants/margin_right = 250
-theme_override_constants/margin_bottom = 100
-script = ExtResource("1_3jkds")
-_save_scene = ExtResource("2_fc6r3")
-_label = NodePath("SaveLoadPanel/SaveLoadList/TitleBarList/SaveLoadLabel")
-_scroll_list = NodePath("SaveLoadPanel/SaveLoadList/SaveLoadScroll/SaveLoadScrollList")
-_save_line_edit = NodePath("SaveLoadPanel/SaveLoadList/SaveLineEdit")
-_save_load_button = NodePath("SaveLoadPanel/SaveLoadList/SaveLoadButton")
-_tag_selection_tab = NodePath("SaveLoadPanel/SaveLoadList/TagSelectionList/TagSelectionTabBar")
-_delete_dialog = NodePath("DeleteDialog")
-_overwrite_dialog = NodePath("OverwriteDialog")
-
-[node name="SaveLoadPanel" type="PanelContainer" parent="."]
-layout_mode = 2
-
-[node name="SaveLoadList" type="VBoxContainer" parent="SaveLoadPanel"]
-layout_mode = 2
-
-[node name="TitleBarList" type="HBoxContainer" parent="SaveLoadPanel/SaveLoadList"]
-layout_mode = 2
-alignment = 2
-
-[node name="SaveLoadLabel" type="Label" parent="SaveLoadPanel/SaveLoadList/TitleBarList"]
-layout_mode = 2
-size_flags_horizontal = 6
-text = "SAVELOADMENU_SAVE_TITLE"
-
-[node name="CloseButton" type="Button" parent="SaveLoadPanel/SaveLoadList/TitleBarList"]
-editor_description = "UI-87, UI-94"
-layout_mode = 2
-text = "X"
-
-[node name="TagSelectionList" type="HBoxContainer" parent="SaveLoadPanel/SaveLoadList"]
-layout_mode = 2
-
-[node name="TagSelectionLabel" type="Label" parent="SaveLoadPanel/SaveLoadList/TagSelectionList"]
-layout_mode = 2
-text = "SAVELOADMENU_SESSION"
-
-[node name="TagSelectionTabBar" type="TabBar" parent="SaveLoadPanel/SaveLoadList/TagSelectionList"]
-layout_mode = 2
-size_flags_horizontal = 3
-tab_count = 1
-tab_0/title = "SAVELOADMENU_TABSELECTIONTABBAR_ALL"
-
-[node name="SaveLoadScroll" type="ScrollContainer" parent="SaveLoadPanel/SaveLoadList"]
-editor_description = "UI-83, UI-90"
-layout_mode = 2
-size_flags_vertical = 3
-
-[node name="SaveLoadScrollList" type="VBoxContainer" parent="SaveLoadPanel/SaveLoadList/SaveLoadScroll"]
-layout_mode = 2
-size_flags_horizontal = 3
-size_flags_vertical = 3
-
-[node name="SaveLineEdit" type="LineEdit" parent="SaveLoadPanel/SaveLoadList"]
-editor_description = "UI-85, UI-92"
-layout_mode = 2
-
-[node name="SaveLoadButton" type="Button" parent="SaveLoadPanel/SaveLoadList"]
-editor_description = "UIFUN-82, UIFUN-87"
-layout_mode = 2
-size_flags_horizontal = 4
-shortcut = SubResource("Shortcut_o1f2l")
-shortcut_feedback = false
-text = "SAVELOADMENU_SAVE_BUTTON"
-
-[node name="DeleteDialog" type="ConfirmationDialog" parent="."]
-disable_3d = true
-title = "SAVELOADMENU_DELETE_DIALOG_TITLE"
-ok_button_text = "DIALOG_OK"
-dialog_text = "SAVELOADMENU_DELETE_DIALOG_TEXT"
-cancel_button_text = "DIALOG_CANCEL"
-
-[node name="OverwriteDialog" type="ConfirmationDialog" parent="."]
-disable_3d = true
-title = "SAVELOADMENU_OVERWRITE_DIALOG_TITLE"
-ok_button_text = "DIALOG_OK"
-dialog_text = "SAVELOADMENU_OVERWRITE_DIALOG_TEXT"
-cancel_button_text = "DIALOG_CANCEL"
-
-[connection signal="visibility_changed" from="." to="." method="_on_visibility_changed"]
-[connection signal="pressed" from="SaveLoadPanel/SaveLoadList/TitleBarList/CloseButton" to="." method="_on_close_button_pressed"]
-[connection signal="tab_changed" from="SaveLoadPanel/SaveLoadList/TagSelectionList/TagSelectionTabBar" to="." method="_on_tag_selection_tab_bar_tab_changed"]
-[connection signal="text_submitted" from="SaveLoadPanel/SaveLoadList/SaveLineEdit" to="." method="_on_save_line_edit_text_submitted"]
-[connection signal="pressed" from="SaveLoadPanel/SaveLoadList/SaveLoadButton" to="." method="_on_save_load_button_pressed"]
-[connection signal="confirmed" from="DeleteDialog" to="." method="_on_delete_dialog_confirmed"]
-[connection signal="confirmed" from="OverwriteDialog" to="." method="_on_overwrite_dialog_confirmed"]
diff --git a/game/src/SaveLoadMenu/SavePanelButton.gd b/game/src/SaveLoadMenu/SavePanelButton.gd
deleted file mode 100644
index 5fe4917..0000000
--- a/game/src/SaveLoadMenu/SavePanelButton.gd
+++ /dev/null
@@ -1,41 +0,0 @@
-@tool
-extends LobbyPanelButton
-
-signal request_to_delete
-
-@export_group("Nodes")
-@export var country_flag : TextureRect
-@export var date_label : Label
-@export var delete_button : BaseButton
-
-var resource : SaveResource:
- get:
- return resource
- set(value):
- if resource != null:
- resource.changed.disconnect(_resource_changed)
- resource = value
- if resource != null:
- resource.changed.connect(_resource_changed)
- _resource_changed()
-
-func get_text() -> StringName:
- return resource.save_name
-
-func set_text(value : StringName) -> void:
- if resource != null:
- resource.save_name = value
-
-func _ready():
- _resource_changed()
-
-func _is_start_date() -> bool:
- return false
-
-func _resource_changed() -> void:
- if resource == null: return
- name_label.text = resource.save_name
- date_label.text = Time.get_datetime_string_from_unix_time(resource.get_save_file_time(), true)
-
-func _on_delete_button_pressed() -> void:
- request_to_delete.emit()
diff --git a/game/src/SaveLoadMenu/SavePanelButton.tscn b/game/src/SaveLoadMenu/SavePanelButton.tscn
deleted file mode 100644
index d2d0a41..0000000
--- a/game/src/SaveLoadMenu/SavePanelButton.tscn
+++ /dev/null
@@ -1,58 +0,0 @@
-[gd_scene load_steps=2 format=3 uid="uid://d2s7roinx2or7"]
-
-[ext_resource type="Script" path="res://src/SaveLoadMenu/SavePanelButton.gd" id="1_rtuo6"]
-
-[node name="SavePanelButton" type="Container" node_paths=PackedStringArray("country_flag", "date_label", "delete_button", "background_button", "name_label")]
-editor_description = "SS-18, UI-40, UI-84, UI-86, UI-91, UI-93"
-offset_right = 276.0
-offset_bottom = 48.0
-script = ExtResource("1_rtuo6")
-country_flag = NodePath("SaveList/CountryFlag")
-date_label = NodePath("SaveList/DateLabel")
-delete_button = NodePath("SaveList/DeleteButton")
-background_button = NodePath("BackgroundButton")
-name_label = NodePath("SaveList/NameLabel")
-
-[node name="BackgroundButton" type="Button" parent="."]
-layout_mode = 2
-theme_type_variation = &"ButtonContainer"
-
-[node name="SaveList" type="HBoxContainer" parent="."]
-layout_mode = 2
-mouse_filter = 2
-
-[node name="CountryFlag" type="TextureRect" parent="SaveList"]
-layout_mode = 2
-size_flags_horizontal = 0
-size_flags_vertical = 4
-mouse_filter = 2
-
-[node name="NameLabel" type="Label" parent="SaveList"]
-layout_mode = 2
-size_flags_horizontal = 0
-size_flags_vertical = 1
-text = "PLACEHOLDER"
-vertical_alignment = 1
-
-[node name="DateLabel" type="Label" parent="SaveList"]
-layout_mode = 2
-size_flags_horizontal = 0
-size_flags_vertical = 1
-text = "00.00.0000"
-vertical_alignment = 1
-
-[node name="Separator" type="Control" parent="SaveList"]
-layout_mode = 2
-size_flags_horizontal = 3
-mouse_filter = 2
-
-[node name="DeleteButton" type="Button" parent="SaveList"]
-layout_mode = 2
-size_flags_horizontal = 8
-text = "x"
-
-[connection signal="button_down" from="BackgroundButton" to="." method="_on_background_button_button_down"]
-[connection signal="button_up" from="BackgroundButton" to="." method="_on_background_button_button_up"]
-[connection signal="pressed" from="BackgroundButton" to="." method="_on_background_button_pressed"]
-[connection signal="toggled" from="BackgroundButton" to="." method="_on_background_button_toggled"]
-[connection signal="pressed" from="SaveList/DeleteButton" to="." method="_on_delete_button_pressed"]
diff --git a/game/src/SaveLoadMenu/SaveResource.gd b/game/src/SaveLoadMenu/SaveResource.gd
deleted file mode 100644
index 5e7faa6..0000000
--- a/game/src/SaveLoadMenu/SaveResource.gd
+++ /dev/null
@@ -1,59 +0,0 @@
-extends Resource
-class_name SaveResource
-
-signal file_flushed(path : String)
-signal file_loaded
-signal file_moved_to_trash
-signal file_deleted
-signal trash_moved
-signal deleted
-
-var save_name : StringName:
- get: return save_name
- set(v):
- save_name = v
- file.set_value("Save", "name", save_name)
- emit_changed()
-var session_tag : StringName:
- get: return session_tag
- set(v):
- session_tag = v
- file.set_value("Save", "session_tag", v)
- emit_changed()
-var file_path : String:
- get: return file_path
- set(v):
- file_path = v
- emit_changed()
-var file : ConfigFile = ConfigFile.new()
-
-func set_file_path(name : StringName, path : String):
- file_path = path
- save_name = name
-
-func flush_save() -> Error:
- file_flushed.emit(file_path)
- var result := file.save(file_path)
- file.clear()
- return result
-
-func load_save(path : String = file_path) -> Error:
- file_loaded.emit()
- var result := file.load(path)
- session_tag = file.get_value("Save", "session_tag", session_tag)
- if path != file_path:
- set_file_path(file.get_value("Save", "name", save_name), path)
- return result
-
-func get_save_file_time() -> int:
- return FileAccess.get_modified_time(file_path)
-
-func move_to_trash() -> Error:
- trash_moved.emit()
- file_moved_to_trash.emit()
- return OS.move_to_trash(file_path)
-
-func delete() -> Error:
- deleted.emit()
- file_deleted.emit()
- return DirAccess.remove_absolute(file_path)