Savesystem rework

This commit is contained in:
2025-11-23 21:02:40 +01:00
parent 4bbaab1a2a
commit fda2b95b38
5 changed files with 56 additions and 29 deletions
@@ -0,0 +1 @@
uid://bqapxuprxuj20
@@ -18,13 +18,23 @@ public static class SavegameService
public static Dictionary<string, string> SaveDatas = new ();
public static bool _loaded = false;
public static void AppendDataToSave(string scenename, string id, Dictionary<string, Variant> payload)
{
var saveData = new SaveData();
saveData.SceneName = scenename;
saveData.Id = id;
saveData.JsonPayload = Json.Stringify(payload, indent: "\t");
AppendSave(saveData);
}
/// <summary>
/// Adds or overwrites an entry in the SaveData dictionary.
/// </summary>
/// <param name="saveData"></param>
public static void AppendSave(SaveData saveData)
private static void AppendSave(SaveData saveData)
{
string key = string.Concat(saveData.SceneName, "_", saveData.Id);
@@ -46,21 +56,23 @@ public static class SavegameService
/// <param name="sceneName"></param>
/// <param name="id"></param>
/// <returns></returns>
public static string GetSaveData(string sceneName, string id)
public static Dictionary<string, Variant> GetSaveData(string sceneName, string id)
{
string saveData = "";
Dictionary<string, Variant> saveData = new();
string key = string.Concat(sceneName, "_", id);
string saveDataString = "";
if (!_loaded)
{
GD.Print("SavegameService: SaveFile not loaded.");
return saveData;
}
if (SaveDatas.ContainsKey(key))
{
saveData = SaveDatas[key];
saveDataString = SaveDatas[key];
saveData = Json.ParseString(saveDataString).AsGodotDictionary<string, Variant>();
}
return saveData;