Ejemplo n.º 1
0
    // Populate board from level data file
    public void InitGamePieces(Pack pack, Pack.Level level)
    {
        ColorManager colorManager = FindObjectOfType <ColorManager>();

        colorManager.SetPackIndex(pack.packId);
        SetStartPositions();
        gamePieces = new GamePiece[BOARD_SIZE_X, BOARD_SIZE_Z];
        Pack.Level.GP_LUT[,] pieceLU;
        pieceLU = level.pieceLU;
        for (int x = 0; x < BOARD_SIZE_X; x++)
        {
            for (int z = 0; z < BOARD_SIZE_Z; z++)
            {
                gamePieces[x, z] = Instantiate(GamePieceFromLevelLUT(pieceLU[x, z]),
                                               new Vector3(xStartPos + adjacentSpacing * (float)x, 0, zStartPos + adjacentSpacing * (float)z),
                                               Quaternion.identity);
                gamePieces[x, z].InitMaterials(colorManager.GetMaterials());
                if (gamePieces[x, z].pieceType == GamePiece.PieceType.START)
                {
                    startPiece = gamePieces[x, z] as StartPiece;
                }
                if (gamePieces[x, z].pieceType == GamePiece.PieceType.END)
                {
                    endPieceList.Add(gamePieces[x, z] as EndPiece);
                }
                gamePieces[x, z].XPos = x;
                gamePieces[x, z].ZPos = z;
                gamePieces[x, z].transform.SetParent(transform, true);
            }
        }
        StartCoroutine(UpdatePathsAndCheckForWin());
    }
Ejemplo n.º 2
0
 public void Clear()
 {
     for (int x = 0; x < BOARD_SIZE_X; x++)
     {
         for (int z = 0; z < BOARD_SIZE_Z; z++)
         {
             DestroyImmediate(gamePieces[x, z].gameObject);
         }
     }
     startPiece = null;
     endPieceList.Clear();
 }