public static bool Save <T>(T data) where T : GameData { try { var filename = getDataFileName(data.Type, data.Id); if (filename == null) { filename = Path.Combine(DataFolder, data.Type, data.Id + ".json"); } SafeFileReadWrite.Write(filename, JsonConvert.SerializeObject(data, Formatting.Indented)); return(true); } catch { return(false); } }
public static T Load <T>(string filename) where T : GameData, new() { var fileId = getDataFileId(filename); if (fileId == -1) { return(new T()); } var filecontent = SafeFileReadWrite.Read(filename); var loadedData = JsonConvert.DeserializeObject <T>(filecontent); loadedData.Id = fileId; return(loadedData); }