public static EnvironmentFillInfo getCrateriaEnvironmentFillInfo() { EnvironmentFillInfo efi = new EnvironmentFillInfo(); efi.EMPTY = 3; efi.EMPTY_BOTTOMLEFT = 13; efi.EMPTY_BOTTOMRIGHT = 14; efi.EMPTY_TOPLEFT = 8; efi.EMPTY_TOPRIGHT = 9; efi.FILL = 6; efi.FILL_BOTTOM = 1; efi.FILL_BOTTOMLEFT = 2; efi.FILL_BOTTOMRIGHT = 0; efi.FILL_LEFT = 7; efi.FILL_RIGHT = 5; efi.FILL_TOP = 11; efi.FILL_TOPLEFT = 12; efi.FILL_TOPRIGHT = 10; efi.OTHER = 4; return efi; }
public static void fill(Point p, Dictionary<Point, bool> tilesToFix, int[,] tiles, EnvironmentFillInfo efi) { if (tilesToFix.ContainsKey(p) && tilesToFix[p] == true) { return; } if (p.X < 0 || p.Y < 0 || p.X >= Area.WIDTH_IN_TILES || p.Y >= Area.HEIGHT_IN_TILES) { return; } tiles[p.X, p.Y] = efi.FILL; tilesToFix[p] = true; fill(new Point(p.X - 1, p.Y), tilesToFix, tiles, efi); fill(new Point(p.X + 1, p.Y), tilesToFix, tiles, efi); fill(new Point(p.X, p.Y - 1), tilesToFix, tiles, efi); fill(new Point(p.X, p.Y + 1), tilesToFix, tiles, efi); }