14{
17
19 {
21 (
22 FColor::Orange,
23 "[StageEvent] Skipped (limit) EventID = %s ProcessorID = %s (%d/%d)",
24 *EventID.ToString(),
26 CurrentCount,
28 );
29
30 return;
31 }
32
35
36 for (AActor* Actor : Context.ValidListeners)
37 {
39
40 if (Listener == nullptr)
41 {
42 continue;
43 }
44
46 {
47 continue;
48 }
49
51
53 {
55 continue;
56 }
57
59 {
60 continue;
61 }
62
64
66
67 if (FoundActor == nullptr || FoundActor->Get() != Actor)
68 {
69 continue;
70 }
71
73 }
74
76 (
77 FColor::Cyan,
78 "[StageEvent] %-9s EventID = %-16s ProcessorID = %-20s ListenerCount = %d (%d/%d)",
79 TEXT("Deliver"),
80 *EventID.ToString(),
82 FilteredContext.ValidListeners.Num(),
83 NewCount,
85 );
86
87 OnProcessEvent(EventID, Caller, InteractableActor, FilteredContext);
88}
#define LOG_SCREEN_C(Color, Format,...)
Definition CK_UE.h:49
#define NAMEOF(Type)
Definition CK_UE.h:30
EListenerSlot
Definition EStageEventEnums.h:29
Definition StageEventListenerInterface.h:24
virtual EListenerSlot GetSlotForEvent(const FName EventID) const
Definition StageEventListenerInterface.h:32
virtual EStageEvent GetStageEvent() const =0
TSet< EListenerSlot > IgnoredSlots
Definition StageEventProcessor.h:79
EStageEvent GetStageEvent() const
int32 ProcessProcessorTrigger(UStageManagementSubsystem *StageManagement, FName EventID, const AActor *Caller)
Processor 발동 횟수 증가와 발동 알림을 처리한다.
Definition StageEventProcessor.cpp:103
void OnProcessEvent(const FName EventID, const AActor *Caller, const AActor *InteractableActor, const FStageEventContext &Context)
int32 MaxTriggerCount
Definition StageEventProcessor.h:75
FName ProcessorID
Definition StageEventProcessor.h:70
Definition StageManagementSubsystem.h:147
int32 GetProcessorTriggerCount(const UStageEventProcessor *Processor) const
Definition StageManagementSubsystem.cpp:399
Definition StageEventContext.h:18
TArray< TObjectPtr< AActor > > ValidListeners
Definition StageEventContext.h:23
TMap< EListenerSlot, TObjectPtr< AActor > > ValidListenersBySlot
Definition StageEventContext.h:26