Example #1
0
        /// <summary>
        /// Save the all the data: "Email listings, printed pages, open tabs and all the sticky notes"
        /// </summary>
        /// <param name="playerData"></param>
        /// <param name="bm"></param>
        /// <param name="listings"></param>
        /// <param name="missionManager"></param>
        public static void SavePlayer(PlayerData playerData, BrowserManager bm, List <EmailListing> listings,
                                      MissionManager missionManager)
        {
            BinaryFormatter formatter = new BinaryFormatter();
            string          path      = Application.persistentDataPath + "player.save";
            FileStream      stream    = new FileStream(path, FileMode.Create);

            List <PrintStatusSave> printList = new List <PrintStatusSave>();

            foreach (var currentState in bm.GetPrintStatus())
            {
                printList.Add(new PrintStatusSave(currentState.Key, currentState.Value));
            }

            PlayerSaveData playerSaveData = new PlayerSaveData();

            playerSaveData.SetStickyNotes(GameObject.FindObjectOfType <HelpStickyManager>().objectListByID);
            playerSaveData.SetPrintedCaseIDs(GameObject.FindObjectOfType <FilingCabinet>().caseFolders);
            playerSaveData.SetLocation(playerData);
            playerSaveData.SetTabs(bm.tabList);
            playerSaveData.SetEmails(listings);
            playerSaveData.SetCreatedCases(missionManager.GetCreated());
            playerSaveData.SetPlayerLevel(missionManager.playerLevel);
            playerSaveData.SetPrintStatus(printList);

            formatter.Serialize(stream, playerSaveData);
            stream.Close();
        }