Floor Generation Overview: Difference between revisions

From PMDOWiki
IDK (talk | contribs)
visual aids
IDK (talk | contribs)
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


== Room List Generation ==
Examples:


Priority -2
* 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


== Tiles Generation ==
Examples:


Priority 0
* 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


== Money ==
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

File:DungeonProcess Cells.png

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