From e76567b9e776070812838828d8de8220c2a461e7 Mon Sep 17 00:00:00 2001 From: Griffin Smith Date: Mon, 30 Dec 2019 11:31:56 -0500 Subject: 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 --- package.yaml | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'package.yaml') diff --git a/package.yaml b/package.yaml index 72eb0d32a669..32a402f3fdad 100644 --- a/package.yaml +++ b/package.yaml @@ -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 -- cgit 1.4.1