Add dungeon level generation
Add a dungeon level generator, which: 1. generates an infinite sequence of rectangular rooms within the dimensions of the level 2. removes any duplicates from that sequence 3. Generates a graph from the delaunay triangulation of the centerpoints of those rooms 4. Generates the minimum-spanning-tree of that delaunay triangulation, with weights given by line length in points 5. Adds back a subset (default 10-15%) of edges from the delaunay triangulation to the graph 6. Uses the resulting graph to draw corridors between the rooms, using a random point on the near edge of each room to pick the points of the corridors
This commit is contained in:
parent
6f427fe4d6
commit
e76567b9e7
20 changed files with 680 additions and 103 deletions
|
|
@ -30,14 +30,19 @@ dependencies:
|
|||
- containers
|
||||
- data-default
|
||||
- deepseq
|
||||
- fgl
|
||||
- fgl-arbitrary
|
||||
- file-embed
|
||||
- filepath
|
||||
- generic-arbitrary
|
||||
- generic-monoid
|
||||
- generic-lens
|
||||
- groups
|
||||
- hgeometry
|
||||
- hgeometry-combinatorial
|
||||
- JuicyPixels
|
||||
- lens
|
||||
- linear
|
||||
- megaparsec
|
||||
- MonadRandom
|
||||
- mtl
|
||||
|
|
@ -49,6 +54,7 @@ dependencies:
|
|||
- raw-strings-qq
|
||||
- reflection
|
||||
- Rasterific
|
||||
- streams
|
||||
- stache
|
||||
- semigroupoids
|
||||
- tomland
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue