Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
UStageEventProcessorGroup 클래스 참조

#include <StageEventProcessorGroup.h>

UStageEventProcessorGroup에 대한 상속 다이어그램 :
Inheritance graph
UStageEventProcessorGroup에 대한 협력 다이어그램:
Collaboration graph

Public 멤버 함수

void Process (UStageManagementSubsystem *StageManagement, const FName EventID, const AActor *Caller, const AActor *InteractableActor, const FStageEventContext &Context) const
 
bool IsEmpty () const
 
UStageEventProcessorFindProcessorByID (const FName ProcessorID) const
 
UStageEventProcessorFindProcessorByClass (TSubclassOf< UStageEventProcessor > ProcessorClass) const
 
int32 Num () const
 
template<typename T >
T * FindProcessorByID (const FName ProcessorID) const
 
template<typename T >
T * FindProcessorByClass () const
 
FORCEINLINE const TArray< TObjectPtr< UStageEventProcessor > > & GetProcessors () const
 

Protected 속성

TArray< TObjectPtr< UStageEventProcessor > > Processors
 

멤버 함수 문서화

◆ FindProcessorByClass() [1/2]

template<typename T >
T * UStageEventProcessorGroup::FindProcessorByClass ( ) const
inline
48 {
49 static_assert(TIsDerivedFrom<T, UStageEventProcessor>::Value, "T must derive from UStageEventProcessor.");
50 return Cast<T>(FindProcessorByClass(T::StaticClass()));
51 }
T * FindProcessorByClass() const
Definition StageEventProcessorGroup.h:47

◆ FindProcessorByClass() [2/2]

UStageEventProcessor * UStageEventProcessorGroup::FindProcessorByClass ( TSubclassOf< UStageEventProcessor ProcessorClass) const
66{
67 if (ProcessorClass == nullptr || Processors.IsEmpty()) return nullptr;
68
69 auto MatchClass = [&](const TObjectPtr<UStageEventProcessor>& P)
70 {
71 return P && P->IsA(ProcessorClass);
72 };
73
74 const TObjectPtr<UStageEventProcessor>* Found = Processors.FindByPredicate(MatchClass);
75 return Found ? Found->Get() : nullptr;
76}
TArray< TObjectPtr< UStageEventProcessor > > Processors
Definition StageEventProcessorGroup.h:60

◆ FindProcessorByID() [1/2]

UStageEventProcessor * UStageEventProcessorGroup::FindProcessorByID ( const FName  ProcessorID) const
43{
44 if (ProcessorID.IsNone())
45 {
46 return nullptr;
47 }
48
49 auto MatchID = [&](const TObjectPtr<UStageEventProcessor>& P)
50 {
51 return P && P->ProcessorID == ProcessorID;
52 };
53
54 if (const TObjectPtr<UStageEventProcessor>* Found = Processors.FindByPredicate(MatchID))
55 {
56 return Found->Get();
57 }
58 else
59 {
60 return nullptr;
61 }
62}

◆ FindProcessorByID() [2/2]

template<typename T >
T * UStageEventProcessorGroup::FindProcessorByID ( const FName  ProcessorID) const
inline
41 {
42 static_assert(TIsDerivedFrom<T, UStageEventProcessor>::Value, "T must derive from UStageEventProcessor.");
43 return Cast<T>(FindProcessorByID(ProcessorID));
44 }
UStageEventProcessor * FindProcessorByID(const FName ProcessorID) const
Definition StageEventProcessorGroup.cpp:42

◆ GetProcessors()

FORCEINLINE const TArray< TObjectPtr< UStageEventProcessor > > & UStageEventProcessorGroup::GetProcessors ( ) const
inline
54 {
55 return Processors;
56 }

◆ IsEmpty()

bool UStageEventProcessorGroup::IsEmpty ( ) const
12{
13 return Processors.IsEmpty();
14}

◆ Num()

int32 UStageEventProcessorGroup::Num ( ) const
80{
81 auto IsValid = [](const TObjectPtr<UStageEventProcessor>& P)
82 {
83 return P != nullptr;
84 };
85
86 return Algo::CountIf(Processors, IsValid);
87}

◆ Process()

void UStageEventProcessorGroup::Process ( UStageManagementSubsystem StageManagement,
const FName  EventID,
const AActor *  Caller,
const AActor *  InteractableActor,
const FStageEventContext Context 
) const
18{
19 for (const TObjectPtr<UStageEventProcessor>& Processor : Processors)
20 {
21 if (Processor == nullptr)
22 {
23 LOG_ERROR(LogCKLevel, "EventID '%s' 의 ProcessorGroup 에 빈 슬롯이 있습니다.", *EventID.ToString());
24 continue;
25 }
26
28 (
29 FColor::Cyan,
30 "[StageEvent] %-9s EventID = %-16s ProcessorID = %-20s Processor = %s",
31 TEXT("Processor"),
32 *EventID.ToString(),
33 *(Processor->ProcessorID.IsNone() ? TEXT("None") : Processor->ProcessorID.ToString()),
34 *Processor->GetName()
35 );
36
37 Processor->Process(StageManagement, EventID, Caller, InteractableActor, Context);
38 }
39}
#define LOG_ERROR(Category, Format,...)
Definition CK_UE.h:40
#define LOG_SCREEN_C(Color, Format,...)
Definition CK_UE.h:49

멤버 데이터 문서화

◆ Processors

TArray<TObjectPtr<UStageEventProcessor> > UStageEventProcessorGroup::Processors
protected

이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: