public void Setup(SaveDataManifest manifest, UnityAction <SaveDataManifest> selectionCallback) { saveDataManifest = manifest; nameText.text = saveDataManifest.Name; selectButton.onClick.AddListener(() => selectionCallback(saveDataManifest)); }
public void UpdateManifest() { // Players PlayerSaveInfo[] playerSaveInfos = PhotonNetwork.playerList.Select(x => new PlayerSaveInfo(x.NickName, (int)(x.CustomProperties["UniqueID"] ?? -1))).ToArray(); // Chunks List <Tuple <string, byte[]> > worldFiles = FileLoader.LoadFiles(WorldDataPath); // TODO: We dont want to do this every time we are saving the manifest ChunkSaveInfo[] chunkSaveInfos = worldFiles.Select(x => new ChunkSaveInfo(x.Item1)).ToArray(); SaveDataManifest saveDataManifest = new SaveDataManifest { Save_TimeStamp = DaytimeController.Instance?.CurrentTime.Ticks ?? 0, GameTime = (long)PhotonNetwork.room.CustomProperties["gameTime"], Seed = (int)PhotonNetwork.room.CustomProperties["seed"], Name = (string)PhotonNetwork.room.CustomProperties["saveName"], Players = playerSaveInfos, Chunks = chunkSaveInfos }; // Save the manifest locally SaveManifest(saveDataManifest); // Send the manifest to the other players PhotonNetwork.RaiseEvent(0, new byte[0], true, null); // TODO: SENDING EMPTY MANIFEST (DO WE EVEN NEED TO SEND THIS?) }
private void AddSaveManifest(SaveDataManifest saveDataManifest) { GameObject saveFileListingObj = Instantiate(saveFileListingPrefab, layoutGroup.transform, false); SaveFileListing saveFileListing = saveFileListingObj.GetComponent <SaveFileListing>(); saveFileListing.Setup(saveDataManifest, OnSaveSelected); saveFileListingButtons.Add(saveFileListing); }
public SaveDataManifest[] LoadAllManifests() { string[] files = Directory.GetFiles(SaveFileFolder, "*.manifest"); List <SaveDataManifest> manifests = new List <SaveDataManifest>(); for (int i = 0; i < files.Length; i++) { Tuple <string, byte[]> fileData = FileLoader.LoadFile(files[i]); if (fileData != null) { string json = System.Text.Encoding.UTF8.GetString(fileData.Item2); SaveDataManifest manifest = (SaveDataManifest)JsonUtility.FromJson(json, typeof(SaveDataManifest)); if (manifest != null) { manifests.Add(manifest); } } } return(manifests.ToArray()); }
private void OnSaveSelected(SaveDataManifest saveDataManifest) { SelectedSave = saveDataManifest; }
/// <summary> /// Saves the manifest to disk. /// </summary> /// <param name="saveDataManifest"></param> private void SaveManifest(SaveDataManifest saveDataManifest) { string json = JsonUtility.ToJson(saveDataManifest); WriteToFile($"{RoomFolderName}.manifest", SaveFileFolder, System.Text.Encoding.UTF8.GetBytes(json)); }