Building placement constraints ============================== Todo: everything Building | Constraint ---------|----------- Docks | shallow water at the middle block and at least on ground block Range to keep building ====================== When a builder is tasked with building a building and that is completed, it will try to build another building. This not only applies to villagers present when the building is completed but also to villagers who only arrive after the building is completed. It appears to choose the closest building, where the distance is not rounded up to full tiles. When choosing whether or not a building is in range however, only full tile distances are taken into account. The range varies depending on the building size. They are however not just simple circles generated with Bresenham or Midpoint. In the following ASCII art pieces, each character represents one tile, where `o` is the tile the villager is in, `.` tiles are in range and `X` tiles are out of range. Only one tile of the building has to be in range, not all. For {1x1,3x3,5x5}-tile-buildings (all with odd size, 5x5 is wonder and largest building possible): ``` XXXXXXX.....XXXXXXX XXXX...........XXXX XXX.............XXX XX...............XX X.................X X.................X X.................X ................... ................... .........o......... ................... ................... X.................X X.................X X.................X XX...............XX XXX.............XXX XXXX...........XXXX XXXXXXX.....XXXXXXX ``` For {2x2,4x4(?)}-tile-buildings (all with even size): ``` XXXXXXXXXXXXXXXXXXX XXXXXXX.....XXXXXXX XXXXX.........XXXXX XXX.............XXX XXX.............XXX XX...............XX XX...............XX X.................X X.................X X........o........X X.................X X.................X XX...............XX XX...............XX XXX.............XXX XXX.............XXX XXXXX.........XXXXX XXXXXXX.....XXXXXXX XXXXXXXXXXXXXXXXXXX ```