private void CreateLevel(Grid grid, DifficultyEnum difficulty) { GenerateShelfGrid(grid); List <Tile> tiles = GridTilingService.GetTilesForGrid(grid, difficulty); // Randomly rotate tiles than can be rotated to get a little variety at bags positions at the cart List <Tile> randomlyRotatedTiles = tiles.ConvertAll( tile => tile.CanBeRotated() && (Rnd.Next(2) == 1) ? new Tile { Height = tile.Width, Width = tile.Height } : tile ); List <TileData> arrangedTiles = TilesCombinatorService.PlaceTilesOnCart(randomlyRotatedTiles, cartGridWidth); GenerateBags(arrangedTiles); }
private void GenerateShelfGrid(Grid grid) { generatedGridElements = new List <GameObject>(); foreach (GridPoint point in grid.GetEmptyPoints()) { // Mirror grid point down because we're making it grow downward Vector2 pointVector = point.ToVector() * new Vector2(1, -1); GameObject gridElement = Instantiate( gridElementPrefab, (Vector2)gridContainer.transform.position + pointVector, gridContainer.transform.rotation, gridContainer.transform ); gridElement.GetComponent <GridElementController>().interactionManager = _interactionManager; generatedGridElements.Add(gridElement); } }