Savesystem rework
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user