@quixoticdicker Just adding you so you can look a bit at the changes and maybe get a feel for what's going on.
Commit Notes
Add top-level Infestation and InfestationLibrary objects
Include some serialization attributes
Use better style for reflective AlgorithmParams UTs
Add dungen-lib/doc folder along with relational DB schema
Translate Library E/R Document to reasonable ORM Library, supporting
deserialization of SQL and an aux method to get test Library
Add Onions and Flagons example SQL database, as a test Library
Promote DungeonTiles.Category to first-class enum
Move tile Groups to Dungeon-level member, rather than Tiles
Required changing a lot of the DataContract attributes, to make sure
everything worked properly. Saves space, and fixes some latent bugs
we would have run into later.
Introduces new type, TileGroupInfo, which contains a categorized
group of tiles. This is a minor design change inasmuch as categories
and groups were treated separately in the past. Some algorithms will
need to be updated to handle this, depending on what they were doing
with respect to groups
Allow Infestations and Libraries to be used by Generator module
Update UTs to include Infestation & Test Library
Make some DataContract serialization fixes/improvements, including
adding some shim collections to help with serialization.
The AlgorithmRunContextBase and Generator interfacing still needs a
lot of cleanup. For now it works, but yuck.
Misc. cleanup and add a couple helper functions
TODOs
More UTs for Infestation
Second pass at Serialization for Library
Implement infestation algorithms
Lots of XML documentation still missing
Unit testing & boilerplate test file/DB
Serialization for local (non DB) library files
RecursiveBacktracker might not be handling groups right when
"consolidating" halls with rooms.
Overview
Closes #16. Closes #17. Closes #19. Closes #20. Closes #23.
@quixoticdicker Just adding you so you can look a bit at the changes and maybe get a feel for what's going on.
Commit Notes
TileGroupInfo
, which contains a categorized group of tiles. This is a minor design change inasmuch as categories and groups were treated separately in the past. Some algorithms will need to be updated to handle this, depending on what they were doing with respect to groups