UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AITypes.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"
6#include "Stats/Stats.h"
9#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_4
12#endif
14#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_4
15#include "GameFramework/Actor.h"
16#endif
17#include "AITypes.generated.h"
18
19class AActor;
21
23
24#define TEXT_AI_LOCATION(v) (FAISystem::IsValidLocation(v) ? *(v).ToString() : TEXT("Invalid"))
25
26namespace FAISystem
27{
32 constexpr float InvalidRange = -1.f;
33 constexpr float InfiniteInterval = -FLT_MAX;
35
42
43 inline bool IsValidDirection(const FVector& TestVector)
44 {
45 return IsValidLocation(TestVector) == true && TestVector.IsZero() == false;
46 }
47
48 inline bool IsValidRotation(const FRotator& TestRotation)
49 {
50 return TestRotation != InvalidRotation;
51 }
52
54 {
56 }
57}
58
59UENUM()
61{
62 enum Type : int
63 {
65 Enable UMETA(DisplayName = "Yes"),
66 Disable UMETA(DisplayName = "No"),
67
69 };
70}
71
72UENUM()
81
82namespace FAISystem
83{
85 {
86 return Option == EAIOptionFlag::Default ? DefaultOption : (Option == EAIOptionFlag::Enable);
87 }
88
90 {
91 return Value ? EAIOptionFlag::Enable : EAIOptionFlag::Disable;
92 }
93}
94
96{
97 enum Type
98 {
101
102 MAX
103 };
104}
105
106namespace FAIMoveFlag
107{
108 constexpr bool StopOnOverlap = true;
109 constexpr bool UsePathfinding = true;
110 constexpr bool IgnorePathfinding = false;
111}
112
114{
120}
121
122UENUM()
141
142namespace EAIRequestPriority
143{
145};
146
147UENUM()
149{
150 enum Type : int
151 {
153 Logic,
156
158 };
159}
160
170template<typename TCounter>
172{
173 const typename TCounter::Type Index;
174 const FName Name;
175private:
176 static AIMODULE_API TCounter Counter;
177protected:
179 {
180 return Counter;
181 }
182
183 // back-door for forcing IDs
184 FAINamedID(const FName& InName, typename TCounter::Type InIndex)
185 : Index(InIndex), Name(InName)
186 {
187 GetCounter().OnIndexForced(InIndex);
188 }
189
190public:
191 FAINamedID(const FName& InName)
192 : Index(GetCounter().GetNextAvailableID()), Name(InName)
193 {}
194
198
200 {
201 new(this) FAINamedID(Other);
202 return *this;
203 }
204
206 : Index(typename TCounter::Type(-1)), Name(TEXT("Invalid"))
207 {}
208
209 operator typename TCounter::Type() const { return Index; }
210 bool IsValid() const { return Index != InvalidID().Index; }
211
212 static uint32 GetSize() { return GetCounter().GetSize(); }
213
219
220 friend inline uint32 GetTypeHash(const FAINamedID& ID)
221 {
222 return GetTypeHash(ID.Index);
223 }
224};
225
226template<typename TCounter>
228{
229 const typename TCounter::Type Index;
230private:
231 static AIMODULE_API TCounter Counter;
232protected:
234 {
235 return Counter;
236 }
237
238 explicit FAIGenericID(typename TCounter::Type InIndex)
239 : Index(InIndex)
240 {}
241
242public:
243
247
249 {
250 new(this) FAIGenericID(Other);
251 return *this;
252 }
253
257
258 static FAIGenericID GetNextID() { return FAIGenericID(GetCounter().GetNextAvailableID()); }
259
260 UE_DEPRECATED(5.6, "AIGenericId is not convertible to its base type anymore.")
261 operator typename TCounter::Type() const { return Index; }
262
263 bool IsValid() const { return Index != InvalidID().Index; }
264
265 bool operator==(const FAIGenericID Other) const { return Index == Other.Index; }
266 bool operator!=(const FAIGenericID Other) const { return Index != Other.Index; }
267
268 static uint32 GetSize() { return GetCounter().GetSize(); }
269
275
276 friend inline uint32 GetTypeHash(const FAIGenericID& ID)
277 {
278 return GetTypeHash(ID.Index);
279 }
280};
281
282template<typename TCounterType>
294
297{};
299
302{
303 static constexpr uint32 NoResources = 0;
304 static constexpr uint32 AllResources = uint32(-1);
305 static constexpr uint8 MaxFlags = 32;
306private:
307 uint32 Flags;
308public:
310 FAIResourcesSet(const FAIResourceID& Resource) : Flags(0)
311 {
312 AddResource(Resource);
313 }
314
315 FAIResourcesSet& AddResourceIndex(uint8 ResourceIndex) { Flags |= (1 << ResourceIndex); return *this; }
316 FAIResourcesSet& RemoveResourceIndex(uint8 ResourceIndex) { Flags &= ~(1 << ResourceIndex); return *this; }
317 bool ContainsResourceIndex(uint8 ResourceID) const { return (Flags & (1 << ResourceID)) != 0; }
318
319 FAIResourcesSet& AddResource(const FAIResourceID& Resource) { AddResourceIndex(Resource.Index); return *this; }
320 FAIResourcesSet& RemoveResource(const FAIResourceID& Resource) { RemoveResourceIndex(Resource.Index); return *this; }
321 bool ContainsResource(const FAIResourceID& Resource) const { return ContainsResourceIndex(Resource.Index); }
322
323 bool IsEmpty() const { return Flags == 0; }
324 void Clear() { Flags = 0; }
325};
326
329{
332
334
337
340
343
344 inline bool IsLocked() const
345 {
346 return Locks != 0;
347 }
348
350 {
351 return (Locks & (1 << LockPriority)) != 0;
352 }
353
358 {
359 for (int32 Priority = EAIRequestPriority::MAX - 1; Priority >= LockPriority; --Priority)
360 {
361 if ((Locks & (1 << Priority)) != 0)
362 {
363 return false;
364 }
365 }
366 return true;
367 }
368
369 AIMODULE_API FString GetLockPriorityName() const;
370
372 {
373 Locks |= Other.Locks;
374 }
375
377 {
378 return Locks == Other.Locks;
379 }
380
381private:
382 TArray<uint8> ResourceLockCount;
383 FLockFlags Locks;
384 bool bUseResourceLockCount;
385};
386
388{
389 extern AIMODULE_API const FAIResourceID InvalidResource;
390 extern AIMODULE_API const FAIResourceID Movement;
391 extern AIMODULE_API const FAIResourceID Logic;
392 extern AIMODULE_API const FAIResourceID Perception;
393
394 AIMODULE_API void RegisterResource(const FAIResourceID& Resource);
395 AIMODULE_API const FAIResourceID& GetResource(int32 ResourceIndex);
396 AIMODULE_API int32 GetResourcesCount();
397 AIMODULE_API FString GetSetDescription(FAIResourcesSet ResourceSet);
398}
399
400
401USTRUCT(BlueprintType)
403{
405
406private:
407 static constexpr uint32 AnyRequestID = 0;
408 static constexpr uint32 InvalidRequestID = uint32(-1);
409
410 UPROPERTY()
411 uint32 RequestID;
412
413public:
414 FAIRequestID(uint32 InRequestID = InvalidRequestID) : RequestID(InRequestID)
415 {}
416
419 inline bool IsEquivalent(uint32 OtherID) const
420 {
421 return OtherID != InvalidRequestID && this->IsValid() && (RequestID == OtherID || RequestID == AnyRequestID || OtherID == AnyRequestID);
422 }
423
424 inline bool IsEquivalent(FAIRequestID Other) const
425 {
426 return IsEquivalent(Other.RequestID);
427 }
428
429 inline bool IsValid() const
430 {
431 return RequestID != InvalidRequestID;
432 }
433
434 inline uint32 GetID() const { return RequestID; }
435
436 void operator=(uint32 OtherID)
437 {
438 RequestID = OtherID;
439 }
440
441 operator uint32() const
442 {
443 return RequestID;
444 }
445
446 FString ToString() const
447 {
448 return FString::FromInt(int32(RequestID));
449 }
450
454};
455
457
459
460USTRUCT()
462{
464
468
470 FAIMoveRequest& SetUsePathfinding(bool bPathfinding) { bUsePathfinding = bPathfinding; return *this; }
471 FAIMoveRequest& SetAllowPartialPath(bool bAllowPartial) { bAllowPartialPath = bAllowPartial; return *this; }
472 FAIMoveRequest& SetRequireNavigableEndLocation(bool bRequire) { bRequireNavigableEndLocation = bRequire; return *this; }
478 FAIMoveRequest& SetApplyCostLimitFromHeuristic(bool bApply, float InCostLimitFactor = FLT_MAX, float InMinimumCostLimit = 0.f) { bApplyCostLimitFromHeuristic = bApply; CostLimitFactor = InCostLimitFactor; MinimumCostLimit = InMinimumCostLimit; return *this; }
479 FAIMoveRequest& SetProjectGoalLocation(bool bProject) { bProjectGoalOnNavigation = bProject; return *this; }
480
481 FAIMoveRequest& SetCanStrafe(bool bStrafe) { bCanStrafe = bStrafe; return *this; }
482 FAIMoveRequest& SetReachTestIncludesAgentRadius(bool bIncludeRadius) { bReachTestIncludesAgentRadius = bIncludeRadius; return *this; }
483 FAIMoveRequest& SetReachTestIncludesGoalRadius(bool bIncludeRadius) { bReachTestIncludesGoalRadius = bIncludeRadius; return *this; }
484 FAIMoveRequest& SetAcceptanceRadius(float Radius) { AcceptanceRadius = Radius; return *this; }
486 FAIMoveRequest& SetUserFlags(int32 InUserFlags) { UserFlags = InUserFlags; return *this; }
487 FAIMoveRequest& SetStartFromPreviousPath(const bool bInStartFromPreviousPath) { bStartFromPreviousPath = bInStartFromPreviousPath; return *this; }
488
490 bool IsValid() const { return bInitialized && (!bMoveToActor || GoalActor.IsValid()); }
491
492 bool IsMoveToActorRequest() const { return bMoveToActor; }
493 AActor* GetGoalActor() const { return bMoveToActor ? GoalActor.Get() : nullptr; }
494 FVector GetGoalLocation() const { return GoalLocation; }
497 AIMODULE_API FVector GetDestination() const;
498
499 bool IsUsingPathfinding() const { return bUsePathfinding; }
500 bool IsUsingPartialPaths() const { return bAllowPartialPath; }
501 bool IsNavigableEndLocationRequired() const { return bRequireNavigableEndLocation; }
502 bool IsProjectingGoal() const { return bProjectGoalOnNavigation; }
503 bool IsApplyingCostLimitFromHeuristic() const { return bApplyCostLimitFromHeuristic; }
504 float GetCostLimitFactor() const { return CostLimitFactor; }
505 float GetMinimumCostLimit() const { return MinimumCostLimit; }
507
508 bool CanStrafe() const { return bCanStrafe; }
509 bool IsReachTestIncludingAgentRadius() const { return bReachTestIncludesAgentRadius; }
510 bool IsReachTestIncludingGoalRadius() const { return bReachTestIncludesGoalRadius; }
511 float GetAcceptanceRadius() const { return AcceptanceRadius; }
512 const FCustomMoveSharedPtr& GetUserData() const { return UserData; }
513 int32 GetUserFlags() const { return UserFlags; }
514
515 const bool ShouldStartFromPreviousPath() const { return bStartFromPreviousPath; }
516 AIMODULE_API void SetGoalActor(const AActor* InGoalActor);
517 AIMODULE_API void SetGoalLocation(const FVector& InGoalLocation);
518
519 AIMODULE_API bool UpdateGoalLocation(const FVector& NewLocation) const;
520 AIMODULE_API FString ToString() const;
521
522protected:
523
525 UPROPERTY()
527
529 mutable FVector GoalLocation;
530
533
535 uint32 bInitialized : 1;
536
538 uint32 bMoveToActor : 1;
539
541 uint32 bUsePathfinding : 1;
542
544 uint32 bAllowPartialPath : 1;
545
547 uint32 bRequireNavigableEndLocation : 1;
548
550 uint32 bApplyCostLimitFromHeuristic : 1;
551
553 uint32 bProjectGoalOnNavigation : 1;
554
556 uint32 bStartFromPreviousPath : 1;
557
559 uint32 bReachTestIncludesAgentRadius : 1;
560
562 uint32 bReachTestIncludesGoalRadius : 1;
563
565 uint32 bCanStrafe : 1;
566
568 float AcceptanceRadius;
569
571 float CostLimitFactor;
572
574 float MinimumCostLimit;
575
578
580 int32 UserFlags;
581};
582
583UENUM()
585{
586 Less,
588 Equal,
589 NotEqual,
591 Greater,
592 IsTrue,
593
595};
596
597USTRUCT()
599{
601
602 UPROPERTY(EditAnywhere, Category=Time)
603 float Interval;
604
605 float TimeLeft;
606
607 explicit FIntervalCountdown(const float InInterval = -1.f) : Interval(InInterval), TimeLeft(0) {}
608
609 void Set(const float InNewTimeLeft)
610 {
611 TimeLeft = InNewTimeLeft;
612 }
613
615 bool Tick(const float TimeDelta)
616 {
617 TimeLeft -= TimeDelta;
618 return TimeLeft <= 0;
619 }
620
622 void Reset()
623 {
624 TimeLeft = Interval;
625 }
626
628 float GetElapsedTime() const
629 {
630 ensure(Interval > 0);
631 // using -TimeLeft because at this point TimeLeft is negative
632 return (Interval - TimeLeft);
633 }
634
637 {
638 return Interval > 0 ? GetElapsedTime() : FallbackValue;
639 }
640};
FAINamedID< FAIResCounter > FAIResourceID
Definition AITypes.h:298
FAIDistanceType
Definition AITypes.h:74
EGenericAICheck
Definition AITypes.h:585
TSharedPtr< FMoveRequestCustomData, ESPMode::ThreadSafe > FCustomMoveSharedPtr
Definition AITypes.h:20
#define ensure( InExpression)
Definition AssertionMacros.h:464
@ 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
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define FVector
Definition IOSSystemIncludes.h:8
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
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 Actor.h:257
Definition NameTypes.h:617
Definition Array.h:670
Definition SharedPointer.h:692
Definition SubclassOf.h:30
Definition NavigationQueryFilter.h:107
Definition AITypes.h:96
Type
Definition AITypes.h:98
@ MAX
Definition AITypes.h:102
@ Force
Definition AITypes.h:99
@ DoNotForce
Definition AITypes.h:100
Definition AITypes.h:149
Type
Definition AITypes.h:151
Definition AITypes.h:114
Type
Definition AITypes.h:116
@ RestartedInstead
Definition AITypes.h:118
@ Continue
Definition AITypes.h:117
Definition AITypes.h:61
Type
Definition AITypes.h:63
@ Default
Definition AITypes.h:64
Definition AITypes.h:124
constexpr int32 Lowest
Definition AITypes.h:144
Type
Definition AITypes.h:126
@ Reaction
Definition AITypes.h:134
@ SoftScript
Definition AITypes.h:128
@ HardScript
Definition AITypes.h:132
@ Logic
Definition AITypes.h:130
Definition AITypes.h:107
constexpr bool UsePathfinding
Definition AITypes.h:109
constexpr bool IgnorePathfinding
Definition AITypes.h:110
constexpr bool StopOnOverlap
Definition AITypes.h:108
Definition AITypes.h:388
Definition AIController.h:459
bool IsValidRotation(const FRotator &TestRotation)
Definition AITypes.h:48
bool IsValidLocation(const FVector &TestLocation)
Definition AITypes.h:36
constexpr FVector InvalidDirection
Definition AITypes.h:31
bool PickAIOption(EAIOptionFlag::Type Option, bool DefaultOption)
Definition AITypes.h:84
EAIOptionFlag::Type BoolToAIOption(bool Value)
Definition AITypes.h:89
constexpr float InfiniteInterval
Definition AITypes.h:33
AIMODULE_API const FQuat InvalidOrientation
Definition AITypes.cpp:12
AIMODULE_API const FRotator InvalidRotation
Definition AITypes.cpp:11
bool IsValidOrientation(const FQuat &TestOrientation)
Definition AITypes.h:53
constexpr float InvalidRange
Definition AITypes.h:32
bool IsValidDirection(const FVector &TestVector)
Definition AITypes.h:43
constexpr uint32 InvalidUnsignedID
Definition AITypes.h:34
constexpr FVector InvalidLocation
Definition AITypes.h:30
U16 Index
Definition radfft.cpp:71
Definition AITypes.h:284
Type GetNextAvailableID()
Definition AITypes.h:290
uint32 GetSize() const
Definition AITypes.h:291
TCounterType Type
Definition AITypes.h:285
FAIBasicCounter()
Definition AITypes.h:289
Type NextAvailableID
Definition AITypes.h:287
void OnIndexForced(Type ForcedIndex)
Definition AITypes.h:292
Definition AITypes.h:228
friend uint32 GetTypeHash(const FAIGenericID &ID)
Definition AITypes.h:276
bool IsValid() const
Definition AITypes.h:263
const TCounter::Type Index
Definition AITypes.h:229
FAIGenericID(typename TCounter::Type InIndex)
Definition AITypes.h:238
static uint32 GetSize()
Definition AITypes.h:268
static FAIGenericID GetNextID()
Definition AITypes.h:258
bool operator==(const FAIGenericID Other) const
Definition AITypes.h:265
operator typename TCounter::Type() const
Definition AITypes.h:261
FAIGenericID()
Definition AITypes.h:254
FAIGenericID(const FAIGenericID &Other)
Definition AITypes.h:244
bool operator!=(const FAIGenericID Other) const
Definition AITypes.h:266
FAIGenericID & operator=(const FAIGenericID &Other)
Definition AITypes.h:248
static TCounter & GetCounter()
Definition AITypes.h:233
static FAIGenericID< TCounter > InvalidID()
Definition AITypes.h:270
Definition AITypes.h:462
float GetMinimumCostLimit() const
Definition AITypes.h:505
FAIMoveRequest & SetNavigationFilter(TSubclassOf< UNavigationQueryFilter > Filter)
Definition AITypes.h:469
TSubclassOf< UNavigationQueryFilter > GetNavigationFilter() const
Definition AITypes.h:506
bool IsUsingPathfinding() const
Definition AITypes.h:499
const FCustomMoveSharedPtr & GetUserData() const
Definition AITypes.h:512
bool IsReachTestIncludingGoalRadius() const
Definition AITypes.h:510
FVector GetGoalLocation() const
Definition AITypes.h:494
FAIMoveRequest & SetAcceptanceRadius(float Radius)
Definition AITypes.h:484
const bool ShouldStartFromPreviousPath() const
Definition AITypes.h:515
FAIMoveRequest & SetUserData(const FCustomMoveSharedPtr &InUserData)
Definition AITypes.h:485
FAIMoveRequest & SetApplyCostLimitFromHeuristic(bool bApply, float InCostLimitFactor=FLT_MAX, float InMinimumCostLimit=0.f)
Definition AITypes.h:478
int32 GetUserFlags() const
Definition AITypes.h:513
FAIMoveRequest & SetCanStrafe(bool bStrafe)
Definition AITypes.h:481
FAIMoveRequest & SetUserFlags(int32 InUserFlags)
Definition AITypes.h:486
AActor * GetGoalActor() const
Definition AITypes.h:493
bool IsProjectingGoal() const
Definition AITypes.h:502
bool IsValid() const
Definition AITypes.h:490
FAIMoveRequest & SetProjectGoalLocation(bool bProject)
Definition AITypes.h:479
bool IsMoveToActorRequest() const
Definition AITypes.h:492
FAIMoveRequest & SetUsePathfinding(bool bPathfinding)
Definition AITypes.h:470
bool IsUsingPartialPaths() const
Definition AITypes.h:500
FAIMoveRequest & SetStartFromPreviousPath(const bool bInStartFromPreviousPath)
Definition AITypes.h:487
FAIMoveRequest & SetRequireNavigableEndLocation(bool bRequire)
Definition AITypes.h:472
bool CanStrafe() const
Definition AITypes.h:508
float GetCostLimitFactor() const
Definition AITypes.h:504
bool IsApplyingCostLimitFromHeuristic() const
Definition AITypes.h:503
float GetAcceptanceRadius() const
Definition AITypes.h:511
bool IsReachTestIncludingAgentRadius() const
Definition AITypes.h:509
bool IsNavigableEndLocationRequired() const
Definition AITypes.h:501
FAIMoveRequest & SetAllowPartialPath(bool bAllowPartial)
Definition AITypes.h:471
FAIMoveRequest & SetReachTestIncludesAgentRadius(bool bIncludeRadius)
Definition AITypes.h:482
FAIMoveRequest & SetReachTestIncludesGoalRadius(bool bIncludeRadius)
Definition AITypes.h:483
Definition AITypes.h:172
FAINamedID(const FName &InName, typename TCounter::Type InIndex)
Definition AITypes.h:184
operator typename TCounter::Type() const
Definition AITypes.h:209
static TCounter & GetCounter()
Definition AITypes.h:178
FAINamedID()
Definition AITypes.h:205
FAINamedID(const FAINamedID &Other)
Definition AITypes.h:195
const TCounter::Type Index
Definition AITypes.h:173
bool IsValid() const
Definition AITypes.h:210
FAINamedID(const FName &InName)
Definition AITypes.h:191
static FAINamedID< TCounter > InvalidID()
Definition AITypes.h:214
static uint32 GetSize()
Definition AITypes.h:212
const FName Name
Definition AITypes.h:174
FAINamedID & operator=(const FAINamedID &Other)
Definition AITypes.h:199
friend uint32 GetTypeHash(const FAINamedID &ID)
Definition AITypes.h:220
Definition AITypes.h:403
static AIMODULE_API const FAIRequestID CurrentRequest
Definition AITypes.h:452
FString ToString() const
Definition AITypes.h:446
static AIMODULE_API const FAIRequestID InvalidRequest
Definition AITypes.h:453
bool IsEquivalent(FAIRequestID Other) const
Definition AITypes.h:424
bool IsValid() const
Definition AITypes.h:429
static AIMODULE_API const FAIRequestID AnyRequest
Definition AITypes.h:451
void operator=(uint32 OtherID)
Definition AITypes.h:436
FAIRequestID(uint32 InRequestID=InvalidRequestID)
Definition AITypes.h:414
uint32 GetID() const
Definition AITypes.h:434
bool IsEquivalent(uint32 OtherID) const
Definition AITypes.h:419
Definition AITypes.h:297
Definition AITypes.h:329
bool IsAvailableFor(EAIRequestPriority::Type LockPriority) const
Definition AITypes.h:357
bool operator==(const FAIResourceLock &Other) const
Definition AITypes.h:376
AIMODULE_API void ForceClearAllLocks()
Definition AITypes.cpp:61
AIMODULE_API void SetUseResourceLockCount(bool inUseResourceLockCount)
Definition AITypes.cpp:54
AIMODULE_API void ClearLock(EAIRequestPriority::Type LockPriority)
Definition AITypes.cpp:34
void operator+=(const FAIResourceLock &Other)
Definition AITypes.h:371
AIMODULE_API void SetLock(EAIRequestPriority::Type LockPriority)
Definition AITypes.cpp:23
AIMODULE_API FString GetLockPriorityName() const
Definition AITypes.cpp:72
bool IsLockedBy(EAIRequestPriority::Type LockPriority) const
Definition AITypes.h:349
AIMODULE_API FAIResourceLock()
Definition AITypes.cpp:17
bool IsLocked() const
Definition AITypes.h:344
uint16 FLockFlags
Definition AITypes.h:331
Definition AITypes.h:302
bool ContainsResource(const FAIResourceID &Resource) const
Definition AITypes.h:321
static constexpr uint32 AllResources
Definition AITypes.h:304
static constexpr uint8 MaxFlags
Definition AITypes.h:305
FAIResourcesSet & RemoveResource(const FAIResourceID &Resource)
Definition AITypes.h:320
bool ContainsResourceIndex(uint8 ResourceID) const
Definition AITypes.h:317
FAIResourcesSet(const FAIResourceID &Resource)
Definition AITypes.h:310
FAIResourcesSet & RemoveResourceIndex(uint8 ResourceIndex)
Definition AITypes.h:316
FAIResourcesSet(uint32 ResourceSetDescription=NoResources)
Definition AITypes.h:309
bool IsEmpty() const
Definition AITypes.h:323
FAIResourcesSet & AddResource(const FAIResourceID &Resource)
Definition AITypes.h:319
static constexpr uint32 NoResources
Definition AITypes.h:303
FAIResourcesSet & AddResourceIndex(uint8 ResourceIndex)
Definition AITypes.h:315
void Clear()
Definition AITypes.h:324
Definition AITypes.h:599
void Set(const float InNewTimeLeft)
Definition AITypes.h:609
float GetElapsedTimeWithFallback(const float FallbackValue) const
Definition AITypes.h:636
void Reset()
Definition AITypes.h:622
bool Tick(const float TimeDelta)
Definition AITypes.h:615
float GetElapsedTime() const
Definition AITypes.h:628
Definition WeakObjectPtrTemplates.h:25
Definition Vector.h:44
T Z
Definition Vector.h:68
T Y
Definition Vector.h:65
bool IsZero() const
Definition Vector.h:1761
T X
Definition Vector.h:62