Not as much work has been done as I planned. The easiest part was adding windows to current rooms, simple detection of collision in the second pass and here we go. The more challenging was looking for a little bug in calculation of entrance, but from now on we won’t encounter a situation where doors are blocked by wall from another room :)
So to sum it up, the current process of house generation looks like:
Build space map
Randomize base floor with checking in space map
Check collisions of each room and add windows.
Here is how my space map looks like:
0 are free spaces
1 are occupied by room
2 represents an entrance that is not connected
0 comments