void saveLevel(IAsyncResult result) { SaveLevelData data = new SaveLevelData(); data.objectList = level.entityList; data.currentPosition = level.currentPosition; data.multiSelect = level.multiSelect; data.upTime = level.upTime; data.holdTime = level.holdTime; data.filename = level.levelName; device = StorageDevice.EndShowSelector(result); if (device != null && device.IsConnected) { IAsyncResult r = device.BeginOpenContainer("MyGamesStorage", null, null); result.AsyncWaitHandle.WaitOne(); StorageContainer container = device.EndOpenContainer(r); if (container.FileExists(level.levelName + ".sav")) container.DeleteFile(level.levelName + ".sav"); Stream stream = container.CreateFile(level.levelName + ".sav"); XmlSerializer serializer = new XmlSerializer(typeof(SaveLevelData)); serializer.Serialize(stream, data); stream.Close(); container.Dispose(); result.AsyncWaitHandle.Close(); } }
public static SaveLevelData ResourceToSaveLevel(ResourceItem obj, ListResourse lr) { obj.Data.Position = 0; SaveLevelData result = new SaveLevelData(); using (var data = new BinaryReader(obj.Data, Encoding.UTF8, true)) { var stateLevelSavecount = data.ReadInt32(); result.StateLevel.Clear(); for (int i = 0; i < stateLevelSavecount; i++) { result.StateLevel.Add(data.ReadUInt64(), (StateLevel)data.ReadUInt64()); } } return(result); }
public void Load() { #if UNITY_ANDROID && !UNITY_EDITOR _path = Path.Combine(Application.persistentDataPath, "SaveLevel.json"); #else _path = Path.Combine(Application.dataPath, "SaveLevel.json"); #endif if (File.Exists(_path)) { SavedLevelData = JsonUtility.FromJson <SaveLevelData>(File.ReadAllText(_path)); } else { SavedLevelData.ActiveLevels = 1; SavedLevelData.SelectedLevel = 1; } }
public static ListResourse ToResource(SaveLevelData obj) { ResourceItem resourse = null; using (MemoryStream ms = new MemoryStream()) { using (var data = new BinaryWriter(ms, Encoding.UTF8, true)) { data.Write(obj.StateLevel.Count); //Колличесво элементов for (int i = 0; i < obj.StateLevel.Count; i++) { data.Write(obj.StateLevel.ElementAt(i).Key); data.Write((UInt64)obj.StateLevel.ElementAt(i).Value); } } resourse = CreateItem(obj.ID, obj.Name, FileTypes.SaveData, ms); } return(new ListResourse { resourse }); }
static SaveGame() { if (File.Exists(path)) { using (var fs = new FileStream(path, FileMode.Open)) { TPSaves = new ToePackage(fs); } } else { TPSaves = new ToePackage(); } ; var levelitem = TPSaves.Items.GetResourceByTypeAndIdentifier(FileTypes.SaveData, IDLevelData); if (levelitem != null) { SaveLevelData = ResourceConverter.ResourceToSaveLevel(levelitem, TPSaves.Items); } else { SaveLevelData = new SaveLevelData(); } var useritem = TPSaves.Items.GetResourceByTypeAndIdentifier(FileTypes.SaveData, IDUserData); if (useritem != null) { SaveUserData = ResourceConverter.ResourceToSaveUser(useritem, TPSaves.Items); } else { SaveUserData = new SaveUserData(); } }