Space Plunder
Loading...
Searching...
No Matches
UProceduralBPLib Class Reference

#include <ProceduralBPLib.h>

Inheritance diagram for UProceduralBPLib:

Static Public Member Functions

static FRandomStream * GetRandomSeed (const UObject *WorldContextObject)
 
static FDungeonSpecialItemGetRandomSpecialItem (TArray< FDungeonSpecialItem > &Array)
 
static FDungeonSpecialItemGetRandomSpecialItemFromStream (TArray< FDungeonSpecialItem > &Array, const FRandomStream &Stream)
 
static USceneComponent * GetRandomSceneComponent (const TArray< USceneComponent * > &Array)
 
static USceneComponent * GetRandomSceneComponentFromStream (const TArray< USceneComponent * > &Array, const FRandomStream &Stream)
 
static UClass * GetRandomClass (const TArray< TSubclassOf< AActor > > &Array)
 
static UClass * GetRandomClassFromStream (const TArray< TSubclassOf< AActor > > &Array, const FRandomStream &Stream)
 
static void AddWeightsToArray (TArray< TSubclassOf< AActor > > &Array, const TArray< int32 > &Weights)
 

Member Function Documentation

◆ AddWeightsToArray()

void UProceduralBPLib::AddWeightsToArray ( TArray< TSubclassOf< AActor > > & Array,
const TArray< int32 > & Weights )
static
97{
98 TRACE_CPUPROFILER_EVENT_SCOPE(UProceduralBPLib::AddWeightsToArray);
99 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons);
100 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons_BPLib);
101 if(Array.IsEmpty()){return;}
102 TArray<TSubclassOf<AActor>> WeightedTypes;
103 for(int32 i = 0; i < Array.Num(); ++i)
104 {
105 const int32 Weight = Weights.IsValidIndex(i) ? Weights[i] : 1;
106 for(int32 j = 0; j < Weight; ++j)
107 {
108 WeightedTypes.Add(Array[i]);
109 }
110 }
111 Array = WeightedTypes;
112}
static void AddWeightsToArray(TArray< TSubclassOf< AActor > > &Array, const TArray< int32 > &Weights)
Definition ProceduralBPLib.cpp:96

◆ GetRandomClass()

UClass * UProceduralBPLib::GetRandomClass ( const TArray< TSubclassOf< AActor > > & Array)
static

Gets random from the array

73{
74 TRACE_CPUPROFILER_EVENT_SCOPE(UProceduralBPLib::GetRandomClass);
75 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons);
76 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons_BPLib);
77 if(Array.IsEmpty()){UE_LOG(LogDungeonBPLib, Display, TEXT("AProceduralDungeonBuilder::GetRandomClass Array.IsEmpty"));return nullptr;}
78 const int32 Index = UKismetMathLibrary::RandomIntegerInRange(0, (Array.Num() - 1));
79 if(Array.IsValidIndex(Index) == false){UE_LOG(LogDungeonBPLib, Display, TEXT("AProceduralDungeonBuilder::GetRandomClass Array.IsValidIndex"));return nullptr;}
80 return Array[Index];
81
82}
static UClass * GetRandomClass(const TArray< TSubclassOf< AActor > > &Array)
Definition ProceduralBPLib.cpp:72

◆ GetRandomClassFromStream()

UClass * UProceduralBPLib::GetRandomClassFromStream ( const TArray< TSubclassOf< AActor > > & Array,
const FRandomStream & Stream )
static

Gets random from the array

85{
86 TRACE_CPUPROFILER_EVENT_SCOPE(UProceduralBPLib::GetRandomClassFromStream);
87 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons);
88 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons_BPLib);
89 if(Array.IsEmpty()){UE_LOG(LogDungeonBPLib, Display, TEXT("AProceduralDungeonBuilder::GetRandomClassFromStream Array.IsEmpty"));return nullptr;}
90 const int32 Index = UKismetMathLibrary::RandomIntegerInRangeFromStream(Stream, 0, (Array.Num() - 1));
91 if(Array.IsValidIndex(Index) == false){UE_LOG(LogDungeonBPLib, Display, TEXT("AProceduralDungeonBuilder::GetRandomClassFromStream Array.IsValidIndex"));return nullptr;}
92 return Array[Index];
93}
static UClass * GetRandomClassFromStream(const TArray< TSubclassOf< AActor > > &Array, const FRandomStream &Stream)
Definition ProceduralBPLib.cpp:84

◆ GetRandomSceneComponent()

USceneComponent * UProceduralBPLib::GetRandomSceneComponent ( const TArray< USceneComponent * > & Array)
static

Gets random Scene Component from the array

50{
51 TRACE_CPUPROFILER_EVENT_SCOPE(UProceduralBPLib::GetRandomSceneComponent);
52 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons);
53 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons_BPLib);
54 if(Array.IsEmpty()){UE_LOG(LogDungeonBPLib, Display, TEXT("UProceduralBPLib::GetRandomSceneComponent Array.IsEmpty"));return nullptr;}
55 const int32 Index = UKismetMathLibrary::RandomIntegerInRange(0, (Array.Num() - 1));
56 if(Array.IsValidIndex(Index) == false){UE_LOG(LogDungeonBPLib, Display, TEXT("UProceduralBPLib::GetRandomSceneComponent Array.IsValidIndex"));return nullptr;}
57 return Array[Index];
58}
static USceneComponent * GetRandomSceneComponent(const TArray< USceneComponent * > &Array)
Definition ProceduralBPLib.cpp:49

◆ GetRandomSceneComponentFromStream()

USceneComponent * UProceduralBPLib::GetRandomSceneComponentFromStream ( const TArray< USceneComponent * > & Array,
const FRandomStream & Stream )
static
62{
63 TRACE_CPUPROFILER_EVENT_SCOPE(UProceduralBPLib::GetRandomSceneComponentFromStream);
64 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons);
65 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons_BPLib);
66 if(Array.IsEmpty()){UE_LOG(LogDungeonBPLib, Display, TEXT("AProceduralDungeonBuilder::GetRandomSceneComponent Array.IsEmpty"));return nullptr;}
67 const int32 Index = UKismetMathLibrary::RandomIntegerInRangeFromStream(Stream, 0, (Array.Num() - 1));
68 if(Array.IsValidIndex(Index) == false){UE_LOG(LogDungeonBPLib, Display, TEXT("AProceduralDungeonBuilder::GetRandomSceneComponent Array.IsValidIndex"));return nullptr;}
69 return Array[Index];
70}
static USceneComponent * GetRandomSceneComponentFromStream(const TArray< USceneComponent * > &Array, const FRandomStream &Stream)
Definition ProceduralBPLib.cpp:60

◆ GetRandomSeed()

FRandomStream * UProceduralBPLib::GetRandomSeed ( const UObject * WorldContextObject)
static
13{
14 TRACE_CPUPROFILER_EVENT_SCOPE(UProceduralBPLib::GetRandomSeed);
15 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons);
16 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons_BPLib);
17 if(WorldContextObject == nullptr){UE_LOG(LogDungeonBPLib, Display, TEXT("UProceduralBPLib::GetRandomSeed World FAILED"));return nullptr;}
18 IProceduralGM* ProceduralGM = Cast<IProceduralGM>(UGameplayStatics::GetGameMode(WorldContextObject));
19 if(ProceduralGM == nullptr){UE_LOG(LogDungeonBPLib, Display, TEXT("UProceduralBPLib::GetRandomSeed World FAILED"));return nullptr;}
20 return &ProceduralGM->GetRandomStream();
21}
Definition ProceduralGM.h:20
virtual FRandomStream & GetRandomStream()=0
static FRandomStream * GetRandomSeed(const UObject *WorldContextObject)
Definition ProceduralBPLib.cpp:12

◆ GetRandomSpecialItem()

FDungeonSpecialItem * UProceduralBPLib::GetRandomSpecialItem ( TArray< FDungeonSpecialItem > & Array)
static

Gets random Room class from the array

25{
26 TRACE_CPUPROFILER_EVENT_SCOPE(UProceduralBPLib::GetRandomSpecialItem);
27 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons);
28 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons_BPLib);
29 if(Array.IsEmpty()){UE_LOG(LogDungeonBPLib, Display, TEXT("UProceduralBPLib::GetRandomSpecialItem Array.IsEmpty"));return nullptr;}
30 const int32 Index = UKismetMathLibrary::RandomIntegerInRange(0, (Array.Num() - 1));
31 if(Array.IsValidIndex(Index) == false){UE_LOG(LogDungeonBPLib, Display, TEXT("UProceduralBPLib::GetRandomSpecialItem Array.IsValidIndex"));return nullptr;}
32 if(Array[Index].Class == nullptr){UE_LOG(LogDungeonBPLib, Display, TEXT("UProceduralBPLib::GetRandomSpecialItem Array.Class"));return nullptr;}
33 return &Array[Index];
34}
static FDungeonSpecialItem * GetRandomSpecialItem(TArray< FDungeonSpecialItem > &Array)
Definition ProceduralBPLib.cpp:24

◆ GetRandomSpecialItemFromStream()

FDungeonSpecialItem * UProceduralBPLib::GetRandomSpecialItemFromStream ( TArray< FDungeonSpecialItem > & Array,
const FRandomStream & Stream )
static
38{
39 TRACE_CPUPROFILER_EVENT_SCOPE(UProceduralBPLib::GetRandomSpecialItemFromStream);
40 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons);
41 SCOPE_CYCLE_COUNTER(STAT_ProceduralDungeons_BPLib);
42 if(Array.IsEmpty()){UE_LOG(LogDungeonBPLib, Display, TEXT("UProceduralBPLib::GetRandomSpecialItemFromStream Array.IsEmpty"));return nullptr;}
43 const int32 Index = UKismetMathLibrary::RandomIntegerInRangeFromStream(Stream, 0, (Array.Num() - 1));
44 if(Array.IsValidIndex(Index) == false){UE_LOG(LogDungeonBPLib, Display, TEXT("UProceduralBPLib::GetRandomSpecialItemFromStream Array.IsValidIndex"));return nullptr;}
45 if(Array[Index].Class == nullptr){UE_LOG(LogDungeonBPLib, Display, TEXT("UProceduralBPLib::GetRandomSpecialItemFromStream Array.Class"));return nullptr;}
46 return &Array[Index];
47}
static FDungeonSpecialItem * GetRandomSpecialItemFromStream(TArray< FDungeonSpecialItem > &Array, const FRandomStream &Stream)
Definition ProceduralBPLib.cpp:36

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