public StoreSaveState Load(ResourceRegistry resourceRegistry, FactoryRegistry factoryRegistry, ModifierRegistry modiferRegistry) { string path = string.Format(@"{0}{1}", directoryPath, FILE_NAME); StoreSaveState storage = null; try { using (FileStream fileStream = new FileStream(path, FileMode.Open)) { using (StreamReader reader = new StreamReader(fileStream)) { storage = JsonConvert.DeserializeObject <StoreSaveState>(reader.ReadToEnd()); } } } catch (FileNotFoundException) { throw new FileNotFoundException(string.Format("An existing save file could not be found to load at: {0}", path)); } ResourceCheckpoint checkpoint = new ResourceCheckpoint(storage.ResourceCheckpoint.CheckpointTimeUTC, storage.ResourceCheckpoint.ResourceAmounts, resourceRegistry); FactoryManager factoryManager = new FactoryManager(storage.FactoryManager.FactoryAmounts, factoryRegistry); ModifierManager modifierManager = new ModifierManager(storage.ModiferManager.ModifierDurations, modiferRegistry); return(new StoreSaveState() { ResourceCheckpoint = checkpoint, FactoryManager = factoryManager, ModiferManager = modifierManager }); }
public void Save(StoreSaveState saveState) { string path = string.Format(@"{0}{1}", directoryPath, FILE_NAME); using (FileStream fileStream = new FileStream(path, FileMode.Create)) { using (StreamWriter writer = new StreamWriter(fileStream)) { writer.Write(JsonConvert.SerializeObject(saveState, Formatting.Indented)); } } }