I second CinnibarMan: The whirlpool design, especially with stairs in the lobbies, is really nice. With some clever arrangement, a 2x2 cluster (4 + 3*4 + 2 *4 = 24 rooms) will give you all of your housing in a single 2x2 grid square level. I tend to stick a dining room over each one of the clusters, but I'm not sure if that adds or detracts from the efficiency. I've also got an autohotkey script to generate a slightly modified version, if anyone is interested. Fractal designs are awesome, and even more awesome when they don't give you carpal tunnel setting them up.
;Just bind a key to pinwheel_tile to generate an x by y lobby cluster of rooms
pinwheel_tile(x,y)
{
loop,%x%
{
loop,%y%
{
pinwheel_segments("{NumPadUp}","{NumPadDown}","{NumPadLeft}","{NumPadRight}",true,true,true,true)
move("{NumPadRight}",9)
}
loop,%y%
{
move("{NumPadLeft}",9)
}
move("{NumPadDown}",9)
}
loop,%x%
move("{NumPadUp}",9)
}
pinwheel_segments(up,down,left,right,doup,doright,dodown,doleft)
{
if(doup)
{
pinwheel_arm(up,down,left,right)
}
if(doright)
{
pinwheel_arm(right,left,up,down)
}
if(dodown)
{
pinwheel_arm(down,up,right,left)
}
if(doleft)
{
pinwheel_arm(left,right,down,up)
}
if(doup && doright && doleft && dodown)
{
move(up,1)
move(right,1)
stairify()
move(down,2)
stairify()
move(left,2)
stairify()
move(up,2)
stairify()
move(down,1)
move(right,1)
}
}
pinwheel_arm(up,down,left,right)
{
dig(up,5)
dig(right,3)
move(left,1)
move(up,1)
dig(down,2)
move(left,2)
dig(left,3)
move(up,1)
move(right,1)
dig(down,2)
move(right,3)
move(down,1)
dig(down,2)
move(left,1)
}
stairify()
{
send {i}
send {Enter}
send {Enter}
send <
send {Enter}
send {Enter}
send >
}
dig(dir,number)
{
send d
send {Enter}
move(dir, number)
send {Enter}
}
move(dir,number)
{
loop {
if number <= 0
{
break
}
send %dir%
number--
}
}