private static bool NoRoofAroundAndWalkable(IntVec3 cell, Map map) { if (!cell.Walkable(map)) { return(false); } if (cell.Roofed(map)) { return(false); } for (int i = 0; i < 4; i++) { IntVec3 c = new Rot4(i).FacingCell + cell; if (c.InBounds(map) && c.Roofed(map)) { return(false); } } return(true); }