/// <summary> /// Loads up single game specific data. /// </summary> /// <param name="metadata">Metadata that is associated with the game data.</param> /// <param name="callback">Callback which is called when the loading is done.</param> public static void LoadSavedGame(SavedGameMetadata metadata, Action <SavedGame> callback) { if (callback == null) { throw new ArgumentNullException("callback", "Callback can't be null."); } if (metadata == null) { throw new ArgumentNullException("metadata", "Metadata can't be null."); } var gameDataPath = SavedGameRootPath + metadata.savedGameFileName + savedGameFileSuffix; if (Async) { ReadFileAsync <object>(gameDataPath, (object gameSpecificData) => { var savedGame = new SavedGame(metadata, gameSpecificData); callback(savedGame); }); } else { var gameSpecificData = ReadAndDeserialize <object>(gameDataPath); callback(new SavedGame(metadata, gameSpecificData)); } }
/// <summary> /// Deletes a single saved game permanently. /// </summary> /// <param name="metadata">Metadata that is associated with the game data.</param> /// <param name="callback">Callback which is called when the deleting is done.</param> public static void DeleteSave(SavedGameMetadata metadata, Action callback) { var paths = new string[] { SavedGameRootPath + metadata.savedGameFileName + savedGameFileSuffix, SavedGameRootPath + metadata.savedGameFileName + metadataFileSuffix }; if (Async) { DeleteFilesAsync(paths, callback); } else { DeleteFiles(paths); if (callback != null) { callback(); } } }
public SavedGame(SavedGameMetadata metadata, object gameSpecificData) { this.metadata = metadata; this.gameSpecificData = gameSpecificData; }
/// <summary> /// Saves the game on persistent storage. /// </summary> /// <param name="metadata">Metadata for the saved game.</param> /// <param name="gameData">Game specific data that is to be saved.</param> /// <param name="callback">Callback which is called when the saving has finished.</param> public static void SaveGame(SavedGameMetadata metadata, object gameData, Action callback) { SaveGame(new SavedGame(metadata, gameData), callback); }