private void FillWithCube(int m, int n, TileStatus fill_color) { LevelController.instance.SetTileFilled(new Vector2Int(m, n)); Vector2Int position = ConvertMatrixIndexToPosition(new Vector2Int(m, n)); GameObject newCube = FillingCubePool.instance.GetFillingCube(); newCube.transform.position = new Vector3(position.x, 0.45f, position.y); newCube.transform.parent = cubesParent; }
private void BoundaryFill(int m, int n, TileStatus fill_color, TileStatus boundary_color) { if (m >= M || m < 0 || n >= N || n < 0) { return; } if (LevelController.instance.IsTileEmpty(new Vector2Int(m, n))) { FillWithCube(m, n, fill_color); BoundaryFill(m + 1, n, fill_color, boundary_color); BoundaryFill(m, n + 1, fill_color, boundary_color); BoundaryFill(m - 1, n, fill_color, boundary_color); BoundaryFill(m, n - 1, fill_color, boundary_color); } }