public void DeleteCharacter(CharacterData data) { var fileDir = FileSaveManager.GetFileDirectory(SaveCharacterMenu.SAVE_LOCATION, FileSaveManager.Directories.global, FileSaveManager.Extensions.json); if (System.IO.File.Exists(fileDir)) { var items = new List <string>(); var fileLines = System.IO.File.ReadAllLines(fileDir); for (int i = 0; i < fileLines.Length; i++) { var isMale = fileLines[i].Contains("\"male\":true"); if (fileLines[i].Contains(data.characterName) && fileLines[i].Contains(data.characterTag) && isMale == data.male) { continue; } items.Add(fileLines[i]); } System.IO.File.WriteAllLines(fileDir, items.ToArray()); } else { Debug.LogError("Dear god something has gone terribly wrong!"); // FIXME: Add a message for the user to let them know no saves exist } OnDisable(); OnEnable(); }
public void SaveItem() { Debug.Log($"Saving: {nameText.text}"); var data = new CharacterData(customCharacter.characterCustomization.GetSetup()); data.male = genderSelection.genderMale; data.characterTag = $"{characterList.types[tagDropdown.value].name}"; data.characterName = nameText.text; // ALT //FileSystem.FileSaveManager.Save(data, nameText.text, fileLocation, fileExtension); var serializedData = FileSaveManager.SerializeToString(data, FileSaveManager.Extensions.json) + "\n"; var fileDir = FileSaveManager.GetFileDirectory(SAVE_LOCATION, FileSaveManager.Directories.global, FileSaveManager.Extensions.json); if (System.IO.File.Exists(fileDir)) { var fileLines = System.IO.File.ReadAllLines(fileDir); var totalLines = new List <string>(); bool createdSave = false; for (int i = 0; i < fileLines.Length; i++) { if (fileLines[i].Length <= 1) { continue; } // FIXME: This will only support JSON! var isMale = fileLines[i].Contains("\"male\":true"); if (fileLines[i].Contains(data.characterName) && fileLines[i].Contains(data.characterTag) && isMale == data.male) { // FIXME: We should make sure that the user wants to overrite this file fileLines[i] = ""; fileLines[i] = serializedData; createdSave = true; } totalLines.Add(fileLines[i]); } if (createdSave == false) { totalLines.Add(serializedData); } System.IO.File.WriteAllLines(fileDir, totalLines.ToArray()); } else { System.IO.File.WriteAllText(fileDir, serializedData); } }
private void OnEnable() { var fileDir = FileSaveManager.GetFileDirectory(SaveCharacterMenu.SAVE_LOCATION, FileSaveManager.Directories.global, FileSaveManager.Extensions.json); if (System.IO.File.Exists(fileDir)) { var fileLines = System.IO.File.ReadAllLines(fileDir); for (int i = 0; i < fileLines.Length; i++) { if (fileLines[i].Length <= 1) { continue; } var data = FileSaveManager.DeserializeString <CharacterData>(fileLines[i], extension); if (data == null) { Debug.LogWarning($"Unable to deserialize data: {fileLines[i]}"); continue; } var buttonObj = Instantiate(loadButton, saveRegionParent); buttonObj.GetComponent <LoadItemButton>().Initialize(data, this); characters.Add(data); } } else { Debug.Log("No saves exist!"); // FIXME: Add a message for the user to let them know no saves exist } /* OLD METHOD * var files = FileSaveManager.GetFilesFromDirectory(directory, extension); * foreach (var item in files) * { * var buttonObj = Instantiate(loadButton, saveRegionParent); * var data = FileSaveManager.Load<CharacterData>(item, directory, extension); * buttonObj.GetComponent<LoadItemButton>().Initialize(item, data, this, directory, extension); * }*/ }