public Grid(GridGenerationData data) { Rows = data.Rows; Columns = data.Columns; _cellsById = data.CellsById; _cellsByCoordinates = data.CellsByCoordinates; _charactersOnGrid = new List <AUnitController>(data.CounterCharacters); _enemiesOnGrid = new List <AUnitController>(data.CounterEnemies); _adjacentCellsFinder = new AdjacentCellsFinder(); }
public IGrid GenerateGrid() { var rows = _gridConfig.GetRows(); var columns = _gridConfig.GetColumns(); var cellsById = new Dictionary <int, Cell>(rows * columns); var cellsByCoordinates = new Cell[rows, columns]; var cellId = 0; for (var i = 0; i < rows; ++i) { for (var j = 0; j < columns; ++j) { var cell = GetNewCell(rows, columns, cellId, j, i); cellsById.Add(cellId, cell); ++cellId; cellsByCoordinates[i, j] = cell; } } var data = new GridGenerationData(rows, columns, cellsById, cellsByCoordinates, _counterCharacters, _counterEnemies); return(new Grid(data)); }