UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BehaviorTreeTypes.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "CoreMinimal.h"
7#include "Stats/Stats.h"
9#include "UObject/Object.h"
10#include "UObject/Class.h"
11#include "InputCoreTypes.h"
13#include "BehaviorTreeTypes.generated.h"
14
15class FBlackboardDecoratorDetails;
16class UBehaviorTree;
18class UBlackboardComponent;
19class UBlackboardData;
23class UBTNode;
24class UBTTaskNode;
26
27// Visual logging helper
28#define BT_VLOG(Context, Verbosity, Format, ...) UE_VLOG(Context->OwnerComp.IsValid() ? Context->OwnerComp->GetOwner() : NULL, LogBehaviorTree, Verbosity, Format, ##__VA_ARGS__)
29#define BT_SEARCHLOG(SearchData, Verbosity, Format, ...) UE_VLOG(SearchData.OwnerComp.GetOwner(), LogBehaviorTree, Verbosity, Format, ##__VA_ARGS__)
30
31// Behavior tree debugger in editor
32#define USE_BEHAVIORTREE_DEBUGGER (1 && WITH_EDITORONLY_DATA)
33
35
46
47#ifndef AI_BLACKBOARD_KEY_SIZE_8
49{
50 enum { Value = true };
51};
52#endif
53
54#if WITH_EDITORONLY_DATA
55namespace UE::BehaviorTree::Messages
56{
58}
59#endif // WITH_EDITORONLY_DATA
60
66
67// delegate defines
68DECLARE_DELEGATE_TwoParams(FOnBlackboardChange, const UBlackboardComponent&, FBlackboard::FKey /*key ID*/);
69
70// using "not checked" user policy (means race detection is disabled) because this delegate is stored in a TMultiMap and causes its reallocation
71// from inside delegate's execution. This is incompatible with race detection that needs to access the delegate instance after its execution
73
75{
76 inline constexpr int32 NotInitialized = -1; // special value for child indices: needs to be initialized
77 inline constexpr int32 ReturnToParent = -2; // special value for child indices: return to parent node
78
79 inline constexpr uint8 OwnedByComposite = MAX_uint8; // special value for aux node's child index: owned by composite node instead of a task
80}
81
82UENUM(BlueprintType)
84{
85 // keep in sync with DescribeNodeResult()
86 enum Type : int
87 {
88 // finished as success
90 // finished as failure
92 // finished aborting = failure
94 // not finished yet
96 };
97}
98
100{
101 enum Type
102 {
105 };
106}
107
108namespace EBTStopMode
109{
110 enum Type
111 {
114 };
115}
116
118{
119 ForceReevaluateRootNode, // (Default) will just request a new execution on the root node and any active nodes that gets re-added will not get CeaseRelevant/BecomeRelevant notification
120 CompleteRestart, // essentially equivalent to calling StopTree and then StartTree. Every active node is going to be removed and the execution started from the root
121};
122
124{
125 enum Type
126 {
127 Initialize, // first time initialization
128 RestoreSubtree, // loading saved data on reentering subtree
129 };
130}
131
133{
134 enum Type
135 {
136 Destroy, // final clear
137 StoreSubtree, // saving data on leaving subtree
138 };
139}
140
141UENUM()
143{
144 // keep in sync with DescribeFlowAbortMode()
145
146 enum Type : int
147 {
148 None UMETA(DisplayName="Nothing"),
149 LowerPriority UMETA(DisplayName="Lower Priority"),
150 Self UMETA(DisplayName="Self"),
151 Both UMETA(DisplayName="Both"),
152 };
153}
154
156{
157 // keep in sync with DescribeActiveNode()
165}
166
168{
169 // keep in sync with DescribeTaskStatus()
176}
177
179{
180 // keep in sync with DescribeNodeUpdateMode()
181 enum Type
182 {
184 Add, // add node
185 Remove, // remove node
186 };
187}
188
204
206{
207 enum Type
208 {
211 };
212}
213
215{
216 enum Type
217 {
220 };
221}
222
224{
225 Lower,
226 Same,
227 Higher
228};
229
265
288
314
317
320{
323
326
329
332
335
338
341
344
346
347 UE_DEPRECATED(5.2, "Copying FBehaviorTreeInstance constructor has been deprecated in favor of move-constructor")
349
350 UE_DEPRECATED(5.2, "Copying FBehaviorTreeInstance assignement operator has been deprecated in favor of move assignement operator")
352
355
358
359#if STATS
360 void IncMemoryStats() const;
361 void DecMemoryStats() const;
362 uint32 GetAllocatedSize() const;
363#else
364 inline uint32 GetAllocatedSize() const { return 0; }
365 inline void IncMemoryStats() const {}
366 inline void DecMemoryStats() const {}
367#endif // STATS
368
371
374
377
379 void DeactivateNodes(FBehaviorTreeSearchData& SearchData, uint16 InstanceIndex);
380
383
384 UE_DEPRECATED(5.4, "This function is deprecated. Please use version that takes UBehaviorTreeComponent.")
386
389
390 UE_DEPRECATED(5.4, "This function is deprecated. Please use version that takes UBehaviorTreeComponent.")
392
395
397 void ResetActiveAuxNodes();
398
401
404
407
409 void RemoveParallelTaskAt(int32 TaskIndex);
410
412 void MarkParallelTaskAsAbortingAt(int32 TaskIndex);
413
416
419
422
425
426protected:
427
430
431private:
432 void AddToActiveAuxNodesImpl(UBTAuxiliaryNode* AuxNode);
433 void RemoveFromActiveAuxNodesImpl(UBTAuxiliaryNode* AuxNode);
434
435private:
436#if DO_ENSURE
438 bool bIteratingNodes = false;
439
446#endif // DO_ENSURE
447};
448
450{
451 static constexpr uint16 InvalidIndex = TNumericLimits<uint16>::Max(); // (This is also the same as INDEX_NONE assigned to IndexType!)
452
455
458
461
462 bool TakesPriorityOver(const FBTNodeIndex& Other) const;
463 bool IsSet() const { return InstanceIndex < InvalidIndex; }
464
465 inline bool operator==(const FBTNodeIndex& Other) const { return Other.ExecutionIndex == ExecutionIndex && Other.InstanceIndex == InstanceIndex; }
466 inline bool operator!=(const FBTNodeIndex& Other) const { return !operator==(Other); }
467 inline friend uint32 GetTypeHash(const FBTNodeIndex& Other) { return Other.ExecutionIndex ^ Other.InstanceIndex; }
468
469 inline FString Describe() const { return FString::Printf(TEXT("[%d:%d]"), InstanceIndex, ExecutionIndex); }
470};
471
473{
476
479
480 FBTNodeIndexRange(const FBTNodeIndex& From, const FBTNodeIndex& To) : FromIndex(From), ToIndex(To) {}
481
482 bool IsSet() const { return FromIndex.IsSet() && ToIndex.IsSet(); }
483
484 bool operator==(const FBTNodeIndexRange& Other) const { return Other.FromIndex == FromIndex && Other.ToIndex == ToIndex; }
485 bool operator!=(const FBTNodeIndexRange& Other) const { return !operator==(Other); }
486
487 bool Contains(const FBTNodeIndex& Index) const
488 {
489 return Index.InstanceIndex == FromIndex.InstanceIndex && FromIndex.ExecutionIndex <= Index.ExecutionIndex && Index.ExecutionIndex <= ToIndex.ExecutionIndex;
490 }
491
492 FString Describe() const { return FString::Printf(TEXT("[%s...%s]"), *FromIndex.Describe(), *ToIndex.Describe()); }
493};
494
521
531
607
619
622USTRUCT(BlueprintType)
624{
626
627 FBlackboardKeySelector() : SelectedKeyID(FBlackboard::InvalidKey), bNoneIsAllowedValue(false)
628 {}
629
632 UPROPERTY(transient, EditAnywhere, BlueprintReadWrite, Category = Blackboard)
634
636 UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Category = Blackboard)
637 FName SelectedKeyName;
638
640 UPROPERTY(transient, EditInstanceOnly, BlueprintReadWrite, Category = Blackboard)
642
645 UPROPERTY(transient, EditInstanceOnly, BlueprintReadWrite, Category = Blackboard, meta = (ClampMin = "0", UIMin = "0"))
646 int32 SelectedKeyID;
647
648 // Requires BlueprintReadWrite so that blueprint creators (using MakeBlackboardKeySelector) can specify whether or not None is Allowed.
649 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Blackboard, Meta = (Tooltip = ""))
650 uint32 bNoneIsAllowedValue:1;
651
653 AIMODULE_API void InitSelection(const UBlackboardData& BlackboardAsset);
654
655public:
657 AIMODULE_API void ResolveSelectedKey(const UBlackboardData& BlackboardAsset);
658
659 void AllowNoneAsValue(bool bAllow) { bNoneIsAllowedValue = bAllow; }
660
662
664 AIMODULE_API void AddObjectFilter(UObject* Owner, FName PropertyName, TSubclassOf<UObject> AllowedClass);
665 AIMODULE_API void AddClassFilter(UObject* Owner, FName PropertyName, TSubclassOf<UObject> AllowedClass);
667 AIMODULE_API void AddNativeEnumFilter(UObject* Owner, FName PropertyName, const FString& AllowedEnumName);
668 AIMODULE_API void AddIntFilter(UObject* Owner, FName PropertyName);
669 AIMODULE_API void AddFloatFilter(UObject* Owner, FName PropertyName);
670 AIMODULE_API void AddBoolFilter(UObject* Owner, FName PropertyName);
671 AIMODULE_API void AddVectorFilter(UObject* Owner, FName PropertyName);
672 AIMODULE_API void AddRotatorFilter(UObject* Owner, FName PropertyName);
673 AIMODULE_API void AddStringFilter(UObject* Owner, FName PropertyName);
674 AIMODULE_API void AddNameFilter(UObject* Owner, FName PropertyName);
676
677 template<typename T>
682
683 inline bool IsNone() const { return bNoneIsAllowedValue && GetSelectedKeyID() == FBlackboard::InvalidKey; }
684 inline bool IsSet() const { return GetSelectedKeyID() != FBlackboard::InvalidKey; }
685 inline bool NeedsResolving() const { return GetSelectedKeyID() == FBlackboard::InvalidKey && SelectedKeyName.IsNone() == false; }
686 inline void InvalidateResolvedKey() { SelectedKeyID = FBlackboard::InvalidKey; }
687
688#if WITH_EDITOR
689 void PreSave(const UObject* Outer, const UBlackboardData& Blackboard, FName PropertyName);
690#endif // WITH_EDITOR
691
693};
694
695UCLASS(Abstract, MinimalAPI)
697{
699
700 static AIMODULE_API FString BTLoggingContext;
701
702public:
703
704 static AIMODULE_API FString DescribeNodeHelper(const UBTNode* Node);
705
706 static AIMODULE_API FString DescribeNodeResult(EBTNodeResult::Type NodeResult);
707 static AIMODULE_API FString DescribeFlowAbortMode(EBTFlowAbortMode::Type FlowAbortMode);
708 static AIMODULE_API FString DescribeActiveNode(EBTActiveNode::Type ActiveNodeType);
709 static AIMODULE_API FString DescribeTaskStatus(EBTTaskStatus::Type TaskStatus);
710 static AIMODULE_API FString DescribeNodeUpdateMode(EBTNodeUpdateMode::Type UpdateMode);
711
713 static AIMODULE_API FString GetShortTypeName(const UObject* Ob);
714
715 static FString GetBTLoggingContext() { return BTLoggingContext; }
716
717 // @param NewBTLoggingContext the object which name's will be added to some of the BT logging
718 // pass nullptr to clear
719 static AIMODULE_API void SetBTLoggingContext(const UBTNode* NewBTLoggingContext);
720};
721
OODEFFUNC typedef const int const char * function
Definition oodle2.h:710
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
EBTRestartMode
Definition BehaviorTreeTypes.h:118
EBlackboardNotificationResult
Definition BehaviorTreeTypes.h:62
EBTNodeRelativePriority
Definition BehaviorTreeTypes.h:224
return Self
Definition CocoaThread.cpp:337
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
#define DECLARE_CYCLE_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:679
#define DECLARE_STATS_GROUP(GroupDesc, GroupId, GroupCat)
Definition Stats.h:689
#define DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:684
#define DECLARE_MEMORY_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:687
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:57
#define MAX_uint8
Definition NumericLimits.h:19
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UMETA(...)
Definition ObjectMacros.h:747
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
bool Failed
Definition binka_ue_decode_test.cpp:18
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition Text.h:385
Definition ArrayView.h:139
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT bool IsValidIndex(SizeType Index) const
Definition Array.h:1122
Definition DelegateSignatureImpl.inl:310
Definition EnumAsByte.h:22
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition SubclassOf.h:30
Definition BTAuxiliaryNode.h:31
Definition BTCompositeNode.h:88
Definition BTNode.h:48
Definition BTTaskNode.h:34
Definition BehaviorTreeComponent.h:105
Definition BehaviorTreeTypes.h:697
static AIMODULE_API void SetBTLoggingContext(const UBTNode *NewBTLoggingContext)
Definition BehaviorTreeTypes.cpp:791
static FString GetBTLoggingContext()
Definition BehaviorTreeTypes.h:715
Definition BehaviorTree.h:16
Definition BlackboardData.h:46
Definition BlackboardKeyType.h:24
Definition Class.h:2791
Definition Object.h:95
Definition Class.h:1720
Definition BehaviorTreeTypes.h:75
constexpr uint8 OwnedByComposite
Definition BehaviorTreeTypes.h:79
constexpr int32 ReturnToParent
Definition BehaviorTreeTypes.h:77
constexpr int32 NotInitialized
Definition BehaviorTreeTypes.h:76
Definition BehaviorTreeTypes.h:156
Type
Definition BehaviorTreeTypes.h:159
@ AbortingTask
Definition BehaviorTreeTypes.h:162
@ InactiveTask
Definition BehaviorTreeTypes.h:163
@ Composite
Definition BehaviorTreeTypes.h:160
@ ActiveTask
Definition BehaviorTreeTypes.h:161
Definition BehaviorTreeTypes.h:215
Type
Definition BehaviorTreeTypes.h:217
@ Basic
Definition BehaviorTreeTypes.h:218
@ Detailed
Definition BehaviorTreeTypes.h:219
Definition BehaviorTreeTypes.h:100
Type
Definition BehaviorTreeTypes.h:102
@ SingleRun
Definition BehaviorTreeTypes.h:103
@ Looped
Definition BehaviorTreeTypes.h:104
Definition BehaviorTreeTypes.h:206
Type
Definition BehaviorTreeTypes.h:208
@ OutOfNodes
Definition BehaviorTreeTypes.h:210
@ Regular
Definition BehaviorTreeTypes.h:209
Definition BehaviorTreeTypes.h:143
Type
Definition BehaviorTreeTypes.h:147
Definition BehaviorTreeTypes.h:133
Type
Definition BehaviorTreeTypes.h:135
@ StoreSubtree
Definition BehaviorTreeTypes.h:137
@ Destroy
Definition BehaviorTreeTypes.h:136
Definition BehaviorTreeTypes.h:124
Type
Definition BehaviorTreeTypes.h:126
@ Initialize
Definition BehaviorTreeTypes.h:127
@ RestoreSubtree
Definition BehaviorTreeTypes.h:128
Definition BehaviorTreeTypes.h:84
Type
Definition BehaviorTreeTypes.h:87
Definition BehaviorTreeTypes.h:179
Type
Definition BehaviorTreeTypes.h:182
@ Unknown
Definition BehaviorTreeTypes.h:183
@ Remove
Definition BehaviorTreeTypes.h:185
@ Add
Definition BehaviorTreeTypes.h:184
Definition BehaviorTreeTypes.h:109
Type
Definition BehaviorTreeTypes.h:111
@ Safe
Definition BehaviorTreeTypes.h:112
@ Forced
Definition BehaviorTreeTypes.h:113
Definition BehaviorTreeTypes.h:168
Type
Definition BehaviorTreeTypes.h:171
@ Aborting
Definition BehaviorTreeTypes.h:173
@ Active
Definition BehaviorTreeTypes.h:172
@ Inactive
Definition BehaviorTreeTypes.h:174
Definition BlackboardKey.h:8
constexpr FKey InvalidKey
Definition BlackboardKey.h:33
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition BehaviorTreeTypes.h:473
FString Describe() const
Definition BehaviorTreeTypes.h:492
bool Contains(const FBTNodeIndex &Index) const
Definition BehaviorTreeTypes.h:487
bool IsSet() const
Definition BehaviorTreeTypes.h:482
FBTNodeIndex ToIndex
Definition BehaviorTreeTypes.h:478
bool operator==(const FBTNodeIndexRange &Other) const
Definition BehaviorTreeTypes.h:484
FBTNodeIndexRange(const FBTNodeIndex &From, const FBTNodeIndex &To)
Definition BehaviorTreeTypes.h:480
FBTNodeIndex FromIndex
Definition BehaviorTreeTypes.h:475
bool operator!=(const FBTNodeIndexRange &Other) const
Definition BehaviorTreeTypes.h:485
Definition BehaviorTreeTypes.h:450
bool operator==(const FBTNodeIndex &Other) const
Definition BehaviorTreeTypes.h:465
bool operator!=(const FBTNodeIndex &Other) const
Definition BehaviorTreeTypes.h:466
uint16 InstanceIndex
Definition BehaviorTreeTypes.h:454
FString Describe() const
Definition BehaviorTreeTypes.h:469
FBTNodeIndex(uint16 InInstanceIndex, uint16 InExecutionIndex)
Definition BehaviorTreeTypes.h:460
FBTNodeIndex()
Definition BehaviorTreeTypes.h:459
uint16 ExecutionIndex
Definition BehaviorTreeTypes.h:457
static constexpr uint16 InvalidIndex
Definition BehaviorTreeTypes.h:451
bool TakesPriorityOver(const FBTNodeIndex &Other) const
Definition BehaviorTreeTypes.cpp:458
bool IsSet() const
Definition BehaviorTreeTypes.h:463
friend uint32 GetTypeHash(const FBTNodeIndex &Other)
Definition BehaviorTreeTypes.h:467
Definition BehaviorTreeTypes.h:234
FNodeFlowData()
Definition BehaviorTreeTypes.h:240
uint16 ExecutionIndex
Definition BehaviorTreeTypes.h:235
uint16 bDiscardedTrigger
Definition BehaviorTreeTypes.h:238
uint16 bTrigger
Definition BehaviorTreeTypes.h:237
uint16 bPassed
Definition BehaviorTreeTypes.h:236
Definition BehaviorTreeTypes.h:232
FBehaviorTreeDebuggerInstance()
Definition BehaviorTreeTypes.h:243
TArray< FString > RuntimeDesc
Definition BehaviorTreeTypes.h:261
UBehaviorTree * TreeAsset
Definition BehaviorTreeTypes.h:246
TArray< uint16 > AdditionalActiveNodes
Definition BehaviorTreeTypes.h:255
TWeakObjectPtr< UBTCompositeNode > RootNode
Definition BehaviorTreeTypes.h:249
TArray< uint16 > ActivePath
Definition BehaviorTreeTypes.h:252
bool IsValid() const
Definition BehaviorTreeTypes.h:263
TArray< FNodeFlowData > PathFromPrevious
Definition BehaviorTreeTypes.h:258
Definition BehaviorTreeTypes.h:268
double TimeStamp
Definition BehaviorTreeTypes.h:278
TArray< FBehaviorTreeDebuggerInstance > InstanceStack
Definition BehaviorTreeTypes.h:272
static constexpr int32 InvalidExecutionId
Definition BehaviorTreeTypes.h:280
FBehaviorTreeExecutionStep()
Definition BehaviorTreeTypes.h:269
int32 ExecutionStepId
Definition BehaviorTreeTypes.h:283
bool bIsExecutionPaused
Definition BehaviorTreeTypes.h:286
TMap< FName, FString > BlackboardValues
Definition BehaviorTreeTypes.h:275
Definition BehaviorTreeTypes.h:291
int32 FirstNodeInstance
Definition BehaviorTreeTypes.h:305
TArray< uint8 > InstanceMemory
Definition BehaviorTreeTypes.h:302
TObjectPtr< UBTCompositeNode > RootNode
Definition BehaviorTreeTypes.h:296
FBehaviorTreeInstanceId()
Definition BehaviorTreeTypes.h:307
TObjectPtr< UBehaviorTree > TreeAsset
Definition BehaviorTreeTypes.h:293
TArray< uint16 > Path
Definition BehaviorTreeTypes.h:299
bool operator==(const FBehaviorTreeInstanceId &Other) const
Definition BehaviorTreeTypes.h:309
Definition BehaviorTreeTypes.h:320
void CleanupNodes(UBehaviorTreeComponent &OwnerComp, UBTCompositeNode &Node, EBTMemoryClear::Type CleanupType)
Definition BehaviorTreeTypes.cpp:125
uint32 GetAllocatedSize() const
Definition BehaviorTreeTypes.h:364
TObjectPtr< UBTNode > ActiveNode
Definition BehaviorTreeTypes.h:325
void ResetActiveAuxNodes()
Definition BehaviorTreeTypes.cpp:315
void AddToParallelTasks(FBehaviorTreeParallelTask &&ParallelTask)
Definition BehaviorTreeTypes.cpp:323
void RemoveFromActiveAuxNodes(UBTAuxiliaryNode *AuxNode)
Definition BehaviorTreeTypes.cpp:292
void IncMemoryStats() const
Definition BehaviorTreeTypes.h:365
uint8 InstanceIdIndex
Definition BehaviorTreeTypes.h:337
TObjectPtr< UBTCompositeNode > RootNode
Definition BehaviorTreeTypes.h:322
TArray< uint8 > InstanceMemory
Definition BehaviorTreeTypes.h:334
void DeactivateNodes(FBehaviorTreeSearchData &SearchData, uint16 InstanceIndex)
Definition BehaviorTreeTypes.cpp:420
TArrayView< const FBehaviorTreeParallelTask > GetParallelTasks() const
Definition BehaviorTreeTypes.h:403
TArrayView< const uint8 > GetInstanceMemory() const
Definition BehaviorTreeTypes.h:424
TEnumAsByte< EBTActiveNode::Type > ActiveNodeType
Definition BehaviorTreeTypes.h:340
TArray< TObjectPtr< UBTAuxiliaryNode > > ActiveAuxNodes
Definition BehaviorTreeTypes.h:328
bool IsValidParallelTaskIndex(const int32 Index) const
Definition BehaviorTreeTypes.h:415
void ExecuteOnEachAuxNode(TFunctionRef< void(const UBTAuxiliaryNode &)> ExecFunc)
Definition BehaviorTreeTypes.cpp:355
void ExecuteOnEachParallelTask(TFunctionRef< void(const FBehaviorTreeParallelTask &, const int32)> ExecFunc)
Definition BehaviorTreeTypes.cpp:368
TArrayView< UBTAuxiliaryNode *const > GetActiveAuxNodes() const
Definition BehaviorTreeTypes.h:382
FBTInstanceDeactivation DeactivationNotify
Definition BehaviorTreeTypes.h:343
bool HasActiveNode(uint16 TestExecutionIndex) const
Definition BehaviorTreeTypes.cpp:393
void DecMemoryStats() const
Definition BehaviorTreeTypes.h:366
void RemoveParallelTaskAt(int32 TaskIndex)
Definition BehaviorTreeTypes.cpp:331
AIMODULE_API FBehaviorTreeInstance()
Definition BehaviorTreeTypes.cpp:187
void MarkParallelTaskAsAbortingAt(int32 TaskIndex)
Definition BehaviorTreeTypes.cpp:342
void SetInstanceMemory(const TArray< uint8 > &Memory)
Definition BehaviorTreeTypes.cpp:348
void AddToActiveAuxNodes(UBTAuxiliaryNode *AuxNode)
Definition BehaviorTreeTypes.cpp:269
TArray< FBehaviorTreeParallelTask > ParallelTasks
Definition BehaviorTreeTypes.h:331
Definition BehaviorTreeTypes.h:191
EBTTaskStatus::Type Status
Definition BehaviorTreeTypes.h:196
bool operator==(const UBTTaskNode *OtherTask) const
Definition BehaviorTreeTypes.h:202
FBehaviorTreeParallelTask(const UBTTaskNode *InTaskNode, EBTTaskStatus::Type InStatus)
Definition BehaviorTreeTypes.h:199
bool operator==(const FBehaviorTreeParallelTask &Other) const
Definition BehaviorTreeTypes.h:201
FBehaviorTreeParallelTask()
Definition BehaviorTreeTypes.h:198
TObjectPtr< const UBTTaskNode > TaskNode
Definition BehaviorTreeTypes.h:193
Definition BehaviorTreeTypes.h:610
FBehaviorTreePropertyMemory()
Definition BehaviorTreeTypes.h:614
uint16 Offset
Definition BehaviorTreeTypes.h:611
uint16 BlockSize
Definition BehaviorTreeTypes.h:612
FBehaviorTreePropertyMemory(int32 Value)
Definition BehaviorTreeTypes.h:615
int32 Pack() const
Definition BehaviorTreeTypes.h:617
Definition BehaviorTreeTypes.h:534
void Reset()
Definition BehaviorTreeTypes.cpp:526
uint32 bPostponeSearch
Definition BehaviorTreeTypes.h:576
UBehaviorTreeComponent & OwnerComp
Definition BehaviorTreeTypes.h:536
FBTNodeIndex DeactivatedBranchStart
Definition BehaviorTreeTypes.h:561
int32 SearchId
Definition BehaviorTreeTypes.h:555
FBehaviorTreeSearchData()=delete
TArray< FBehaviorTreeSearchUpdate > PendingUpdates
Definition BehaviorTreeTypes.h:540
FBTNodeIndex SearchStart
Definition BehaviorTreeTypes.h:549
FBTNodeIndex RollbackDeactivatedBranchEnd
Definition BehaviorTreeTypes.h:570
void AddUniqueUpdate(const FBehaviorTreeSearchUpdate &UpdateInfo)
Definition BehaviorTreeTypes.cpp:476
FBehaviorTreeSearchData(UBehaviorTreeComponent &InOwnerComp)
Definition BehaviorTreeTypes.h:593
uint32 bPreserveActiveNodeMemoryOnRollback
Definition BehaviorTreeTypes.h:582
int32 RollbackInstanceIdx
Definition BehaviorTreeTypes.h:558
FBTNodeIndex DeactivatedBranchEnd
Definition BehaviorTreeTypes.h:564
uint32 bFilterOutRequestFromDeactivatedBranch
Definition BehaviorTreeTypes.h:573
uint32 bSearchInProgress
Definition BehaviorTreeTypes.h:579
FBTNodeIndex RollbackDeactivatedBranchStart
Definition BehaviorTreeTypes.h:567
FBTNodeIndex SearchRootNode
Definition BehaviorTreeTypes.h:546
void AssignSearchId()
Definition BehaviorTreeTypes.cpp:520
FBTNodeIndex SearchEnd
Definition BehaviorTreeTypes.h:552
TArray< FBehaviorTreeSearchUpdateNotify > PendingNotifies
Definition BehaviorTreeTypes.h:543
Definition BehaviorTreeTypes.h:524
uint16 InstanceIndex
Definition BehaviorTreeTypes.h:525
FBehaviorTreeSearchUpdateNotify()
Definition BehaviorTreeTypes.h:528
FBehaviorTreeSearchUpdateNotify(uint16 InInstanceIndex, EBTNodeResult::Type InNodeResult)
Definition BehaviorTreeTypes.h:529
TEnumAsByte< EBTNodeResult::Type > NodeResult
Definition BehaviorTreeTypes.h:526
Definition BehaviorTreeTypes.h:497
TObjectPtr< UBTAuxiliaryNode > AuxNode
Definition BehaviorTreeTypes.h:498
FBehaviorTreeSearchUpdate()
Definition BehaviorTreeTypes.h:511
uint16 InstanceIndex
Definition BehaviorTreeTypes.h:501
uint8 bPostUpdate
Definition BehaviorTreeTypes.h:506
TObjectPtr< UBTTaskNode > TaskNode
Definition BehaviorTreeTypes.h:499
FBehaviorTreeSearchUpdate(const UBTAuxiliaryNode *InAuxNode, uint16 InInstanceIndex, EBTNodeUpdateMode::Type InMode)
Definition BehaviorTreeTypes.h:514
uint8 bApplySkipped
Definition BehaviorTreeTypes.h:509
TEnumAsByte< EBTNodeUpdateMode::Type > Mode
Definition BehaviorTreeTypes.h:503
FBehaviorTreeSearchUpdate(const UBTTaskNode *InTaskNode, uint16 InInstanceIndex, EBTNodeUpdateMode::Type InMode)
Definition BehaviorTreeTypes.h:517
Definition BehaviorTreeTypes.h:624
FBlackboard::FKey GetSelectedKeyID() const
Definition BehaviorTreeTypes.h:661
friend FBlackboardDecoratorDetails
Definition BehaviorTreeTypes.h:692
bool IsSet() const
Definition BehaviorTreeTypes.h:684
bool NeedsResolving() const
Definition BehaviorTreeTypes.h:685
void AddStructFilter(UObject *Owner, FName PropertyName)
Definition BehaviorTreeTypes.h:678
void InvalidateResolvedKey()
Definition BehaviorTreeTypes.h:686
bool IsNone() const
Definition BehaviorTreeTypes.h:683
Definition BlackboardKey.h:18
Definition InputCoreTypes.h:50
Definition DelegateBase.h:179
Definition BehaviorTreeTypes.h:724
FScopedBTLoggingContext()=delete
FScopedBTLoggingContext(const UBTNode *Context)
Definition BehaviorTreeTypes.h:726
~FScopedBTLoggingContext()
Definition BehaviorTreeTypes.h:731
Definition Class.h:5288
Definition IsValidVariadicFunctionArg.h:14
static constexpr bool Value
Definition IsValidVariadicFunctionArg.h:19
Definition NumericLimits.h:41
Definition ObjectPtr.h:488
Definition WeakObjectPtrTemplates.h:25