private void FillNamedArea(int x, int y, string name, ITileLayer pathLayer, ITileLayer areaLayer) { Tile tile = pathLayer.GetActorAt(x, y); if (tile is RoomTile) { FillRoom(x, y, name, pathLayer); } else { FillArea(x, y, name, areaLayer); } }
private void ExpandRoom(int x, int y, Room room, ITileLayer pathLayer) { if (Rooms[x][y] != null) { return; } if (!(pathLayer.GetActorAt(x, y) is RoomTile)) { return; } Rooms[x][y] = room; room.Size++; ExpandRoom(x + 1, y, room, pathLayer); ExpandRoom(x, y + 1, room, pathLayer); ExpandRoom(x, y - 1, room, pathLayer); ExpandRoom(x - 1, y, room, pathLayer); }
private void ExpandArea(int x, int y, string name, ITileLayer areaLayer) { if (AreaNames[x][y] != null) { return; } Tile tile = areaLayer.GetActorAt(x, y); if (tile is AreaBorder) { return; } AreaNames[x][y] = name; ExpandArea(x + 1, y, name, areaLayer); ExpandArea(x, y + 1, name, areaLayer); ExpandArea(x, y - 1, name, areaLayer); ExpandArea(x - 1, y, name, areaLayer); }
private void ExpandArea(int x, int y, string name, ITileLayer areaLayer) { if (AreaNames[x][y] != null) return; Tile tile = areaLayer.GetActorAt(x,y); if (tile is AreaBorder) return; AreaNames[x][y] = name; ExpandArea(x + 1, y, name, areaLayer); ExpandArea(x, y + 1, name, areaLayer); ExpandArea(x, y - 1, name, areaLayer); ExpandArea(x - 1, y, name, areaLayer); }
private void ExpandRoom(int x, int y, Room room, ITileLayer pathLayer) { if (Rooms[x][y] != null) return; if (!(pathLayer.GetActorAt(x, y) is RoomTile)) return; Rooms[x][y] = room; room.Size++; ExpandRoom(x + 1, y, room, pathLayer); ExpandRoom(x, y + 1, room, pathLayer); ExpandRoom(x, y - 1, room, pathLayer); ExpandRoom(x - 1, y, room, pathLayer); }