To-do List
SolarLune opened this issue · comments
-
Add pathfinding to allow the user to be able to ensure connectivity between rooms. To be specific, this should probably be a standalone library that dngn makes use of to ensure connectivity, since pathfinding is pretty useful on its own.
-
Add a new method of Room generation making use of this. It would randomly place Rooms of varying sizes, and connect them. This is now added as of v0.2.
-
Add methods to customize the shape of a Room. This would include skewing a Room, shaving off a corner, and inverting a Room.
-
Room.Outline() should be able to outline a Room's internal values, not just the border of the Room (or at least, there should be a function that does this). Basically, it should be possible to turn:
0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0
0, 0, 1, 1, 0, 0
0, 0, 1, 1, 0, 0
0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0
into
0, 0, 0, 0, 0, 0
0, 2, 2, 2, 2, 0
0, 2, 1, 1, 2, 0
0, 2, 1, 1, 2, 0
0, 2, 2, 2, 2, 0
0, 0, 0, 0, 0, 0
This is now done through Selections; you can just select the 1's and then expand the selection outwards.
-
Add method to Crop out a Selection in space using X, Y, W, and H values.
-
Add methods to Add and Remove Selections from each other to easily select just the areas you're looking for.
-
Add method to overlay / copy / place Rooms into each other. This could be useful if doing random generation using pre-made Room pieces.
-
Add method to define entry / exit points to Rooms and have dngn randomly generate a "master" random dungeon map by randomly selecting and copying these pre-made Room pieces together.
-
Fix Selection.Degrade() - it should now degrade all cells, rather than just those of a specific selection, as you can select them using By().
-
Fix Map.GenerateBSP() - it doesn't work well with doorValues of 0.
Not sure if the 1st point is about this, or not, but: does the dngn package allow, or would you consider for it to allow, a "XCOM-2-like/DeadCells-like" approach (i.e. gluing random "fragments" of rooms together, at predefined join-points, to build a room)? Probably more or less similar to how "special rooms" are handled in NetHack/etc.?
Hello! dngn doesn't currently allow it, but the last To-do point would be to make it possible to copy / overlay Rooms into each other to easily allow you to do that.