private void AddMazeToMazeList()
    {
        MazeLevelNamesData levelNamesData = new MazeLevelNamesData(_mazeName).AddLevelName(_mazeName);

        JsonMazeLevelListFileWriter fileWriter = new JsonMazeLevelListFileWriter();

        fileWriter.SerialiseData(levelNamesData);
    }
Exemplo n.º 2
0
    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");
    }
Exemplo n.º 3
0
    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);
    }
Exemplo n.º 4
0
    //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();
    }