Пример #1
0
    private List <Level> readLevels()
    {
        Regex        regex  = new Regex("level\\d+.xml");
        List <Level> levels = new List <Level>();
        var          dir    = new System.IO.DirectoryInfo(Application.dataPath + "/Resources/");

        foreach (System.IO.FileInfo f in dir.GetFiles())
        {
            var name = f.Name;

            //Exclude all files that aren't level files.
            if (name.EndsWith(".meta") || !regex.IsMatch(name))
            {
                continue;
            }

            //Else parse file and add to list
            levels.Add(PuzzleXMLReader.readLevel("/Resources/" + f.Name));
        }
        return(levels);
    }
Пример #2
0
    void Start()
    {
        Level level = LevelManager.Instance().loadLevel(PlayerPrefs.GetInt(Constants.playerPrefsLevel, 0));

        puzzle = PuzzleXMLReader.createLevel(level);

        Debug.Log("Size: " + gameObject.GetComponent <MeshRenderer>().bounds.size);
        gameBoard = new SlotManager(gameObject.transform.position, gameObject.GetComponent <MeshRenderer>().bounds.size, puzzle.getNumberOfSlots());
        gameBoard.initSlots();
        //create workbench
        var workbench = Instantiate(Resources.Load("Workbench", typeof(GameObject)) as GameObject);

        workbench.transform.parent   = this.transform.parent;
        workbench.transform.position = Constants.workbenchCoords;
        workbench.name = Constants.workbenchName;

        gameBoard.slots.ForEach(s => createdSlotGameObjects.Add(createSlotFromPrefab(s)));
        int i = 0;

        foreach (PuzzleProgrammingElement programmingElement in level.puzzleProgrammingElements)
        {
            DragObject dragObj = createElementFromPrefab(programmingElement);
            if (programmingElement.isLocked)
            {
                gameBoard.slots[i].setElement(dragObj);
                dragObj.transform.position = gameBoard.slots[i].position;
                dragObj.disableGravity();
            }
            if (programmingElement.isPartOfSolution && -1 != programmingElement.valueOfId)
            {
                i++;
            }
        }


        LevelStartStopHandler.Instance.StartLevel(level.levelId);
        GameObject.Find("Lieferumfang-Text").GetComponent <TextMeshPro>().text = LevelManager.Instance().getCurrentLevelElements();
    }