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
|
|
@ -18,11 +18,7 @@ let
|
|||
overrides = (self: super: {
|
||||
ghc = super.ghc // { withPackages = super.ghc.withHoogle; };
|
||||
ghcWithPackages = self.ghc.withPackages;
|
||||
# eww https://github.com/NixOS/nixpkgs/issues/16394
|
||||
generic-arbitrary = pkgs.haskell.lib.appendPatch
|
||||
super.generic-arbitrary
|
||||
[ ./build/generic-arbitrary-export-garbitrary.patch ];
|
||||
});
|
||||
} // (import ./haskell-overlay.nix { inherit nixpkgs; }) self super);
|
||||
}
|
||||
else packageSet
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue