Payback 0.0.1
CK Graduation Project
로딩중...
검색중...
일치하는것 없음
StageEventProcessorGroup.h
이 파일의 문서화 페이지로 가기
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "Templates/SubclassOf.h"
8#include "UObject/Object.h"
9#include "StageEventProcessorGroup.generated.h"
10
11class AActor;
15
16
17UCLASS(Abstract, Blueprintable, BlueprintType, EditInlineNew, DefaultToInstanced)
18class CK_UE_API UStageEventProcessorGroup : public UObject
19{
20 GENERATED_BODY()
21
22public:
23 void Process(UStageManagementSubsystem* StageManagement, const FName EventID, const AActor* Caller, const AActor* InteractableActor, const FStageEventContext& Context) const;
24
25public:
26 UFUNCTION(BlueprintPure, Category = "StageEventProcessor")
27 bool IsEmpty() const;
28
29 UFUNCTION(BlueprintPure, Category = "StageEventProcessor")
30 UStageEventProcessor* FindProcessorByID(const FName ProcessorID) const;
31
32 UFUNCTION(BlueprintPure, Category = "StageEventProcessor", meta = (DeterminesOutputType = "ProcessorClass"))
33 UStageEventProcessor* FindProcessorByClass(TSubclassOf<UStageEventProcessor> ProcessorClass) const;
34
35 UFUNCTION(BlueprintPure, Category = "StageEventProcessor")
36 int32 Num() const;
37
38public:
39 template <typename T>
40 T* FindProcessorByID(const FName ProcessorID) const
41 {
42 static_assert(TIsDerivedFrom<T, UStageEventProcessor>::Value, "T must derive from UStageEventProcessor.");
43 return Cast<T>(FindProcessorByID(ProcessorID));
44 }
45
46 template <typename T>
48 {
49 static_assert(TIsDerivedFrom<T, UStageEventProcessor>::Value, "T must derive from UStageEventProcessor.");
50 return Cast<T>(FindProcessorByClass(T::StaticClass()));
51 }
52
53 FORCEINLINE const TArray<TObjectPtr<UStageEventProcessor>>& GetProcessors() const
54 {
55 return Processors;
56 }
57
58protected:
59 UPROPERTY(EditAnywhere, Instanced, BlueprintReadOnly, Category = "StageEventProcessor", meta = (TitleProperty = "ProcessorID"))
60 TArray<TObjectPtr<UStageEventProcessor>> Processors;
61};
Definition InteractableActor.h:16
Definition StageEventProcessorGroup.h:19
FORCEINLINE const TArray< TObjectPtr< UStageEventProcessor > > & GetProcessors() const
Definition StageEventProcessorGroup.h:53
T * FindProcessorByID(const FName ProcessorID) const
Definition StageEventProcessorGroup.h:40
T * FindProcessorByClass() const
Definition StageEventProcessorGroup.h:47
Definition StageEventProcessor.h:28
Definition StageManagementSubsystem.h:147
Definition StageEventContext.h:18