UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BTDecorator_BlueprintBase.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
8#include "InputCoreTypes.h"
10#include "BTDecorator_BlueprintBase.generated.h"
11
12class AActor;
13class AAIController;
14class APawn;
15class UBehaviorTree;
16class UBlackboardComponent;
17
32UCLASS(Abstract, Blueprintable, MinimalAPI)
34{
36
37public:
39
42
44 AIMODULE_API virtual void PostInitProperties() override;
45 AIMODULE_API virtual void PostLoad() override;
46
48 AIMODULE_API EBlackboardNotificationResult OnBlackboardKeyValueChange(const UBlackboardComponent& Blackboard, FBlackboard::FKey ChangedKeyID);
49
50 AIMODULE_API virtual FString GetStaticDescription() const override;
51 AIMODULE_API virtual void DescribeRuntimeValues(const UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, EBTDescriptionVerbosity::Type Verbosity, TArray<FString>& Values) const override;
52 AIMODULE_API virtual bool CalculateRawConditionValue(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) const override;
53 AIMODULE_API virtual void OnInstanceDestroyed(UBehaviorTreeComponent& OwnerComp) override;
54 AIMODULE_API virtual void InitializeFromAsset(UBehaviorTree& Asset) override;
55
56 enum class EAbortType : uint8
57 {
58 NoAbort,
59 ActivateBranch,
60 DeactivateBranch,
61 Unknown,
62 };
63
65 AIMODULE_API EAbortType EvaluateAbortType(UBehaviorTreeComponent& OwnerComp) const;
66
67 UE_DEPRECATED(5.2, "Use GetShouldAbortType instead")
68 bool GetShouldAbort(UBehaviorTreeComponent& OwnerComp) const
69 {
70 return EvaluateAbortType(OwnerComp) != EAbortType::NoAbort;
71 }
72
73 AIMODULE_API virtual void SetOwner(AActor* ActorOwner) override;
74
75#if WITH_EDITOR
76 AIMODULE_API virtual FName GetNodeIconName() const override;
77 AIMODULE_API virtual bool UsesBlueprint() const override;
78#endif
79
80protected:
84
87 TObjectPtr<AActor> ActorOwner;
88
90 UPROPERTY()
91 TArray<FName> ObservedKeyNames;
92
94 TArray<FProperty*> PropertyData;
95
96#if WITH_EDITORONLY_DATA
97 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = Description)
98 FString CustomDescription;
99#endif // WITH_EDITORONLY_DATA
100
102 UPROPERTY(EditInstanceOnly, Category=Description)
103 uint32 bShowPropertyDetails : 1;
104
108 UPROPERTY(EditDefaultsOnly, Category = "FlowControl", AdvancedDisplay)
109 uint32 bCheckConditionOnlyBlackBoardChanges : 1;
110
112 uint32 bIsObservingBB : 1;
113
115 uint32 ReceiveTickImplementations : 2;
116
118 uint32 ReceiveExecutionStartImplementations : 2;
119
121 uint32 ReceiveExecutionFinishImplementations : 2;
122
124 uint32 ReceiveObserverActivatedImplementations : 2;
125
127 uint32 ReceiveObserverDeactivatedImplementations : 2;
128
130 uint32 PerformConditionCheckImplementations : 2;
131
133 AIMODULE_API virtual void OnCeaseRelevant(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) override;
134 AIMODULE_API virtual void OnNodeActivation(FBehaviorTreeSearchData& SearchData) override;
135 AIMODULE_API virtual void OnNodeDeactivation(FBehaviorTreeSearchData& SearchData, EBTNodeResult::Type NodeResult) override;
136 AIMODULE_API virtual void TickNode(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, float DeltaSeconds) override;
137
141 UFUNCTION(BlueprintImplementableEvent)
142 AIMODULE_API void ReceiveTick(AActor* OwnerActor, float DeltaSeconds);
143
147 UFUNCTION(BlueprintImplementableEvent)
148 AIMODULE_API void ReceiveExecutionStart(AActor* OwnerActor);
149
153 UFUNCTION(BlueprintImplementableEvent)
154 AIMODULE_API void ReceiveExecutionFinish(AActor* OwnerActor, enum EBTNodeResult::Type NodeResult);
155
159 UFUNCTION(BlueprintImplementableEvent)
160 AIMODULE_API void ReceiveObserverActivated(AActor* OwnerActor);
161
165 UFUNCTION(BlueprintImplementableEvent)
166 AIMODULE_API void ReceiveObserverDeactivated(AActor* OwnerActor);
167
171 UFUNCTION(BlueprintImplementableEvent)
172 AIMODULE_API bool PerformConditionCheck(AActor* OwnerActor);
173
178 UFUNCTION(BlueprintImplementableEvent, Category = AI)
179 AIMODULE_API void ReceiveTickAI(AAIController* OwnerController, APawn* ControlledPawn, float DeltaSeconds);
180
185 UFUNCTION(BlueprintImplementableEvent, Category = AI)
186 AIMODULE_API void ReceiveExecutionStartAI(AAIController* OwnerController, APawn* ControlledPawn);
187
192 UFUNCTION(BlueprintImplementableEvent, Category = AI)
193 AIMODULE_API void ReceiveExecutionFinishAI(AAIController* OwnerController, APawn* ControlledPawn, enum EBTNodeResult::Type NodeResult);
194
199 UFUNCTION(BlueprintImplementableEvent, Category = AI)
200 AIMODULE_API void ReceiveObserverActivatedAI(AAIController* OwnerController, APawn* ControlledPawn);
201
206 UFUNCTION(BlueprintImplementableEvent, Category = AI)
207 AIMODULE_API void ReceiveObserverDeactivatedAI(AAIController* OwnerController, APawn* ControlledPawn);
208
213 UFUNCTION(BlueprintImplementableEvent, Category = AI)
214 AIMODULE_API bool PerformConditionCheckAI(AAIController* OwnerController, APawn* ControlledPawn);
215
217 UFUNCTION(BlueprintCallable, Category="AI|BehaviorTree")
218 AIMODULE_API bool IsDecoratorExecutionActive() const;
219
221 UFUNCTION(BlueprintCallable, Category="AI|BehaviorTree")
222 AIMODULE_API bool IsDecoratorObserverActive() const;
223
224 inline bool GetNeedsTickForConditionChecking() const { return PerformConditionCheckImplementations != 0 && (bIsObservingBB == false || bCheckConditionOnlyBlackBoardChanges == false); }
225
227 AIMODULE_API void RequestAbort(UBehaviorTreeComponent& OwnerComp, const EAbortType Type);
228};
EBlackboardNotificationResult
Definition BehaviorTreeTypes.h:62
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UCLASS(...)
Definition ObjectMacros.h:776
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition AIController.h:91
Definition Actor.h:257
Definition NameTypes.h:617
Definition UObjectGlobals.h:1292
static COREUOBJECT_API FObjectInitializer & Get()
Definition UObjectGlobals.cpp:5001
Definition UnrealType.h:174
Definition Array.h:670
Definition BTDecorator_BlueprintBase.h:34
EAbortType
Definition BTDecorator_BlueprintBase.h:57
Definition BTDecorator.h:38
Definition BehaviorTreeComponent.h:105
Definition BehaviorTree.h:16
Type
Definition BehaviorTreeTypes.h:217
Definition BehaviorTreeTypes.h:84
Definition BehaviorTreeTypes.h:534
Definition BlackboardKey.h:18
Definition ObjectPtr.h:488