public static T GetOrLoadOrCreate <T>(string fileName, T defaultFileSaveData = default(T))
    {
        Debug.Log("FileSaveManager: GetOrLoadOrCreate[{0}]".FormatWith(fileName));

        if (!FileSaveContainers.Has(fileName))
        {
            var fileData = FileSaveUtils.Load <T>(fileName);

            if (fileData == null)
            {
                fileData = defaultFileSaveData;
                Create(fileName, fileData);
            }
            else
            {
                var fileSaveContainer = new FileSaveContainer {
                    FileName = fileName,
                    Data     = fileData,
                    DataType = typeof(T)
                };

                FileSaveContainers.Set(fileSaveContainer.FileName, fileSaveContainer);
            }
        }

        return((T)FileSaveContainers.Get(fileName).Data);
    }
    public static void Delete(string fileName)
    {
        Debug.Log("FileSaveManager: Delete[{0}]".FormatWith(fileName));

        FileSaveContainers.Remove(fileName);
        FileSaveUtils.Delete(fileName);
    }
 public static void SaveAll()
 {
     Debug.Log("FileSaveManager: SaveAll");
     foreach (var fileSaveContainer in FileSaveContainers.Values)
     {
         FileSaveUtils.Save(fileSaveContainer.FileName, fileSaveContainer.Data, fileSaveContainer.DataType);
     }
 }
    public static void HardReset()
    {
        Debug.Log("FileSaveManager: HardReset");

        foreach (var fileSaveData in FileSaveContainers.Values)
        {
            FileSaveUtils.Delete(fileSaveData.FileName);
        }
        FileSaveContainers.Clear();
    }
示例#5
0
        public void SaveRecording()
        {
            var allStrokes = new CfgEncoder().Add("strokes", recordedStrokes).ToString();

            FileSaveUtils.SaveJsonToPersistentPath(Cfg.vectorsFolderName, saveName, allStrokes);

            Cfg.recordingNames.Add(saveName);

            recording = false;
        }
    public static bool Save(string fileName)
    {
        Debug.Log("FileSaveManager: Save[{0}]".FormatWith(fileName));
        var fileSaveContainer = FileSaveContainers.Get(fileName);

        if (fileSaveContainer == null)
        {
            return(false);
        }

        return(FileSaveUtils.Save(fileSaveContainer.FileName, fileSaveContainer.Data, fileSaveContainer.DataType));
    }
    public static bool Create <T>(string fileName, T fileData)
    {
        Debug.Log("FileSaveManager: Create[{0}]".FormatWith(fileName));
        var fileSaveContainer = new FileSaveContainer {
            FileName = fileName,
            Data     = fileData,
            DataType = typeof(T)
        };

        FileSaveContainers.Set(fileSaveContainer.FileName, fileSaveContainer);

        return(FileSaveUtils.Save(fileSaveContainer.FileName, fileSaveContainer.Data, fileSaveContainer.DataType));
    }
    public static T Load <T>(string fileName)
    {
        Debug.Log("FileSaveManager: Load[{0}]".FormatWith(fileName));

        if (!FileSaveContainers.Has(fileName))
        {
            var fileData = FileSaveUtils.Load <T>(fileName);

            if (fileData == null)
            {
                return(default(T));
            }

            var fileSaveContainer = new FileSaveContainer {
                FileName = fileName,
                Data     = fileData,
                DataType = typeof(T)
            };

            FileSaveContainers.Set(fileSaveContainer.FileName, fileSaveContainer);
        }

        return((T)FileSaveContainers.Get(fileName).Data);
    }
示例#9
0
 public void Save() => FileSaveUtils.SaveJsonToPersistantPath(this, cfg.leaderBoardFileName, cfg.savedGameFolderName);