Browse Source

Moving Save/Load system to a plugin/addon

pull/17/head
Ryan Reed 1 month ago
parent
commit
b61dbb5069
40 changed files with 44 additions and 88 deletions
  1. +0
    -0
      addons/save_load_system/autoloads/save_game_manager.gd
  2. +0
    -0
      addons/save_load_system/autoloads/save_game_manager.gd.uid
  3. +0
    -0
      addons/save_load_system/components/save_data_component.gd
  4. +0
    -0
      addons/save_load_system/components/save_data_component.gd.uid
  5. +1
    -1
      addons/save_load_system/components/save_data_component.tscn
  6. +0
    -0
      addons/save_load_system/components/save_level_data_component.gd
  7. +0
    -0
      addons/save_load_system/components/save_level_data_component.gd.uid
  8. +3
    -3
      addons/save_load_system/components/save_level_data_component.tscn
  9. +0
    -0
      addons/save_load_system/default_icon.svg
  10. +3
    -3
      addons/save_load_system/default_icon.svg.import
  11. +7
    -0
      addons/save_load_system/plugin.cfg
  12. +12
    -0
      addons/save_load_system/plugin.gd
  13. +1
    -0
      addons/save_load_system/plugin.gd.uid
  14. +0
    -0
      addons/save_load_system/resources/node_types/node3d_data_resource.gd
  15. +0
    -0
      addons/save_load_system/resources/node_types/node3d_data_resource.gd.uid
  16. +1
    -1
      addons/save_load_system/resources/node_types/node3d_data_resource.tres
  17. +0
    -0
      addons/save_load_system/resources/save_file_details_resource.gd
  18. +0
    -0
      addons/save_load_system/resources/save_file_details_resource.gd.uid
  19. +0
    -0
      addons/save_load_system/resources/save_game_data_resource.gd
  20. +0
    -0
      addons/save_load_system/resources/save_game_data_resource.gd.uid
  21. +2
    -2
      addons/save_load_system/resources/save_game_data_resource.tres
  22. +0
    -0
      addons/save_load_system/resources/save_game_settings_resource.gd
  23. +0
    -0
      addons/save_load_system/resources/save_game_settings_resource.gd.uid
  24. +1
    -1
      addons/save_load_system/resources/save_game_settings_resource.tres
  25. +0
    -0
      addons/save_load_system/resources/scene_data_resource.gd
  26. +0
    -0
      addons/save_load_system/resources/scene_data_resource.gd.uid
  27. +1
    -1
      addons/save_load_system/resources/scene_data_resource.tres
  28. +5
    -1
      project.godot
  29. +0
    -16
      save_load/resources/node_types/block_data_resource.gd
  30. +0
    -1
      save_load/resources/node_types/block_data_resource.gd.uid
  31. +0
    -12
      save_load/resources/node_types/block_data_resource.tres
  32. +0
    -16
      save_load/resources/node_types/player_data_resource.gd
  33. +0
    -1
      save_load/resources/node_types/player_data_resource.gd.uid
  34. +0
    -10
      save_load/resources/node_types/player_data_resource.tres
  35. +0
    -4
      save_load/resources/save_file_highlight_panel_theme.tres
  36. +0
    -8
      save_load/resources/save_file_panel_theme.tres
  37. +2
    -2
      scenes/blocks/block.tscn
  38. +2
    -2
      scenes/player/player.tscn
  39. +2
    -2
      scenes/ui/menus/saves_manager/save_file.tscn
  40. +1
    -1
      scenes/world/world.tscn

save_load/autoloads/save_game_manager.gd → addons/save_load_system/autoloads/save_game_manager.gd View File


save_load/autoloads/save_game_manager.gd.uid → addons/save_load_system/autoloads/save_game_manager.gd.uid View File


save_load/components/save_data_component.gd → addons/save_load_system/components/save_data_component.gd View File


save_load/components/save_data_component.gd.uid → addons/save_load_system/components/save_data_component.gd.uid View File


save_load/components/save_data_component.tscn → addons/save_load_system/components/save_data_component.tscn View File

@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://baki8rbf1ti0r"]
[ext_resource type="Script" uid="uid://b0400fjcqflgh" path="res://save_load/components/save_data_component.gd" id="1_nm1vf"]
[ext_resource type="Script" uid="uid://b0400fjcqflgh" path="res://addons/save_load_system/components/save_data_component.gd" id="1_nm1vf"]
[node name="SaveDataComponent" type="Node"]
script = ExtResource("1_nm1vf")

save_load/components/save_level_data_component.gd → addons/save_load_system/components/save_level_data_component.gd View File


save_load/components/save_level_data_component.gd.uid → addons/save_load_system/components/save_level_data_component.gd.uid View File


save_load/components/save_level_data_component.tscn → addons/save_load_system/components/save_level_data_component.tscn View File

@ -1,8 +1,8 @@
[gd_scene load_steps=4 format=3 uid="uid://c3pqilb6yh5kc"]
[ext_resource type="Script" uid="uid://c7x2qvyu62230" path="res://save_load/components/save_level_data_component.gd" id="1_exguq"]
[ext_resource type="Texture2D" uid="uid://b4lam0dwtv8fq" path="res://save_load/default_icon.svg" id="2_hd7aa"]
[ext_resource type="Resource" uid="uid://o32fooj1lxg7" path="res://save_load/resources/save_game_settings_resource.tres" id="2_rkr1f"]
[ext_resource type="Script" uid="uid://c7x2qvyu62230" path="res://addons/save_load_system/components/save_level_data_component.gd" id="1_exguq"]
[ext_resource type="Texture2D" uid="uid://b4lam0dwtv8fq" path="res://addons/save_load_system/default_icon.svg" id="2_hd7aa"]
[ext_resource type="Resource" uid="uid://o32fooj1lxg7" path="res://addons/save_load_system/resources/save_game_settings_resource.tres" id="2_rkr1f"]
[node name="SaveLevelDataComponent" type="Node"]
script = ExtResource("1_exguq")

save_load/default_icon.svg → addons/save_load_system/default_icon.svg View File


save_load/default_icon.svg.import → addons/save_load_system/default_icon.svg.import View File

@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://b4lam0dwtv8fq"
path="res://.godot/imported/default_icon.svg-03c9d03bc57a0daada1198408be965b9.ctex"
path="res://.godot/imported/default_icon.svg-8f0c0a4577d41c2e54da72bcdea5ad34.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://save_load/default_icon.svg"
dest_files=["res://.godot/imported/default_icon.svg-03c9d03bc57a0daada1198408be965b9.ctex"]
source_file="res://addons/save_load_system/default_icon.svg"
dest_files=["res://.godot/imported/default_icon.svg-8f0c0a4577d41c2e54da72bcdea5ad34.ctex"]
[params]

+ 7
- 0
addons/save_load_system/plugin.cfg View File

@ -0,0 +1,7 @@
[plugin]
name="Save Load System"
description="An overengineered Save/Load system"
author="Ryan Reed"
version="1.0"
script="plugin.gd"

+ 12
- 0
addons/save_load_system/plugin.gd View File

@ -0,0 +1,12 @@
@tool
extends EditorPlugin
func _enter_tree() -> void:
add_autoload_singleton("SaveGameManager", "res://addons/save_load_system/autoloads/save_game_manager.gd")
func _exit_tree() -> void:
# Clean-up of the plugin goes here.
pass

+ 1
- 0
addons/save_load_system/plugin.gd.uid View File

@ -0,0 +1 @@
uid://bj77sfap4rqke

save_load/resources/node_types/node3d_data_resource.gd → addons/save_load_system/resources/node_types/node3d_data_resource.gd View File


save_load/resources/node_types/node3d_data_resource.gd.uid → addons/save_load_system/resources/node_types/node3d_data_resource.gd.uid View File


save_load/resources/node_types/node3d_data_resource.tres → addons/save_load_system/resources/node_types/node3d_data_resource.tres View File

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="NodeDataResource" load_steps=2 format=3 uid="uid://dald1lud7ktsj"]
[ext_resource type="Script" uid="uid://drj0sfem1gmsk" path="res://save_load/resources/node_types/node3d_data_resource.gd" id="1_b70a7"]
[ext_resource type="Script" uid="uid://drj0sfem1gmsk" path="res://addons/save_load_system/resources/node_types/node3d_data_resource.gd" id="1_b70a7"]
[resource]
script = ExtResource("1_b70a7")

save_load/resources/save_file_details_resource.gd → addons/save_load_system/resources/save_file_details_resource.gd View File


save_load/resources/save_file_details_resource.gd.uid → addons/save_load_system/resources/save_file_details_resource.gd.uid View File


save_load/resources/save_game_data_resource.gd → addons/save_load_system/resources/save_game_data_resource.gd View File


save_load/resources/save_game_data_resource.gd.uid → addons/save_load_system/resources/save_game_data_resource.gd.uid View File


save_load/resources/save_game_data_resource.tres → addons/save_load_system/resources/save_game_data_resource.tres View File

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="SaveGameDataResource" load_steps=3 format=3 uid="uid://dkniygoky2jcx"]
[ext_resource type="Script" uid="uid://drj0sfem1gmsk" path="res://save_load/resources/node_types/node3d_data_resource.gd" id="1_7yx7n"]
[ext_resource type="Script" uid="uid://di6ov7tpewhft" path="res://save_load/resources/save_game_data_resource.gd" id="1_sbw5t"]
[ext_resource type="Script" uid="uid://drj0sfem1gmsk" path="res://addons/save_load_system/resources/node_types/node3d_data_resource.gd" id="1_7yx7n"]
[ext_resource type="Script" uid="uid://di6ov7tpewhft" path="res://addons/save_load_system/resources/save_game_data_resource.gd" id="1_sbw5t"]
[resource]
script = ExtResource("1_sbw5t")

save_load/resources/save_game_settings_resource.gd → addons/save_load_system/resources/save_game_settings_resource.gd View File


save_load/resources/save_game_settings_resource.gd.uid → addons/save_load_system/resources/save_game_settings_resource.gd.uid View File


save_load/resources/save_game_settings_resource.tres → addons/save_load_system/resources/save_game_settings_resource.tres View File

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="SaveGameSettings" load_steps=2 format=3 uid="uid://o32fooj1lxg7"]
[ext_resource type="Script" uid="uid://d0iptf06t7f47" path="res://save_load/resources/save_game_settings_resource.gd" id="1_o1tpj"]
[ext_resource type="Script" uid="uid://d0iptf06t7f47" path="res://addons/save_load_system/resources/save_game_settings_resource.gd" id="1_o1tpj"]
[resource]
script = ExtResource("1_o1tpj")

save_load/resources/scene_data_resource.gd → addons/save_load_system/resources/scene_data_resource.gd View File


save_load/resources/scene_data_resource.gd.uid → addons/save_load_system/resources/scene_data_resource.gd.uid View File


save_load/resources/scene_data_resource.tres → addons/save_load_system/resources/scene_data_resource.tres View File

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="SceneDataResource" load_steps=2 format=3 uid="uid://duqhhi2nlic6n"]
[ext_resource type="Script" uid="uid://bxr74kmjt6heh" path="res://save_load/resources/scene_data_resource.gd" id="1_ihw72"]
[ext_resource type="Script" uid="uid://bxr74kmjt6heh" path="res://addons/save_load_system/resources/scene_data_resource.gd" id="1_ihw72"]
[resource]
script = ExtResource("1_ihw72")

+ 5
- 1
project.godot View File

@ -22,9 +22,9 @@ Globals="*res://autoloads/globals.gd"
EntityManager="*res://autoloads/entity_manager.gd"
InventoryManager="*res://autoloads/inventory_manager.gd"
DBItems="*res://autoloads/db_items.gd"
SaveGameManager="*res://save_load/autoloads/save_game_manager.gd"
SignalManager="*res://autoloads/signal_manager.gd"
GameSettingsManager="*res://autoloads/game_settings_manager.gd"
SaveGameManager="*res://addons/save_load_system/autoloads/save_game_manager.gd"
[debug]
@ -38,6 +38,10 @@ gdscript/warnings/unsafe_method_access=1
window/size/viewport_width=1280
window/size/viewport_height=720
[editor_plugins]
enabled=PackedStringArray("res://addons/save_load_system/plugin.cfg")
[file_customization]
folder_colors={


+ 0
- 16
save_load/resources/node_types/block_data_resource.gd View File

@ -1,16 +0,0 @@
## The resource utilized for saving a Block
class_name BlockDataResource
extends Node3DDataResource
@export var block_id: String = "001"
func _save_data(node: Node3D) -> void:
super._save_data(node)
block_id = node.id
func _load_data(_window: Window) -> void:
EntityManager.create_block.emit(block_id, transform.origin)

+ 0
- 1
save_load/resources/node_types/block_data_resource.gd.uid View File

@ -1 +0,0 @@
uid://syaia0l6vjt1

+ 0
- 12
save_load/resources/node_types/block_data_resource.tres View File

@ -1,12 +0,0 @@
[gd_resource type="Resource" script_class="BlockDataResource" load_steps=2 format=3 uid="uid://dfos8np8agysk"]
[ext_resource type="Script" uid="uid://syaia0l6vjt1" path="res://save_load/resources/node_types/block_data_resource.gd" id="1_a06et"]
[resource]
script = ExtResource("1_a06et")
block_id = "001"
block_position = Vector3(0, 0, 0)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
node_path = NodePath("")
parent_node_path = NodePath("")
metadata/_custom_type_script = "uid://syaia0l6vjt1"

+ 0
- 16
save_load/resources/node_types/player_data_resource.gd View File

@ -1,16 +0,0 @@
## The resource utilized for saving a Player
class_name PlayerDataResource
extends Node3DDataResource
func _save_data(node: Node3D) -> void:
super._save_data(node)
# TODO: Save inventory or any other data
func _load_data(window: Window) -> void:
var scene_node: Node = window.get_node_or_null(node_path)
if scene_node == null: return
EntityManager.spawn_player.emit(transform)

+ 0
- 1
save_load/resources/node_types/player_data_resource.gd.uid View File

@ -1 +0,0 @@
uid://dodqpooodtguo

+ 0
- 10
save_load/resources/node_types/player_data_resource.tres View File

@ -1,10 +0,0 @@
[gd_resource type="Resource" script_class="PlayerDataResource" load_steps=2 format=3 uid="uid://bvsurbn5xgchr"]
[ext_resource type="Script" uid="uid://dodqpooodtguo" path="res://save_load/resources/node_types/player_data_resource.gd" id="1_scty6"]
[resource]
script = ExtResource("1_scty6")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
node_path = NodePath("")
parent_node_path = NodePath("")
metadata/_custom_type_script = "uid://dodqpooodtguo"

+ 0
- 4
save_load/resources/save_file_highlight_panel_theme.tres View File

@ -1,4 +0,0 @@
[gd_resource type="StyleBoxFlat" format=3 uid="uid://bwm315lqbbb87"]
[resource]
bg_color = Color(0.728173, 0.579132, 0.164487, 1)

+ 0
- 8
save_load/resources/save_file_panel_theme.tres View File

@ -1,8 +0,0 @@
[gd_resource type="StyleBoxFlat" format=3 uid="uid://biousyggn7iua"]
[resource]
content_margin_left = 5.0
content_margin_top = 5.0
content_margin_right = 5.0
content_margin_bottom = 5.0
bg_color = Color(0, 0.65098, 0.886275, 0)

+ 2
- 2
scenes/blocks/block.tscn View File

@ -3,8 +3,8 @@
[ext_resource type="Script" uid="uid://buvqmrrtmxs2h" path="res://scenes/blocks/block.gd" id="1_7fut1"]
[ext_resource type="Material" uid="uid://bgc6efqf8aiqo" path="res://assets/materials/block_highlight.tres" id="2_524ei"]
[ext_resource type="PackedScene" uid="uid://c8dch55d3txns" path="res://scenes/blocks/block_mesh.tscn" id="3_60een"]
[ext_resource type="PackedScene" uid="uid://baki8rbf1ti0r" path="res://save_load/components/save_data_component.tscn" id="4_60een"]
[ext_resource type="Resource" uid="uid://dfos8np8agysk" path="res://save_load/resources/node_types/block_data_resource.tres" id="5_60een"]
[ext_resource type="PackedScene" uid="uid://baki8rbf1ti0r" path="res://addons/save_load_system/components/save_data_component.tscn" id="4_60een"]
[ext_resource type="Resource" uid="uid://dfos8np8agysk" path="res://resources/save_load_node_types/block_data_resource.tres" id="5_60een"]
[sub_resource type="BoxShape3D" id="BoxShape3D_n5naa"]


+ 2
- 2
scenes/player/player.tscn View File

@ -3,8 +3,8 @@
[ext_resource type="Script" uid="uid://daly0bs0oat3j" path="res://scenes/player/player.gd" id="1_7sql3"]
[ext_resource type="Script" uid="uid://bruuttf8j7wet" path="res://scenes/player/ray_cast_look.gd" id="2_dovo2"]
[ext_resource type="PackedScene" uid="uid://c8dch55d3txns" path="res://scenes/blocks/block_mesh.tscn" id="2_p47bc"]
[ext_resource type="PackedScene" uid="uid://baki8rbf1ti0r" path="res://save_load/components/save_data_component.tscn" id="3_lvxji"]
[ext_resource type="Resource" uid="uid://bvsurbn5xgchr" path="res://save_load/resources/node_types/player_data_resource.tres" id="4_p47bc"]
[ext_resource type="PackedScene" uid="uid://baki8rbf1ti0r" path="res://addons/save_load_system/components/save_data_component.tscn" id="3_lvxji"]
[ext_resource type="Resource" uid="uid://bvsurbn5xgchr" path="res://resources/save_load_node_types/player_data_resource.tres" id="4_p47bc"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_tv3cd"]
radius = 0.47


+ 2
- 2
scenes/ui/menus/saves_manager/save_file.tscn View File

@ -1,10 +1,10 @@
[gd_scene load_steps=11 format=3 uid="uid://bb7poutsn4ex2"]
[ext_resource type="StyleBox" uid="uid://biousyggn7iua" path="res://save_load/resources/save_file_panel_theme.tres" id="1_cqw77"]
[ext_resource type="StyleBox" uid="uid://biousyggn7iua" path="res://resources/save_file_panel_theme.tres" id="1_cqw77"]
[ext_resource type="Texture2D" uid="uid://cmq51cgasug81" path="res://assets/ui/folder-open-normal.png" id="1_k6haa"]
[ext_resource type="Script" uid="uid://dcfdyua5gwpw4" path="res://scenes/ui/menus/saves_manager/save_file.gd" id="2_5g2eu"]
[ext_resource type="Texture2D" uid="uid://blyryo60jydgi" path="res://assets/ui/folder-open-pressed.png" id="2_714lu"]
[ext_resource type="StyleBox" uid="uid://bwm315lqbbb87" path="res://save_load/resources/save_file_highlight_panel_theme.tres" id="3_om23c"]
[ext_resource type="StyleBox" uid="uid://bwm315lqbbb87" path="res://resources/save_file_highlight_panel_theme.tres" id="3_om23c"]
[ext_resource type="Texture2D" uid="uid://by4w5ll3le7g6" path="res://assets/ui/folder-open-hover.png" id="3_ubfnn"]
[ext_resource type="Texture2D" uid="uid://dvp5yeoqw36yt" path="res://assets/ui/trash-normal.png" id="4_c2bnc"]
[ext_resource type="Texture2D" uid="uid://dknv7amroftm8" path="res://assets/icon.svg" id="4_vqdx8"]


+ 1
- 1
scenes/world/world.tscn View File

@ -2,7 +2,7 @@
[ext_resource type="Script" uid="uid://c0jbvki2cylct" path="res://scenes/world/world.gd" id="1_6m72w"]
[ext_resource type="PackedScene" uid="uid://beu1b4leqwgh3" path="res://scenes/player/player.tscn" id="2_sl2e5"]
[ext_resource type="PackedScene" uid="uid://c3pqilb6yh5kc" path="res://save_load/components/save_level_data_component.tscn" id="3_1fp7r"]
[ext_resource type="PackedScene" uid="uid://c3pqilb6yh5kc" path="res://addons/save_load_system/components/save_level_data_component.tscn" id="3_1fp7r"]
[ext_resource type="PackedScene" uid="uid://58cvwtpnkq8r" path="res://scenes/world/day_night_cycle_component.tscn" id="3_6m72w"]
[node name="World" type="Node3D" node_paths=PackedStringArray("blocks_container", "dropped_items_container", "spawn_position")]


Loading…
Cancel
Save