UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
StateStruct.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Containers/Array.h"
7#include "CoreMinimal.h"
8#include "HAL/Platform.h"
11#include "UObject/Object.h"
15
16#include "StateStruct.generated.h"
17
18class UClass;
19class UStruct;
20
21
98{
99 Initialized, // Default values have been set for the struct
100 NotInitialized // Default values have not been set for the struct
101};
102
103
108{
110 const TCHAR* ConfigSection = nullptr;
111
114
116 UClass* ConfigClass = nullptr;
117
120};
121
122
126USTRUCT()
128{
130
132
133private:
137 UPROPERTY()
138 FString StateName;
139
140
141public:
143 {
144 }
145
151 NETCORE_API FString GetStateName() const;
152
153
154private:
160 EInitStateDefaultsResult InitConfigDefaults()
161 {
162 return InitConfigDefaultsInternal();
163 }
164
168 void ApplyImpliedValues()
169 {
170 ApplyImpliedValuesInternal();
171 }
172
176 void ValidateConfig()
177 {
178 ValidateConfigInternal();
179 }
180
181
182protected:
189
191 {
192 }
193
195 {
196 }
197};
198
199
203UCLASS(config=Engine, PerObjectConfig, MinimalAPI)
205{
207
208public:
215 static NETCORE_API const UStatePerObjectConfig* Get(FStateConfigParms ConfigParms);
216
224 static NETCORE_API void ApplyState(const FStructOnScope& ConfigState, FStateStruct* TargetState);
225
226
227#if !UE_BUILD_SHIPPING
231 NETCORE_API virtual void DebugDump() const;
232#endif
233
234
235protected:
248
249
250private:
254 virtual void LoadStateConfig()
255 {
256 }
257
261 void InitConfigDefaults()
262 {
263 InitConfigDefaultsInternal();
264 }
265
269 virtual void InitConfigDefaultsInternal()
270 {
271 }
272
273
275
276 NETCORE_API virtual void OverridePerObjectConfigSection(FString& SectionName) override;
277
278
288
298 static NETCORE_API bool LoadStructConfig(FStructOnScope& OutStruct, const TCHAR* SectionName, const TCHAR* InFilename=nullptr);
299
300
301private:
302#if !UE_BUILD_SHIPPING
303 struct FStateConfigRegister
304 {
305 const TArray<FString>& StateNames;
307 };
308#endif
309
310private:
312 FStateConfigParms ConfigParms;
313
314#if !UE_BUILD_SHIPPING
316 TArray<FStateConfigRegister> RegisteredStateConfigs;
317#endif
318
320 UPROPERTY()
321 FString PerObjectConfigSection;
322
323public:
325 UPROPERTY(config)
326 bool bEnabled;
327};
328
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
EInitStateDefaultsResult
Definition StateStruct.h:98
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Engine.Build.cs:7
Definition StructOnScope.h:13
Definition Array.h:670
Definition StructOnScope.h:142
Definition Class.h:3793
Definition Object.h:95
COREUOBJECT_API UObject * GetArchetype() const
Definition UObjectArchetype.cpp:283
Definition StateStruct.h:205
virtual NETCORE_API void DebugDump() const
Definition StateStruct.cpp:220
static NETCORE_API const UStatePerObjectConfig * Get(FStateConfigParms ConfigParms)
Definition StateStruct.cpp:26
void RegisterStateConfig(const TArray< FString > &StateNames, TArray< TStructOnScope< U > > &OutStates)
Definition StateStruct.h:244
static NETCORE_API void ApplyState(const FStructOnScope &ConfigState, FStateStruct *TargetState)
Definition StateStruct.cpp:92
Definition Class.h:480
Definition StateStruct.h:108
UClass * ConfigClass
Definition StateStruct.h:116
const TCHAR * ConfigSection
Definition StateStruct.h:110
FString ConfigContext
Definition StateStruct.h:113
UStruct * StateStruct
Definition StateStruct.h:119
Definition StateStruct.h:128
virtual EInitStateDefaultsResult InitConfigDefaultsInternal()
Definition StateStruct.h:185
virtual void ApplyImpliedValuesInternal()
Definition StateStruct.h:190
virtual void ValidateConfigInternal()
Definition StateStruct.h:194