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);
        }
Beispiel #3
0
    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
            });
        }
Beispiel #5
0
        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();
            }
        }