private void AddMazeToMazeList() { MazeLevelNamesData levelNamesData = new MazeLevelNamesData(_mazeName).AddLevelName(_mazeName); JsonMazeLevelListFileWriter fileWriter = new JsonMazeLevelListFileWriter(); fileWriter.SerialiseData(levelNamesData); }
public void SerialiseData <T>(T levelNamesData) { _levelNamesData = levelNamesData as MazeLevelNamesData; _path = Path.Combine(Application.dataPath, "StreamingAssets", "maze", "levels.json"); string jsonLevelNamesData = JsonUtility.ToJson(_levelNamesData, true).ToString(); File.WriteAllText(_path, jsonLevelNamesData); Logger.Log(Logger.Datawriting, "Wrote level list to file"); }
private MazeLevelNameData GetMazeLevelNameData(string sanatisedLevelName) { MazeLevelNamesData mazeLevelNamesData = MazeLevelLoader.GetAllMazeLevelNamesData(); MazeLevelNameData mazeLevelName = mazeLevelNamesData.LevelNames.FirstOrDefault(level => level.LevelName == sanatisedLevelName); if (mazeLevelName == null) { string message = $"Could not find a maze level with the name '<color={sanatisedLevelName}>info maze</color>' in the level list.\n"; throw new MazeLevelNameNotFoundConsoleException(message); } return(mazeLevelName); }
//Save changes to which levels are playable to the levels.json file public void SaveChanges() { JsonMazeLevelListFileWriter jsonMazeLevelListFileWriter = new JsonMazeLevelListFileWriter(); MazeLevelNamesData levelNamesData = new MazeLevelNamesData(); foreach (KeyValuePair <PlayableMazeLevelNameToggle, MazeLevelNameData> mazeLevelNameToggleData in LevelNameToggleData) { MazeLevelNameData levelNameData = new MazeLevelNameData() .WithName(mazeLevelNameToggleData.Value.LevelName) .WithPlayability(mazeLevelNameToggleData.Key.Toggle.isOn); levelNamesData.LevelNames.Add(levelNameData); } jsonMazeLevelListFileWriter.SerialiseData(levelNamesData); Logger.Log("Playable level selection changes were saved."); ClosePanel(); }