Dungeon Architect  17.0.0
DungeonArchitect.Builders.Grid.GridDungeonBuilder Class Reference

A Dungeon Builder implementation that builds a grid based dungeon.
More...

Inheritance diagram for DungeonArchitect.Builders.Grid.GridDungeonBuilder:
DungeonArchitect.DungeonBuilder

Public Member Functions

override void BuildDungeon (DungeonConfig config, DungeonModel model)
 Builds the dungeon More...
 
void BuildCellsWithDistribution ()
 
void BuildCellsWithSeparation ()
 builds the cells in the dungeon More...
 
void TriangulateRooms ()
 Triangulates the rooms identified in the previous phase This is required to connect the corridors.
Delauney triangulation is used to find nice evenly spaced triangles for good connections More...
 
override void OnVolumePositionModified (Volume volume, out IntVector newPositionOnGrid, out IntVector newSizeOnGrid)
 Implementations should override this so that the new logical scale and position is set based on the volume's transformation More...
 
void GenerateAdjacencyLookup ()
 
override void EmitMarkers ()
 Emit markers defined by this builder More...
 
bool V3Equal (Vector3 a, Vector3 b)
 
override void DebugDraw ()
 
- Public Member Functions inherited from DungeonArchitect.DungeonBuilder
virtual void OnDestroyed ()
 
virtual bool IsThemingSupported ()
 
virtual bool DestroyDungeonOnRebuild ()
 
virtual void BuildNonThemedDungeon (DungeonSceneProvider sceneProvider, IDungeonSceneObjectInstantiator objectInstantiator)
 
virtual void DebugDrawGizmos ()
 
void EmitCustomMarkers ()
 Emit markers defined by the user (implementation of DungeonMarkerEmitter) More...
 
PropSocket EmitMarker (string SocketType, Matrix4x4 transform, IntVector gridPosition, int cellId)
 
PropSocket EmitMarker (string SocketType, Matrix4x4 transform, IntVector gridPosition, int cellId, object metadata)
 
void EmitMarker (string SocketType, Matrix4x4 _transform, int count, Vector3 InterOffset, IntVector gridPosition, int cellId, Vector3 LogicalToWorldScale)
 
void EmitMarker (string SocketType, Matrix4x4 _transform, int count, Vector3 InterOffset, IntVector gridPosition, int cellId, Vector3 LogicalToWorldScale, object metadata)
 

Static Public Member Functions

static bool Seperate (GridDungeonModel gridModel)
 Separates the cells built in the previous phase More...
 

Protected Member Functions

override LevelMarkerList CreateMarkerListObject (DungeonConfig config)
 
- Protected Member Functions inherited from DungeonArchitect.DungeonBuilder
void ClearSockets ()
 
void ProcessMarkerOverrideVolumes ()
 

Additional Inherited Members

- Public Attributes inherited from DungeonArchitect.DungeonBuilder
bool asyncBuild = false
 
long maxBuildTimePerFrame = 32
 
Transform asyncBuildStartPosition
 
- Protected Attributes inherited from DungeonArchitect.DungeonBuilder
DungeonConfig config
 
PMRandom nrandom
 
PMRandom random
 
DungeonModel model
 
LevelMarkerList markers = new LevelMarkerList()
 
Blackboard blackboard = new Blackboard()
 
- Properties inherited from DungeonArchitect.DungeonBuilder
bool IsLayoutBuilt [get]
 
LevelMarkerList Markers [get]
 
DungeonModel Model [get]
 
Blackboard Blackboard [get]
 

Detailed Description

A Dungeon Builder implementation that builds a grid based dungeon.

It is based on the awesome algorithm described here by the TinyKeep game's author https://www.reddit.com/r/gamedev/comments/1dlwc4/procedural_dungeon_generation_algorithm_explained/

Definition at line 114 of file GridDungeonBuilder.cs.

Member Function Documentation

◆ BuildCellsWithSeparation()

void DungeonArchitect.Builders.Grid.GridDungeonBuilder.BuildCellsWithSeparation ( )

builds the cells in the dungeon

Definition at line 343 of file GridDungeonBuilder.cs.

◆ BuildDungeon()

override void DungeonArchitect.Builders.Grid.GridDungeonBuilder.BuildDungeon ( DungeonConfig  config,
DungeonModel  model 
)
virtual

Builds the dungeon

Parameters
configThe dungeon configuration
modelThe dungeon model

Reimplemented from DungeonArchitect.DungeonBuilder.

Definition at line 179 of file GridDungeonBuilder.cs.

◆ EmitMarkers()

override void DungeonArchitect.Builders.Grid.GridDungeonBuilder.EmitMarkers ( )
virtual

Emit markers defined by this builder

Reimplemented from DungeonArchitect.DungeonBuilder.

Definition at line 2601 of file GridDungeonBuilder.cs.

◆ OnVolumePositionModified()

override void DungeonArchitect.Builders.Grid.GridDungeonBuilder.OnVolumePositionModified ( Volume  volume,
out IntVector  newPositionOnGrid,
out IntVector  newSizeOnGrid 
)
virtual

Implementations should override this so that the new logical scale and position is set based on the volume's transformation

Parameters
volume
newPositionOnGrid
newSizeOnGrid

Reimplemented from DungeonArchitect.DungeonBuilder.

Definition at line 2541 of file GridDungeonBuilder.cs.

◆ Seperate()

static bool DungeonArchitect.Builders.Grid.GridDungeonBuilder.Seperate ( GridDungeonModel  gridModel)
static

Separates the cells built in the previous phase

Parameters
gridModel

Definition at line 824 of file GridDungeonBuilder.cs.

◆ TriangulateRooms()

void DungeonArchitect.Builders.Grid.GridDungeonBuilder.TriangulateRooms ( )

Triangulates the rooms identified in the previous phase This is required to connect the corridors.
Delauney triangulation is used to find nice evenly spaced triangles for good connections

Parameters
gridModel

Definition at line 899 of file GridDungeonBuilder.cs.


The documentation for this class was generated from the following file: