Dungeon Generator  1.6.6
Procedural 3D dungeon generator plugin for Unreal Engine 5. Easy generation of levels, mini-maps and missions.
ADungeonGenerateBase Class Reference

#include <DungeonGenerateBase.h>

Inheritance diagram for ADungeonGenerateBase:
ADungeonGenerateActor ADungeonGeneratedActor

Public Member Functions

 ADungeonGenerateBase (const FObjectInitializer &initializer)
 
virtual ~ADungeonGenerateBase () override=default
 
bool IsGenerated () const noexcept
 
virtual void Dispose (const bool flushStreamLevels)
 
FVector GetStartLocation () const
 
FBox GetStartBoundingBox () const
 
FVector GetGoalLocation () const
 
FBox CalculateBoundingBox () const
 
FVector2D GetLongestStraightPath () const noexcept
 
uint32_t CalculateTextureWidthHeight () const
 
UTexture2D * GenerateMiniMapTextureWithSize (uint32_t &worldToTextureScale, uint32_t textureWidthHeight, uint32_t currentLevel) const
 
UTexture2D * GenerateMiniMapTextureWithScale (uint32_t &worldToTextureScale, uint32_t &textureWidth, uint32_t dotScale, uint32_t currentLevel) const
 
void AddVegetationInstancedMesh (const FTransform &transform, UStaticMesh *staticMesh, const FInt32Interval &cullDistances)
 
void BeginVegetationTransaction ()
 
void EndVegetationTransaction ()
 
void VegetationDestroyAll ()
 
uint32_t CalculateCRC32 () const noexcept
 

Static Public Member Functions

static const FName & GetDungeonGeneratorTag ()
 
static const FName & GetDungeonGeneratorTerrainTag ()
 
static AActor * SpawnActorImpl (UWorld *world, UClass *actorClass, const FString &folderPath, const FTransform &transform, const FActorSpawnParameters &actorSpawnParameters)
 
static UDungeonComponentActivatorComponentFindOrAddComponentActivatorComponent (AActor *actor)
 
static UTexture2D * CreateTexture (uint32_t textureWidthHeight, TConstArrayView64< uint8 > pixels=TConstArrayView64< uint8 >()) noexcept
 
static UTexture2D * DuplicateTexture (UPackage *package, const FName &name, const EObjectFlags flags, const UTexture2D *sourceTexture) noexcept
 

Protected Types

using AddStaticMeshEvent = std::function< void(UStaticMesh *, const FTransform &)>
 
using AddPillarStaticMeshEvent = std::function< void(UStaticMesh *, const FTransform &)>
 

Protected Member Functions

bool BeginDungeonGeneration (const UDungeonGenerateParameter *parameter, const bool hasAuthority)
 
void EndDungeonGeneration ()
 
std::shared_ptr< const dungeon::Generator > GetGenerator () const
 
void BeginGeneration ()
 
bool OnQueryAisleGeneration (const FVector &center, const int32 identifier, const EDungeonDirection direction)
 
void EndGeneration (UDungeonRandom *synchronizedRandom, const UDungeonAisleGridMap *aisleGridMap)
 
virtual void OnPreDungeonGeneration ()
 
virtual void OnPostDungeonGeneration (const bool result)
 
void OnAddFloor (const AddStaticMeshEvent &function)
 
void OnAddSlope (const AddStaticMeshEvent &function)
 
void OnAddWall (const AddStaticMeshEvent &function)
 
void OnAddRoof (const AddStaticMeshEvent &function)
 
void OnAddPillar (const AddPillarStaticMeshEvent &function)
 
void OnAddCatwalk (const AddStaticMeshEvent &function)
 
virtual void FitNavMeshBoundsVolume ()
 
void CollectPlayerStartExceptPlayerStartPIE (TArray< APlayerStart * > &startPoints)
 
void MovePlayerStart (const TArray< APlayerStart * > &startPoints)
 
void FlushLoadStreamLevels ()
 
void AsyncLoadStreamLevels (const bool bShouldBlockOnLoad)
 
void UnloadStreamLevels (const bool flushStreamLevels)
 
virtual void EndPlay (const EEndPlayReason::Type EndPlayReason) override
 

Static Protected Member Functions

static void DestroySpawnedActors (UWorld *world)
 

Protected Attributes

FDungeonGeneratorActorNotifyGenerationSuccessSignature OnGenerationSuccess
 
FDungeonGeneratorActorNotifyGenerationFailureSignature OnGenerationFailure
 
FDungeonGenerateBaseOnBeginGenerateSignature OnBeginGeneration
 
FDungeonGenerateBaseOnEndGenerateSignature OnEndGeneration
 
TMap< uint32, FDungeonVegetationClustermVegetationCluster
 
const UDungeonGenerateParametermParameter
 
UDungeonAisleGridMapmAisleGridMap
 

Friends

class UDungeonMiniMapTextureLayer
 

Detailed Description

This is a collection of dungeon generation functions common to both runtime and editor. Cannot be spawned or placed because it is a virtual class. Please use derived classes to generate instances.

ランタイム、エディタ共通のダンジョン生成機能をまとめています。 仮想クラスなのでスポーンや配置をする事ができません。 インスタンスを生成する場合は派生クラスを利用して下さい。

Constructor & Destructor Documentation

◆ ADungeonGenerateBase()

ADungeonGenerateBase::ADungeonGenerateBase ( const FObjectInitializer &  initializer)
explicit

constructor コンストラクタ

◆ ~ADungeonGenerateBase()

virtual ADungeonGenerateBase::~ADungeonGenerateBase ( )
overridevirtualdefault

destructor デストラクタ

Member Function Documentation

◆ AddVegetationInstancedMesh()

void ADungeonGenerateBase::AddVegetationInstancedMesh ( const FTransform &  transform,
UStaticMesh *  staticMesh,
const FInt32Interval &  cullDistances 
)

InstancedMeshComponentを生成

◆ BeginDungeonGeneration()

bool ADungeonGenerateBase::BeginDungeonGeneration ( const UDungeonGenerateParameter parameter,
const bool  hasAuthority 
)
protected

Begin Generate dungeon After generation is complete, be sure to call EndDungeonGeneration.

ダンジョン生成開始 生成完了後、必ずEndDungeonGenerationを呼び出してください。

Parameters
[in]parameterUDungeonGenerateParameter
[in]hasAuthorityHasAuthority
Returns
If false, generation fails

◆ BeginGeneration()

void ADungeonGenerateBase::BeginGeneration ( )
protected

This event is called at the start of the Create function Create関数開始時に呼び出されるイベントです

◆ BeginVegetationTransaction()

void ADungeonGenerateBase::BeginVegetationTransaction ( )

大量のInstancedMeshの操作を開始

◆ CalculateBoundingBox()

FBox ADungeonGenerateBase::CalculateBoundingBox ( ) const

Get a bounding box covering the entire generated dungeon

◆ CalculateCRC32()

uint32_t ADungeonGenerateBase::CalculateCRC32 ( ) const
noexcept

Calculate CRC32

Returns
CRC32

◆ CollectPlayerStartExceptPlayerStartPIE()

void ADungeonGenerateBase::CollectPlayerStartExceptPlayerStartPIE ( TArray< APlayerStart * > &  startPoints)
protected

PlayerStartPIEアクターを除くPlayerStartアクターを収集してstartPointsに記録します

◆ Dispose()

void ADungeonGenerateBase::Dispose ( const bool  flushStreamLevels)
virtual

Dispose dungeon

◆ DuplicateTexture()

UTexture2D * ADungeonGenerateBase::DuplicateTexture ( UPackage *  package,
const FName &  name,
const EObjectFlags  flags,
const UTexture2D *  sourceTexture 
)
staticnoexcept

Duplicate texture

Parameters
[in]packagepackage object
[in]nameName of the texture to be duplicated
[in]flagsFlags for textures to be duplicated
[in]sourceTextureTexture to be duplicated
Returns
Returns a duplicated texture object

◆ EndDungeonGeneration()

void ADungeonGenerateBase::EndDungeonGeneration ( )
protected

End Generate dungeon ダンジョン生成を終了

◆ EndGeneration()

void ADungeonGenerateBase::EndGeneration ( UDungeonRandom synchronizedRandom,
const UDungeonAisleGridMap aisleGridMap 
)
protected

Event called at the end of the Create function Create関数終了時に呼び出されるイベントです

◆ EndVegetationTransaction()

void ADungeonGenerateBase::EndVegetationTransaction ( )

大量のInstancedMeshの操作を終了

◆ FindOrAddComponentActivatorComponent()

UDungeonComponentActivatorComponent * ADungeonGenerateBase::FindOrAddComponentActivatorComponent ( AActor *  actor)
static

アクターの負荷制御コンポーネントを追加します

◆ GenerateMiniMapTextureWithScale()

UTexture2D * ADungeonGenerateBase::GenerateMiniMapTextureWithScale ( uint32_t &  worldToTextureScale,
uint32_t &  textureWidth,
uint32_t  dotScale,
uint32_t  currentLevel 
) const

Generates a minimap texture of the generated dungeon

Parameters
[out]worldToTextureScaleScale value to convert from world coordinates to texture coordinates
[out]textureWidthSize of a piece of texture
[in]dotScaleScale of texture to be generated (height equals width)
[in]currentLevelCriteria for floor height to be generated
Returns
texture object

◆ GenerateMiniMapTextureWithSize()

UTexture2D * ADungeonGenerateBase::GenerateMiniMapTextureWithSize ( uint32_t &  worldToTextureScale,
uint32_t  textureWidthHeight,
uint32_t  currentLevel 
) const

Generates a minimap texture of the generated dungeon

Parameters
[out]worldToTextureScaleScale value to convert from world coordinates to texture coordinates
[in]textureWidthHeightWidth of texture to be generated (height equals width)
[in]currentLevelCriteria for floor height to be generated
Returns
texture object

◆ GetDungeonGeneratorTag()

const FName & ADungeonGenerateBase::GetDungeonGeneratorTag ( )
inlinestatic

Get tag name タグ名を取得します

◆ GetDungeonGeneratorTerrainTag()

const FName & ADungeonGenerateBase::GetDungeonGeneratorTerrainTag ( )
inlinestatic

Get tag names of actors and components for terrain 地形用アクターとコンポーネントのタグ名を取得します

◆ GetGenerator()

std::shared_ptr< const dungeon::Generator > ADungeonGenerateBase::GetGenerator ( ) const
protected

Get dungeon generation core object.

Returns
dungeon::Generator

◆ GetGoalLocation()

FVector ADungeonGenerateBase::GetGoalLocation ( ) const

Get goal position

◆ GetLongestStraightPath()

FVector2D ADungeonGenerateBase::GetLongestStraightPath ( ) const
noexcept

Get the length of the longest straight line 最も長い直線の長さを取得します

◆ GetStartBoundingBox()

FBox ADungeonGenerateBase::GetStartBoundingBox ( ) const

スタート部屋のバウンディングボックスを取得します

◆ GetStartLocation()

FVector ADungeonGenerateBase::GetStartLocation ( ) const

Get start position

◆ IsGenerated()

bool ADungeonGenerateBase::IsGenerated ( ) const
noexcept

ダンジョンを生成済みか取得します

Returns
trueなら生成済み

◆ MovePlayerStart()

void ADungeonGenerateBase::MovePlayerStart ( const TArray< APlayerStart * > &  startPoints)
protected

PlayerStartアクターを移動します

◆ OnQueryAisleGeneration()

bool ADungeonGenerateBase::OnQueryAisleGeneration ( const FVector &  center,
const int32  identifier,
const EDungeonDirection  direction 
)
protected

Event to query the creation of an aisle. If true is returned, the roof and aisle meshes are not generated. 通路の生成を問い合わせイベント trueを返すと屋根と通路のメッシュを生成しません

◆ SpawnActorImpl()

AActor * ADungeonGenerateBase::SpawnActorImpl ( UWorld *  world,
UClass *  actorClass,
const FString &  folderPath,
const FTransform &  transform,
const FActorSpawnParameters &  actorSpawnParameters 
)
static

アクターをスポーンします。 DungeonGeneratorというタグを追加します。 スポーンしたアクターはDestroySpawnedActorsで破棄されます。

◆ VegetationDestroyAll()

void ADungeonGenerateBase::VegetationDestroyAll ( )

全てを破棄する

Member Data Documentation

◆ OnBeginGeneration

FDungeonGenerateBaseOnBeginGenerateSignature ADungeonGenerateBase::OnBeginGeneration
protected

This event is called at the start of the Create function Create関数開始時に呼び出されるイベントです

◆ OnEndGeneration

FDungeonGenerateBaseOnEndGenerateSignature ADungeonGenerateBase::OnEndGeneration
protected

Event called at the end of the Create function Create関数終了時に呼び出されるイベントです

◆ OnGenerationFailure

FDungeonGeneratorActorNotifyGenerationFailureSignature ADungeonGenerateBase::OnGenerationFailure
protected

Notification when dungeon creation fails ダンジョンの生成に失敗した時の通知

◆ OnGenerationSuccess

FDungeonGeneratorActorNotifyGenerationSuccessSignature ADungeonGenerateBase::OnGenerationSuccess
protected

Notification when a dungeon is successfully created ダンジョンの生成に成功した時の通知


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