private void OnInitializationStateEnter() { var cellCreator = new DefaultCellCreator(); var itemCreator = new DefaultItemCreator(App.Instance.StaticDataProvider); var xLength = LevelData.Cells.GetLength(0); var yLength = LevelData.Cells.GetLength(1); Cells = new Cell[xLength, yLength]; for (var x = 0; x < xLength; x++) { for (var y = 0; y < yLength; y++) { var cellType = LevelData.Cells[x, y]; var position = new Vector2Int(x, y); var cell = cellCreator.Create(cellType, transform, position); if (cellType != CellType.Obstacle) { var randomItem = itemCreator.CreateRandom(cell.transform); randomItem.OnMove += OnItemDragged; cell.SetItem(randomItem); } Cells[x, y] = cell; } } Camera.main.transform .SetXPosition((xLength - 1) / 2f) .SetYPosition((yLength - 1) / 2f); SetState(CellsFieldState.DestroyingMatches); }
private void SpawnNewItems() { var itemCreator = new DefaultItemCreator(App.Instance.StaticDataProvider); var spawnCells = Cells.GetByType(CellType.SpawnPoint); foreach (var spawnCell in spawnCells) { if (spawnCell.Item != null) { continue; } var item = itemCreator.CreateRandom(spawnCell.transform); item.OnMove += OnItemDragged; spawnCell.SetItem(item); } }