public CreateLevelFromJavatoXml()
    {
        String nameLevel = "";
        for (int i = 1; i < mountOfLevels; i++)
        {
            nameLevel = "Level_" + i.ToString();
            var lvlMain = Activator.CreateInstance(null, nameLevel);
            LevelMain lv = (LevelMain)lvlMain.Unwrap();
            int[,] table = lv.posLevel;
            Level level = new Level();

            level.numberOfLevel = i;
            level.timeToFinish = lv.timeLevel;
            if (lv.timeLevel == 0)
            {
                Debug.Log("WARNING!!! Timer = 0; level = " + i.ToString());
            }

            for (int y = 0; y < rows; y++)
            {
                for (int x = 0; x < colomns; x++)
                {
                    int bl = table[x, y];
                    if (bl != 0)
                    {
                        Block blockBlock = new Block();
                        blockBlock.PosX = x;
                        blockBlock.PosY = (this.rows - 1) - y;
                        blockBlock.PosZ = 0;

                        BlockTeleportation telBlock = new BlockTeleportation();

                        if (bl == 6)
                        {
                            telBlock.PosX = x;
                            telBlock.PosY = (this.rows - 1) - y;
                            telBlock.PosZ = 0;

                            telBlock.teleportToX = -20;
                            telBlock.teleportToY = -20;
                            telBlock.teleportToZ = 0;

                        }

                        switch (bl)
                        {
                            case 1:
                                blockBlock.TypeOfBlock = TypeOfBlock.BLOCK;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 2:
                                blockBlock.TypeOfBlock = TypeOfBlock.PATH;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 3:
                                blockBlock.TypeOfBlock = TypeOfBlock.BROKEN;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 4:
                                blockBlock.TypeOfBlock = TypeOfBlock.START;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 5:
                                blockBlock.TypeOfBlock = TypeOfBlock.EXIT;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 6:
                                blockBlock.TypeOfBlock = TypeOfBlock.TELEPORT;
                                level.blocksList.Add(blockBlock);
                                level.blTeleportsList.Add(telBlock);
                                break;
                            case 7:
                                blockBlock.TypeOfBlock = TypeOfBlock.LOCK_GREEN;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 8:
                                blockBlock.TypeOfBlock = TypeOfBlock.LOCK_RED;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 9:
                                blockBlock.TypeOfBlock = TypeOfBlock.MOVE_UP;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 10:
                                blockBlock.TypeOfBlock = TypeOfBlock.MOVE_RIGHT;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 11:
                                blockBlock.TypeOfBlock = TypeOfBlock.MOVE_DOWN;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 12:
                                blockBlock.TypeOfBlock = TypeOfBlock.MOVE_LEFT;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 13:
                                blockBlock.TypeOfBlock = TypeOfBlock.MOVE_UP_DOWN;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 14:
                                blockBlock.TypeOfBlock = TypeOfBlock.MOVE_LEFT_RIGHT;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 15:
                                blockBlock.TypeOfBlock = TypeOfBlock.MOVE_ALL;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 16:
                                blockBlock.TypeOfBlock = TypeOfBlock.KEY_GREEN;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 17:
                                blockBlock.TypeOfBlock = TypeOfBlock.KEY_RED;
                                level.blocksList.Add(blockBlock);
                                break;
                            case 18:
                                blockBlock.TypeOfBlock = TypeOfBlock.TIME;
                                level.blocksList.Add(blockBlock);
                                break;

                        }
                    }
                }

            }

            LevelManager levelManager = new LevelManager(level);
            levelManager.SaveLevelToXml("Level" + i.ToString() + ".xml");
        }
    }
예제 #2
0
 public GameObject GenerateBlock(Level level, Block block)
 {
     GameObject gameObject = null;
         switch (block.TypeOfBlock)
         {
             case TypeOfBlock.BLOCK:
                 wall.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = wall;
                 break;
             case TypeOfBlock.PATH:
                 path.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = path;
                 break;
             case TypeOfBlock.START:
                 start.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = start;
                 PlayerSetPos(start.transform.position);
                 break;
             case TypeOfBlock.EXIT:
                 end.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = end;
                 break;
             case TypeOfBlock.MOVE_ALL:
                 moveAll.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = moveAll;
                 break;
             case TypeOfBlock.MOVE_DOWN:
                 moveDown.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = moveDown;
                 break;
             case TypeOfBlock.MOVE_LEFT:
                 moveLeft.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = moveLeft;
                 break;
             case TypeOfBlock.MOVE_LEFT_RIGHT:
                 moveLeftRight.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = moveLeftRight;
                 break;
             case TypeOfBlock.MOVE_RIGHT:
                 moveRight.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = moveRight;
                 break;
             case TypeOfBlock.MOVE_UP:
                 moveUp.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = moveUp;
                 break;
             case TypeOfBlock.MOVE_UP_DOWN:
                 moveUpDown.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = moveUpDown;
                 break;
             case TypeOfBlock.BROKEN:
                 broken.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = broken;
                 break;
             case TypeOfBlock.KEY_RED:
                 keyRed.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = keyRed;
                 break;
             case TypeOfBlock.KEY_GREEN:
                 keyGreen.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = keyGreen;
                 break;
             case TypeOfBlock.LOCK_RED:
                 lockRed.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = lockRed;
                 break;
             case TypeOfBlock.LOCK_GREEN:
                 lockGreen.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = lockGreen;
                 break;
             case TypeOfBlock.TIME:
                 extraTime.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 gameObject = extraTime;
                 break;
             case TypeOfBlock.TELEPORT:
                 teleport.transform.position = new Vector3(block.PosX, block.PosY, block.PosZ);
                 BlockTeleportation telBlock = new BlockTeleportation();
                 foreach (BlockTeleportation tlBlock in level.blTeleportsList)
                 {
                     if (tlBlock.PosX ==  block.PosX && tlBlock.PosY == block.PosY)
                     {
                         telBlock = tlBlock;
                     }
                 }
                 teleport.GetComponent<TeleportTile>().SetTeleportCoords(telBlock.teleportToX, telBlock.teleportToY);
                 gameObject = teleport;
                 break;
         }
         return gameObject;
 }