With the map graph patterns that were added last week, I can now break maps down into key components (clusters of optional/required rooms, junctions, etc.). These components are more useful for determining where to place content than individual rooms. They’re also more useful for generated history event locations, though I don’t have this functionality fully working yet.
I spent the rest of my time refactoring some of the map generation code. I consolidated the map graph pattern classes into a single class. I consolidated many methods for manipulating map blocks into a single static class. For these changes, I employed the modified data-oriented programming paradigm I now often use when writing new code or refactoring. The main problem I was trying to solve with this week’s refactoring was that it had become difficult to find map generation utility methods because they were spread out across many classes. Fortunately, and surprisingly, the refactoring didn’t break anything.