UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
VehicleBlackboard.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "Templates/Casts.h"
8
9#define UE_API CHAOSVEHICLESCORE_API
10
11
12
19{
20private:
21 class BlackboardObject
22 {
23 // untyped base
24 struct ObjectContainerBase
25 {
26 };
27
28 // typed container
29 template<typename T>
30 struct ObjectContainer : ObjectContainerBase
31 {
32 ObjectContainer(const T& t) : Object(t) {}
33
34 const T& Get() { return Object; }
35 T& GetMutable() { return Object; }
36
37 private:
38 T Object;
39 };
40
41
42 public:
43 template<typename T>
44 BlackboardObject(const T& obj) : ContainerPtr(MakeShared<ObjectContainer<T>>(obj)) {}
45
46 template<typename T>
47 const T& Get() const
48 {
49 ObjectContainer<T>* TypedContainer = static_cast<ObjectContainer<T>*>(ContainerPtr.Get());
50 return TypedContainer->Get();
51 }
52
53 template<typename T>
54 T& GetMutable() const
55 {
56 ObjectContainer<T>* TypedContainer = static_cast<ObjectContainer<T>*>(ContainerPtr.Get());
57 return TypedContainer->GetMutable();
58 }
59
60 private:
62 }; // end BlackboardObject
63
64public:
66 {
67 FullReset, // All blackboard objects should be invalidated
68 Rollback, // Invalidate any rollback-sensitive objects
69 };
70
72 template<typename T>
74 {
75 if (const TSharedPtr<BlackboardObject>* ExistingObject = ObjectsByName.Find(ObjName))
76 {
77 OutFoundValue = ExistingObject->Get()->Get<T>();
78 return true;
79 }
80
81 return false;
82 }
83
86 {
87 return ObjectsByName.Contains(ObjName);
88 }
89
91 template<typename T>
92 void Set(FName ObjName, T Obj)
93 {
94 ObjectsByName.Emplace(ObjName, MakeShared<BlackboardObject>(Obj));
95 }
96
99
102
105
106
107private:
109};
110
111#undef UE_API
TSharedRef< InObjectType, InMode > MakeShared(InArgTypes &&... Args)
Definition SharedPointer.h:2009
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_API
Definition VehicleBlackboard.h:9
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition NameTypes.h:617
Definition VehicleBlackboard.h:19
void Set(FName ObjName, T Obj)
Definition VehicleBlackboard.h:92
bool TryGet(FName ObjName, T &OutFoundValue) const
Definition VehicleBlackboard.h:73
void InvalidateAll()
Definition VehicleBlackboard.h:104
bool Contains(FName ObjName)
Definition VehicleBlackboard.h:85
EInvalidationReason
Definition VehicleBlackboard.h:66
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692