public static void TryToSaveCurrentLevel(LevelData level)
    {
        if (HasFileCreated())
        {
            PlayerPersistenceData playerData = LoadPlayerData();

            if (playerData != null)
            {
                if (playerData.levelsPlayed == null)
                {
                    playerData.levelsPlayed = new List <LevelData>();
                }

                if (!playerData.levelsPlayed.Contains(level))
                {
                    playerData.levelsPlayed.Add(level);
                }
                else
                {
                    playerData.levelsPlayed[playerData.levelsPlayed.IndexOf(level)] = level;
                }

                SavePlayerData(playerData);
            }
        }
    }
    public static PlayerPersistenceData SavePlayerData(PlayerPersistenceData playerPersistenceData, bool saveLanguage = false)
    {
        PlayerPersistenceData playerDataToSave;

        if (playerPersistenceData == null)
        {
            //Only when when playing for the 1st time
            playerDataToSave = new PlayerPersistenceData();
        }
        else
        {
            playerDataToSave = playerPersistenceData;
        }

        if (playerDataToSave.playerOptionsConfig == null)
        {
            playerDataToSave.playerOptionsConfig = new PlayerOptionsConfig();
        }

        if (saveLanguage)
        {
            playerDataToSave.playerOptionsConfig.language = LocalisationSystem.language;
        }

        BinaryFormatter binaryFormatter = new BinaryFormatter();
        FileStream      file            = File.Create(FILE_PATH);

        binaryFormatter.Serialize(file, playerDataToSave);
        file.Close();
        return(playerDataToSave);
    }
 public static void SetGodMode(bool isGodMode)
 {
     if (HasFileCreated())
     {
         PlayerPersistenceData playerData = LoadPlayerData();
         SavePlayerData(playerData);
     }
 }
 public static void SavePlayerConfigs(PlayerOptionsConfig playerConfigs)
 {
     if (HasFileCreated())
     {
         PlayerPersistenceData playerData = LoadPlayerData();
         playerData.playerOptionsConfig = playerConfigs;
         SavePlayerData(playerData, true);
     }
 }
    public static void SavePlayerLanguage()
    {
        PlayerPersistenceData playerData = LoadPlayerData();

        if (playerData.playerOptionsConfig == null)
        {
            playerData.playerOptionsConfig = new PlayerOptionsConfig();
        }

        playerData.playerOptionsConfig.language = LocalisationSystem.language;
        SavePlayerData(playerData, true);
    }
 public static PlayerOptionsConfig GetPlayerOptionsConfig()
 {
     if (HasFileCreated())
     {
         PlayerPersistenceData playerData = LoadPlayerData();
         if (playerData != null)
         {
             return(playerData.playerOptionsConfig);
         }
     }
     return(null);
 }
 public static int GetIndexOfLastLevelPlayed()
 {
     if (HasFileCreated())
     {
         PlayerPersistenceData playerData = LoadPlayerData();
         if (playerData.levelsPlayed != null && playerData.levelsPlayed.Count > 0)
         {
             return(playerData.levelsPlayed[playerData.levelsPlayed.Count - 1].buildIndex);
         }
     }
     return(1);
 }
Exemple #8
0
    public void SetDefaultPlayerConfigs()
    {
        MusicManager.instance.SetNewMusicVolume(MusicManager.instance.maxVolume);
        SoundManager.instance.CurrentVolume = SoundManager.instance.maxVolume;

        PlayerPersistenceData playerData    = PlayerPersistence.LoadPlayerData();
        PlayerOptionsConfig   playerOptions = playerData.playerOptionsConfig;

        playerOptions.musicVolume = MusicManager.instance.CurrentVolume;
        playerOptions.sfxVolume   = SoundManager.instance.CurrentVolume;

        playerData.playerOptionsConfig = playerOptions;

        PlayerPersistence.SavePlayerData(playerData);
    }
    public static PlayerPersistenceData LoadPlayerData()
    {
        try
        {
            BinaryFormatter       binaryFormatter       = new BinaryFormatter();
            FileStream            file                  = File.Open(FILE_PATH, FileMode.Open);
            PlayerPersistenceData playerPersistenceData = null;
            playerPersistenceData = binaryFormatter.Deserialize(file) as PlayerPersistenceData;
            file.Close();

            return(playerPersistenceData);
        }
        catch
        {
            return(SavePlayerData(null, true));
        }
    }
 public static Language GetPlayerLanguage()
 {
     if (HasFileCreated())
     {
         PlayerPersistenceData playerData = LoadPlayerData();
         if (playerData.playerOptionsConfig != null)
         {
             foreach (Language languageType in EnumUtil.GetValues <Language>())
             {
                 if (languageType == playerData.playerOptionsConfig.language)
                 {
                     return(languageType);
                 }
             }
         }
     }
     return(Language.Null);
 }
    public static LevelData GetLevelPersisted(int levelBuildIndex)
    {
        if (HasFileCreated())
        {
            PlayerPersistenceData playerData = LoadPlayerData();

            if (playerData != null)
            {
                if (playerData.levelsPlayed != null)
                {
                    LevelData level = new LevelData(levelBuildIndex);
                    if (playerData.levelsPlayed.Contains(level))
                    {
                        return(playerData.levelsPlayed[playerData.levelsPlayed.IndexOf(level)]);
                    }
                }
            }
        }
        return(null);
    }
Exemple #12
0
    void Start()
    {
        levelNameTxt.text = buildIndex < 10 ? "0" + buildIndex : buildIndex.ToString();

        PlayerPersistenceData playerData = PlayerPersistence.LoadPlayerData();

        if (playerData != null)
        {
            LevelData levelFound = PlayerPersistence.GetLevelPersisted(buildIndex);

            if (levelFound != null)
            {
                int stars = levelFound.stars;

                image.sprite = cookieBite;

                SetStars(stars);

                MakeInteractable(true);
            }
            else
            {
                if (playerData.levelsPlayed != null)
                {
                    if (buildIndex == playerData.levelsPlayed.Count + 1)
                    {
                        MakeInteractable(true);
                    }
                }
                else
                {
                    if (buildIndex == 1)
                    {
                        MakeInteractable(true);
                    }
                }
            }
        }
    }