Floor Generation Overview: Difference between revisions
visual aids |
No edit summary |
||
Line 4: | Line 4: | ||
Priority -6 | Priority -6 | ||
Examples: | |||
* MapDataStep | |||
* MapEffectStep | |||
* MapNameIDStep | |||
* DefaultMapStatusStep | |||
== Grid Creation == | == Grid Creation == | ||
Line 10: | Line 17: | ||
[[File:DungeonProcess_Cells.png|frameless]] | [[File:DungeonProcess_Cells.png|frameless]] | ||
Examples: | |||
* InitGridPlanStep | |||
== Grid Path Generation == | == Grid Path Generation == | ||
Line 16: | Line 27: | ||
[[File:DungeonProcess_Cells_Chosen.png|frameless]] | [[File:DungeonProcess_Cells_Chosen.png|frameless]] | ||
Examples: | |||
* GridPathBranch | |||
* GridPathCircle | |||
* GridPathTwoSides | |||
* GridPathGrid | |||
* GridPathBeetle | |||
* GridPathTiered | |||
* SetGridDefaultsStep | |||
* ConnectGridBranchStep | |||
* CombineGridRoomStep | |||
== Room List Creation == | == Room List Creation == | ||
Line 21: | Line 45: | ||
Priority -3 | Priority -3 | ||
Examples: | |||
* InitFloorPlanStep | |||
* DrawGridToFloorStep | |||
[[File:DungeonProcess_Cells_To_Rooms.png|frameless]] | [[File:DungeonProcess_Cells_To_Rooms.png|frameless]] | ||
[[File:DungeonProcess_Cells_To_Rooms_Halls.png|frameless]] | [[File:DungeonProcess_Cells_To_Rooms_Halls.png|frameless]] | ||
[[File:DungeonProcess_Rooms_Halls.png|frameless]] | [[File:DungeonProcess_Rooms_Halls.png|frameless]] | ||
== Room List Generation == | |||
Priority -2 | |||
Examples: | |||
* FloorPathBranch | |||
== Tiles Creation == | == Tiles Creation == | ||
Line 33: | Line 66: | ||
Priority -1 | Priority -1 | ||
Examples: | |||
* InitTilesStep | |||
* DrawFloorToTileStep | |||
[[File:DungeonProcess_Rooms_To_Tiles.png|frameless]] | [[File:DungeonProcess_Rooms_To_Tiles.png|frameless]] | ||
[[File:DungeonProcess_Rooms_Halls_To_Tiles.png|frameless]] | [[File:DungeonProcess_Rooms_Halls_To_Tiles.png|frameless]] | ||
[[File:DungeonProcess_Floor.png|frameless]] | [[File:DungeonProcess_Floor.png|frameless]] | ||
== Tiles Generation == | |||
Priority 0 | |||
Examples: | |||
* SpecificTilesStep | |||
== Spawn Tables == | == Spawn Tables == | ||
Priority 1 | Priority 1 | ||
Examples: | |||
* MoneySpawnStep | |||
* ItemSpawnStep (Priority 1.1) | |||
* MobSpawnStep (Priority 1.2) | |||
* TileSpawnStep (Priority 1.3) | |||
== Exits == | == Exits == | ||
Priority 2 | Priority 2 | ||
Examples: | |||
* FloorStairsStep | |||
== Water == | == Water == | ||
Priority 3 | Priority 3 | ||
Examples: | |||
* PerlinWaterStep | |||
* BlobWaterStep | |||
== Textures == | == Textures == | ||
Line 57: | Line 116: | ||
Priority 4 | Priority 4 | ||
== Spawns == | Used to be here because textures were actually placed here, but now only assigns textures to the map itself and lets the map compute them after ALL steps are done. Thus, this step is the least dependent on its current position in the steps. | ||
Examples: | |||
* MapTextureStep | |||
* MapDictTextureStep | |||
== Tile Spawns == | |||
Priority 5 | Priority 5 | ||
== | Examples: | ||
* RandomSpawnStep | |||
* DueSpawnStep | |||
* TerminalSpawnStep | |||
== Spawns == | |||
Priority 6 | Priority 6 | ||
Examples: | |||
* All steps in Tile Spawns | |||
* PlaceRandomMobsStep | |||
* PlaceDisconnectedMobsStep | |||
* PlaceNoLocMobsStep | |||
== Debug Checks == | == Debug Checks == | ||
Line 69: | Line 148: | ||
Priority 7 | Priority 7 | ||
These gen steps are used to check the dungeon for issues, and throw an error if they're found. Useful for [[Stress Testing Dungeons|stress testing]]. | |||
Examples: | |||
* DetectIsolatedStairsStep | |||
* DetectTileStep | |||
[[Category:Modding Data]] | [[Category:Modding Data]] |
Revision as of 02:33, 12 March 2023
This page goes over the steps of dungeon generation. All steps are ordered by the priority in which they are executed. A lower number means a step will execute earlier. While these priority numbers do not need to be obeyed for modding, they are the numbers that base PMDO uses.
Floor Data
Priority -6
Examples:
- MapDataStep
- MapEffectStep
- MapNameIDStep
- DefaultMapStatusStep
Grid Creation
Priority -5
Examples:
- InitGridPlanStep
Grid Path Generation
Priority -4
File:DungeonProcess Cells Chosen.png
Examples:
- GridPathBranch
- GridPathCircle
- GridPathTwoSides
- GridPathGrid
- GridPathBeetle
- GridPathTiered
- SetGridDefaultsStep
- ConnectGridBranchStep
- CombineGridRoomStep
Room List Creation
Priority -3
Examples:
- InitFloorPlanStep
- DrawGridToFloorStep
File:DungeonProcess Cells To Rooms.png File:DungeonProcess Cells To Rooms Halls.png File:DungeonProcess Rooms Halls.png
Room List Generation
Priority -2
Examples:
- FloorPathBranch
Tiles Creation
Priority -1
Examples:
- InitTilesStep
- DrawFloorToTileStep
File:DungeonProcess Rooms To Tiles.png File:DungeonProcess Rooms Halls To Tiles.png File:DungeonProcess Floor.png
Tiles Generation
Priority 0
Examples:
- SpecificTilesStep
Spawn Tables
Priority 1
Examples:
- MoneySpawnStep
- ItemSpawnStep (Priority 1.1)
- MobSpawnStep (Priority 1.2)
- TileSpawnStep (Priority 1.3)
Exits
Priority 2
Examples:
- FloorStairsStep
Water
Priority 3
Examples:
- PerlinWaterStep
- BlobWaterStep
Textures
Priority 4
Used to be here because textures were actually placed here, but now only assigns textures to the map itself and lets the map compute them after ALL steps are done. Thus, this step is the least dependent on its current position in the steps.
Examples:
- MapTextureStep
- MapDictTextureStep
Tile Spawns
Priority 5
Examples:
- RandomSpawnStep
- DueSpawnStep
- TerminalSpawnStep
Spawns
Priority 6
Examples:
- All steps in Tile Spawns
- PlaceRandomMobsStep
- PlaceDisconnectedMobsStep
- PlaceNoLocMobsStep
Debug Checks
Priority 7
These gen steps are used to check the dungeon for issues, and throw an error if they're found. Useful for stress testing.
Examples:
- DetectIsolatedStairsStep
- DetectTileStep