Extracted floor-drawing-related functionality to a separate class; rewrote floor transitions using TransitionPregenerator