// This is tricky. we want to choose an item that can be brought to the job site, but that's not
// necessarily the same as job->pos. it could be many tiles off in any direction (e.g. for bridges), or
// up or down (e.g. for stairs). For now, just return if the item is on a walkable tile.
static bool isAccessible(color_ostream& out, df::item* item) {
but this isn't good enough in many cases. We should check directly orthogonal tiles (and maybe further away for floors/bridges built over empty space)
a possibly related issue: buildingplan does not respect civilian alerts when active, and will assign materials which cannot be reached due to an active civilian alert, which stalls building
from the code:
but this isn't good enough in many cases. We should check directly orthogonal tiles (and maybe further away for floors/bridges built over empty space)
example from https://dffd.bay12games.com/file.php?id=17139
the building on the left chooses the inaccessible item on the right. they are both on walkable tiles, but in separate walkability groups.