示例#1
0
    public static GridSystem.GridElementLevel DeserializeLevelfile(int levelIndex)
    {
        GridSystem.GridElementLevel loadedLevel = new GridSystem.GridElementLevel();
        string filePath = Application.dataPath + "/Levels/Level" + levelIndex.ToString() + ".json";

        if (File.Exists(filePath))
        {
            Debug.Log("Loading " + filePath);
            LevelData levelData = JsonUtility.FromJson <LevelData>(File.ReadAllText(filePath));
            loadedLevel.columns  = levelData.columns;
            loadedLevel.rows     = levelData.rows;
            loadedLevel.elements = new List <Element>();
            for (int i = 0; i < levelData.unitCubes.Length; i++)
            {
                Element element = Instantiate(GridSystem.Instance.UnitCube);
                element.isWall      = levelData.unitCubes[i].isWall;
                element.isInvisible = levelData.unitCubes[i].isInvisible;
                element.index       = i;
                loadedLevel.elements.Add(element);
            }
            loadedLevel.elements[levelData.startPosition].isStartPosition = true;
            lastLoadedLevel = levelIndex;
        }
        return(loadedLevel);
    }
示例#2
0
    // Update is called once per frame
    public static void SerializeLevelToFile(GridSystem.GridElementLevel level)
    {
        string path = Application.dataPath + "/Levels/Level";

        int fileNameCounter = 1;

        while (File.Exists(path + fileNameCounter.ToString() + ".json"))
        {
            fileNameCounter++;
        }
        path = path + fileNameCounter.ToString() + ".json";
        Debug.Log(path);

        LevelData data = new LevelData();

        data.columns   = level.columns;
        data.rows      = level.rows;
        data.unitCubes = new UnitCube[level.elements.Count];
        for (int i = 0; i < data.unitCubes.Length; i++)
        {
            data.unitCubes[i] = new UnitCube(level.elements[i].isWall, level.elements[i].isInvisible);
            if (level.elements[i].isStartPosition)
            {
                data.startPosition = level.elements[i].index;
            }
        }

        string jsonString = JsonUtility.ToJson(data);

        using (StreamWriter streamWriter = File.CreateText(path))
        {
            streamWriter.Write(jsonString);
        }
    }
示例#3
0
 public bool IsComplete(GridSystem.GridElementLevel level)
 {
     foreach (Element element in level.elements)
     {
         if (!element.isWall && !element.GetCollected())
         {
             return(false);
         }
     }
     return(true);
 }