Description
This is an example of how you can make and design Rougecraft Dungeon Packs.
Dungeon packs are made through a combination of config files and a datapack with structures.
Let's start with some basic rules of the dungeons. Roguecraft's dungeons are divided in to grids of rooms 19 x 19 big with the edge blocks been shared between any neighboring rooms. Rougecraft's Keystones use Minecraft functions to generate rooms so anything that you can do through a function should be possible to generate, check out the Example Pack for an idea of how it works.
In the center of each grid at Y:118 once a room has been generated there is a block called "room_active" which is how the mod indicates if a room is active or not, it turns in to a "room_deactive" block once the dungeon ends/stops.
Rooms can be larger than 1 grid if desired but in that case make sure to follow the grid format "ex: 19x38" and to manually put a "room_active" block in the center of the extended grid.
Now on to how to design a Dungeon Pack. Here is an example Dungeon Pack I threw together where you can see how they're designed.
The template provided has the namespace "testpack" and the basic rooms and boss rooms are named this "level_1_room" & "level_1_boss_room" (excluding room number and direction) so what you enter under "Dungeon Pack" is: "testpack:level_1_room" for the regular rooms & "testpack:level_1_boss_room" for the boss rooms. The Keystone generates 4 different rooms per direction (North, South, West & East) meaning you'll have to make sure your room generates correctly in these different directions by adjusting the placement in the function for that direction. The name for a function when creating it should then be something like this: "testpack" for the namespace "level_1_room" for the room set's name which should be the same for all of them and then after that you HAVE to add "_<number>_<direction>" at the end for the mod to know what function to get at what time. The name for the functions should then be: "testpack:level_1_room_<number>_<direction>" (Example: "testpack:level_1_room_2_south" or "testpack:level_1_boss_room_1_south" for the boss rooms). Then make sure to ender how many basic & boss rooms you have in this case, which is 2 & 1 for this example pack.
(This image shows the Grid Layout and where/how the "room_active" & "room_deactive" blocks are placed)


