Esempio n. 1
0
    public eStateOfTetriminoPos GetStateOfThisPos(Vector2Int _futurePos, Matrix4x4 _tetriminoConfiguration)
    {
        foreach(Vector2Int pos in m_currentTetrimino.GetCellsPositions(_futurePos, _tetriminoConfiguration))
        {
            if (PositionIsInsideGrid(pos))
            {
                if (m_gridTab[pos.x, pos.y].GetCellType() == Cell.eCellType.BUSY_CELL) //don't go into another tetri block
                    return eStateOfTetriminoPos.TOUCHING_BUSYCELL;
            }
            else
            {
                if (pos.x < 0)
                    return eStateOfTetriminoPos.OUT_LEFT;
                else if (pos.x > m_gridSizeX - 1)
                    return eStateOfTetriminoPos.OUT_RIGHT;
                else if (pos.y < 0)
                    return eStateOfTetriminoPos.OUT_BOTTOM;
            }
        }

        return eStateOfTetriminoPos.INSIDE_BLANK;
    }