private static void PerformSaveCheckPoint(string name, bool urgent)
    {
        var newGame = CreateSaveEntry(name, urgent);

        FilePrefs.SetString(PlayerName + "__RESUME__", Convert.ToBase64String(UnitySerializer.Serialize(newGame)));
        FilePrefs.Save();
    }
    /// <summary>
    ///   Resume for a stored game state that wasn't directly saved
    /// </summary>
    public static void Resume()
    {
        var data = FilePrefs.GetString(PlayerName + "__RESUME__");

        if (!string.IsNullOrEmpty(data))
        {
            var se = UnitySerializer.Deserialize <SaveEntry>(Convert.FromBase64String(data));
            se.Load();
        }
    }
Esempio n. 3
0
 public bool this[string name]
 {
     get
     {
         name = "Pref " + name;
         return(FilePrefs.HasKey(name) ? (FilePrefs.GetInt(name) == 1) : false);
     }
     set
     {
         name = "Pref " + name;
         FilePrefs.SetInt(name, value ? 1 : 0);
     }
 }
Esempio n. 4
0
    private IEnumerator LoadSavesAndSerializers()
    {
        Serialization.UnitySerializer.AddPrivateType(typeof(AnimationClip));
        Serialization.UnitySerializer.AddPrivateType(typeof(Keyframe));

        yield return(0);

        try {
            var stored = FilePrefs.GetString("_Save_Game_Data_");
            if (!string.IsNullOrEmpty(stored))
            {
                try {
                    LevelSerializer.SavedGames = UnitySerializer.Deserialize <Lookup <string, List <LevelSerializer.SaveEntry> > >(Convert.FromBase64String(stored));
                }
                catch {
                    LevelSerializer.SavedGames = null;
                }
            }
            if (LevelSerializer.SavedGames == null)
            {
                LevelSerializer.SavedGames = new Index <string, List <LevelSerializer.SaveEntry> >();
                LevelSerializer.SaveDataToFilePrefs();
            }
        }
        catch (System.Exception e) {
            LevelSerializer.SavedGames = new Index <string, List <LevelSerializer.SaveEntry> >();
            Debug.Log(e);
        }

        foreach (var asm in AppDomain.CurrentDomain.GetAssemblies())
        {
            try
            {
                UnitySerializer.ScanAllTypesForAttribute((tp, attr) =>
                                                         LevelSerializer.createdPlugins.Add(Activator.CreateInstance(tp)), asm, typeof(SerializerPlugIn));

                UnitySerializer.ScanAllTypesForAttribute((tp, attr) =>
                {
                    LevelSerializer.CustomSerializers[((ComponentSerializerFor)attr).SerializesType] = Activator.CreateInstance(tp) as IComponentSerializer;
                }, asm, typeof(ComponentSerializerFor));
            }
            catch (System.Exception e)
            {
                Debug.Log(e);
            }
        }
    }
    private static void PerformSave(string name, bool urgent)
    {
        var newGame = CreateSaveEntry(name, urgent);

        SavedGames[PlayerName].Insert(0, newGame);


        while (SavedGames[PlayerName].Count > MaxGames)
        {
            SavedGames[PlayerName].RemoveAt(SavedGames.Count - 1);
        }

        SaveDataToFilePrefs();

        FilePrefs.SetString(PlayerName + "__RESUME__", Convert.ToBase64String(UnitySerializer.Serialize(newGame)));
        FilePrefs.Save();
        GameSaved();
    }
 /// <summary>
 ///   Suspends the serialization. Must resume as many times as you suspend
 /// </summary>
 public static void SuspendSerialization()
 {
     if (_suspensionCount == 0)
     {
         SuspendingSerialization();
         if (SerializationMode == SerializationModes.CacheSerialization)
         {
             _cachedState = CreateSaveEntry("resume", true);
             if (SaveResumeInformation)
             {
                 FilePrefs.SetString(PlayerName + "__RESUME__",
                                     Convert.ToBase64String(UnitySerializer.Serialize(_cachedState)));
                 FilePrefs.Save();
             }
         }
     }
     _suspensionCount++;
 }
 /// <summary>
 ///   Saves the stored game data to player prefs.
 /// </summary>
 public static void SaveDataToFilePrefs()
 {
     FilePrefs.SetString("_Save_Game_Data_", Convert.ToBase64String(UnitySerializer.Serialize(SavedGames)));
     FilePrefs.Save();
 }
    static LevelSerializer()
    {
        webClient.UploadDataCompleted   += HandleWebClientUploadDataCompleted;
        webClient.UploadStringCompleted += HandleWebClientUploadStringCompleted;
        //Basic plug in configuration and special cases
        _stopCases.Add(typeof(PrefabIdentifier));
        UnitySerializer.AddPrivateType(typeof(AnimationClip));

        //Other initialization
        foreach (var asm in AppDomain.CurrentDomain.GetAssemblies())
        {
            UnitySerializer.ScanAllTypesForAttribute(
                (tp, attr) => createdPlugins.Add(Activator.CreateInstance(tp)), asm, typeof(SerializerPlugIn));
            UnitySerializer.ScanAllTypesForAttribute(
                (tp, attr) =>
            {
                CustomSerializers[((ComponentSerializerFor)attr).SerializesType] =
                    Activator.CreateInstance(tp) as IComponentSerializer;
            }, asm,
                typeof(ComponentSerializerFor));
        }



        AllPrefabs =
            Resources.FindObjectsOfTypeAll(typeof(GameObject)).Cast <GameObject>()
            .Where(go =>
        {
            var pf = go.GetComponent <PrefabIdentifier>();
            return(pf != null && !pf.IsInScene());
        })
            .Distinct(CompareGameObjects.Instance)
            .ToDictionary(go => go.GetComponent <PrefabIdentifier>().ClassId, go => go);


        try
        {
            var stored = FilePrefs.GetString("_Save_Game_Data_");
            if (!string.IsNullOrEmpty(stored))
            {
                try
                {
                    SavedGames =
                        UnitySerializer.Deserialize <Lookup <string, List <SaveEntry> > >(Convert.FromBase64String(stored));
                }
                catch
                {
                    SavedGames = null;
                }
            }
            if (SavedGames == null)
            {
                SavedGames = new Index <string, List <SaveEntry> >();
                SaveDataToFilePrefs();
            }
        }
        catch
        {
            SavedGames = new Index <string, List <SaveEntry> >();
        }
    }
Esempio n. 9
0
 private void OnApplicationQuit()
 {
     FilePrefs.Save();
 }