IEnumerator save_thread(GameObject aDestroy) { while (!Storage.StorageManager.AmFullyInitialized() || !MicrosoftZig.Inst.mAll.IsSomeoneSignedIn) { yield return(null); } ConnectedStorage.CreateAsync(MicrosoftZig.Inst.mAll.ActiveUser.Id, "main_save", delegate(ConnectedStorage storage, CreateConnectedStorageOp op) { if (op.Success) { StorageCreated = true; IsStorageFail = false; mStorage = storage; ManagerManager.Log("storage created success"); } else { IsStorageFail = true; ManagerManager.Log("storage create failed"); } } ); GameObject.Destroy(aDestroy); }
public void CloseStorage() { if (IsWriting) { ManagerManager.Log("WARNING: trying to close storage while write is still in progress"); } IsWriting = false; mStorage = null; StorageCreated = false; }
protected override void update_connected_storage() { base.update_connected_storage(); if (ConnectedStorage.Count == 0) { Storage = null; } else if (Storage == null || !ConnectedStorage.Contains(Storage)) { Storage = ConnectedStorage[0]; Setup(); } this.EnableModule(Storage != null); }
private static async Task <int> OnDownload(Options options) { ulong xuid = options.XboxUserId; Guid scid = options.ServiceConfigurationId; string sandbox = options.Sandbox; List <TitleBlobInfo> savedGameInfos = await ConnectedStorage.ListSavedGamesAsync(xuid, scid.ToString(), sandbox, string.Empty, 0, 0); if (savedGameInfos.Count == 0) { Console.WriteLine("No saves found."); return(0); } Directory.CreateDirectory(Path.GetDirectoryName(options.OutputFile)); XmlWriterSettings xmlWriterSettings = new XmlWriterSettings() { Indent = true }; using (XmlWriter xbStorageXmlWriter = XmlWriter.Create(options.OutputFile, xmlWriterSettings)) { xbStorageXmlWriter.WriteStartDocument(); xbStorageXmlWriter.WriteStartElement("XbConnectedStorageSpace"); xbStorageXmlWriter.WriteStartElement("ContextDescription"); xbStorageXmlWriter.WriteStartElement("Account"); xbStorageXmlWriter.WriteAttributeString("msa", "*****@*****.**"); xbStorageXmlWriter.WriteEndElement(); // Account xbStorageXmlWriter.WriteStartElement("Title"); xbStorageXmlWriter.WriteAttributeString("scid", scid.ToString()); xbStorageXmlWriter.WriteEndElement(); // Title xbStorageXmlWriter.WriteEndElement(); // ContextDescription xbStorageXmlWriter.WriteStartElement("Data"); xbStorageXmlWriter.WriteStartElement("Containers"); foreach (TitleBlobInfo savedGameInfo in savedGameInfos) { string savedGameName = savedGameInfo.FileName.Substring(0, savedGameInfo.FileName.IndexOf(',')); xbStorageXmlWriter.WriteStartElement("Container"); xbStorageXmlWriter.WriteAttributeString("name", savedGameName); xbStorageXmlWriter.WriteStartElement("Blobs"); SavedGameV2Response savedGame = await ConnectedStorage.DownloadSavedGameAsync(xuid, scid, sandbox, savedGameName); foreach (ExtendedAtomInfo atomInfo in savedGame.Atoms) { xbStorageXmlWriter.WriteStartElement("Blob"); xbStorageXmlWriter.WriteAttributeString("name", atomInfo.Name); byte[] atomContent = await ConnectedStorage.DownloadAtomAsync(xuid, scid, sandbox, atomInfo.Atom); xbStorageXmlWriter.WriteCData(Convert.ToBase64String(atomContent)); xbStorageXmlWriter.WriteEndElement(); // Blob } xbStorageXmlWriter.WriteEndElement(); // Blobs } xbStorageXmlWriter.WriteEndElement(); // Containers xbStorageXmlWriter.WriteEndElement(); // Data xbStorageXmlWriter.WriteEndElement(); // XbConnectedStorageSpace } Console.WriteLine($"Operation complete. Downloaded {savedGameInfos.Count} save containers to {options.OutputFile}."); return(0); }
public StorageKeyValue(string key, string value, ConnectedStorage storage) { _key = key; _value = value; _storage = storage; }