#pragma once

/*
* SDK generated by Dumper-7
*
* https://github.com/Encryqed/Dumper-7
*/

// Package: LevelStreaming

#include "Basic.hpp"

#include "CoreUObject_structs.hpp"
#include "CoreUObject_classes.hpp"
#include "DeveloperSettings_classes.hpp"
#include "LevelStreaming_structs.hpp"
#include "Engine_structs.hpp"
#include "Engine_classes.hpp"
#include "GameplayTags_structs.hpp"


namespace SDK
{

// Class LevelStreaming.LevelStreamingActorSerializer
// 0x0000 (0x0028 - 0x0028)
class ULevelStreamingActorSerializer : public UObject
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelStreamingActorSerializer")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelStreamingActorSerializer")
	}
	static class ULevelStreamingActorSerializer* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelStreamingActorSerializer>();
	}
};
DUMPER7_ASSERTS_ULevelStreamingActorSerializer;

// Class LevelStreaming.LevelStreamingActorSerializerDefault
// 0x0240 (0x0268 - 0x0028)
class ULevelStreamingActorSerializerDefault final : public ULevelStreamingActorSerializer
{
public:
	uint8                                         Pad_28[0x240];                                     // 0x0028(0x0240)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void DynamicActorOnBeginPlay(class AActor* Actor);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelStreamingActorSerializerDefault")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelStreamingActorSerializerDefault")
	}
	static class ULevelStreamingActorSerializerDefault* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelStreamingActorSerializerDefault>();
	}
};
DUMPER7_ASSERTS_ULevelStreamingActorSerializerDefault;

// Class LevelStreaming.LevelStreamingDatabase
// 0x0030 (0x0058 - 0x0028)
class ULevelStreamingDatabase final : public UObject
{
public:
	class ULevelStreamingActorSerializer*         ActorSerializer;                                   // 0x0028(0x0008)(ZeroConstructor, Transient, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	TArray<struct FLevelStreamingActorData>       Actors;                                            // 0x0030(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPrivate)
	TArray<struct FLevelStreamingRuntimeActorData> RuntimeActors;                                    // 0x0040(0x0010)(ZeroConstructor, Transient, NativeAccessSpecifierPrivate)
	bool                                          IsUsingActorSerializer;                            // 0x0050(0x0001)(ZeroConstructor, Transient, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_51[0x7];                                       // 0x0051(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelStreamingDatabase")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelStreamingDatabase")
	}
	static class ULevelStreamingDatabase* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelStreamingDatabase>();
	}
};
DUMPER7_ASSERTS_ULevelStreamingDatabase;

// Class LevelStreaming.LevelStreamingDataLayerSubsystem
// 0x0008 (0x0038 - 0x0030)
class ULevelStreamingDataLayerSubsystem final : public UWorldSubsystem
{
public:
	uint8                                         Pad_30[0x8];                                       // 0x0030(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelStreamingDataLayerSubsystem")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelStreamingDataLayerSubsystem")
	}
	static class ULevelStreamingDataLayerSubsystem* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelStreamingDataLayerSubsystem>();
	}
};
DUMPER7_ASSERTS_ULevelStreamingDataLayerSubsystem;

// Class LevelStreaming.LevelStreamingEditorPerProjectUserSettings
// 0x0000 (0x0038 - 0x0038)
class ULevelStreamingEditorPerProjectUserSettings final : public UDeveloperSettings
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelStreamingEditorPerProjectUserSettings")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelStreamingEditorPerProjectUserSettings")
	}
	static class ULevelStreamingEditorPerProjectUserSettings* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelStreamingEditorPerProjectUserSettings>();
	}
};
DUMPER7_ASSERTS_ULevelStreamingEditorPerProjectUserSettings;

// Class LevelStreaming.LevelStreamingExternalLoader
// 0x0000 (0x0000 - 0x0000)
class ILevelStreamingExternalLoader final
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelStreamingExternalLoader")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelStreamingExternalLoader")
	}
	static class ILevelStreamingExternalLoader* GetDefaultObj()
	{
		return GetDefaultObjImpl<ILevelStreamingExternalLoader>();
	}

	class UObject* AsUObject()
	{
		return reinterpret_cast<UObject*>(this);
	}
	const class UObject* AsUObject() const
	{
		return reinterpret_cast<const UObject*>(this);
	}
};
DUMPER7_ASSERTS_ILevelStreamingExternalLoader;

// Class LevelStreaming.LevelStreamingManager
// 0x00C8 (0x00F8 - 0x0030)
class ULevelStreamingManager final : public UGameInstanceSubsystem
{
public:
	uint8                                         Pad_30[0x8];                                       // 0x0030(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	class ULevelStreamingDatabase*                Database;                                          // 0x0038(0x0008)(ZeroConstructor, Transient, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	TArray<TScriptInterface<class ILevelStreamingExternalLoader>> ExternalLoaders;                   // 0x0040(0x0010)(ZeroConstructor, Transient, UObjectWrapper, NativeAccessSpecifierPrivate)
	uint8                                         Pad_50[0xA8];                                      // 0x0050(0x00A8)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void OnActorEndPlay(class AActor* Actor, EEndPlayReason EndPlayReason);
	void OnActorEndPlayDynamic(class AActor* Actor, EEndPlayReason EndPlayReason);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelStreamingManager")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelStreamingManager")
	}
	static class ULevelStreamingManager* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelStreamingManager>();
	}
};
DUMPER7_ASSERTS_ULevelStreamingManager;

// Class LevelStreaming.LevelStreamingManagerProvider
// 0x0000 (0x0000 - 0x0000)
class ILevelStreamingManagerProvider final
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelStreamingManagerProvider")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelStreamingManagerProvider")
	}
	static class ILevelStreamingManagerProvider* GetDefaultObj()
	{
		return GetDefaultObjImpl<ILevelStreamingManagerProvider>();
	}

	class UObject* AsUObject()
	{
		return reinterpret_cast<UObject*>(this);
	}
	const class UObject* AsUObject() const
	{
		return reinterpret_cast<const UObject*>(this);
	}
};
DUMPER7_ASSERTS_ILevelStreamingManagerProvider;

// Class LevelStreaming.WorldPartitionStateRequestDataAsset
// 0x0068 (0x0098 - 0x0030)
class UWorldPartitionStateRequestDataAsset final : public UPrimaryDataAsset
{
public:
	struct FWorldPartitionStateRequestDataSimple  Data;                                              // 0x0030(0x0068)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("WorldPartitionStateRequestDataAsset")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"WorldPartitionStateRequestDataAsset")
	}
	static class UWorldPartitionStateRequestDataAsset* GetDefaultObj()
	{
		return GetDefaultObjImpl<UWorldPartitionStateRequestDataAsset>();
	}
};
DUMPER7_ASSERTS_UWorldPartitionStateRequestDataAsset;

// Class LevelStreaming.LevelStreamingSerializationConfig
// 0x0028 (0x00C8 - 0x00A0)
class ULevelStreamingSerializationConfig : public UActorComponent
{
public:
	bool                                          RestoreActorTransform;                             // 0x00A0(0x0001)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	bool                                          RestoreActorVisibility;                            // 0x00A1(0x0001)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	bool                                          SerializeComponentsOnlyWithSaveGame;               // 0x00A2(0x0001)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	bool                                          RestoreComponentsVisibility;                       // 0x00A3(0x0001)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	bool                                          RestoreComponentsTransform;                        // 0x00A4(0x0001)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	bool                                          SkipTransformRestoreForDetachedComponents;         // 0x00A5(0x0001)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	bool                                          RestoreActorAttachment;                            // 0x00A6(0x0001)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_A7[0x1];                                       // 0x00A7(0x0001)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<class FName>                           SkipTransformRestoreForComponents;                 // 0x00A8(0x0010)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, Protected, NativeAccessSpecifierProtected)
	TArray<class UClass*>                         SkipTransformRestoreForComponetsClasses;           // 0x00B8(0x0010)(Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, Protected, NativeAccessSpecifierProtected)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelStreamingSerializationConfig")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelStreamingSerializationConfig")
	}
	static class ULevelStreamingSerializationConfig* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelStreamingSerializationConfig>();
	}
};
DUMPER7_ASSERTS_ULevelStreamingSerializationConfig;

// Class LevelStreaming.LevelStreamingSettings
// 0x0100 (0x0138 - 0x0038)
class ULevelStreamingSettings final : public UDeveloperSettings
{
public:
	TSoftClassPtr<class UClass>                   ActorSerializerClass;                              // 0x0038(0x0028)(Edit, Config, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	TSoftClassPtr<class UClass>                   SerializationConfigClass;                          // 0x0060(0x0028)(Edit, Config, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	struct FGameplayTagContainer                  PreloadExclusionTagsWin;                           // 0x0088(0x0020)(Edit, Config, Protected, NativeAccessSpecifierProtected)
	struct FGameplayTagContainer                  SchedulingSupportTagsWin;                          // 0x00A8(0x0020)(Edit, Config, Protected, NativeAccessSpecifierProtected)
	struct FGameplayTagContainer                  PreloadExclusionTagsXSX;                           // 0x00C8(0x0020)(Edit, Config, Protected, NativeAccessSpecifierProtected)
	struct FGameplayTagContainer                  PreloadExclusionTagsXSS;                           // 0x00E8(0x0020)(Edit, Config, Protected, NativeAccessSpecifierProtected)
	struct FGameplayTagContainer                  PreloadExclusionTagsPS5;                           // 0x0108(0x0020)(Edit, Config, Protected, NativeAccessSpecifierProtected)
	struct FDirectoryPath                         WorldStateRequestDataAssetsDirectory;              // 0x0128(0x0010)(Edit, ZeroConstructor, Config, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelStreamingSettings")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelStreamingSettings")
	}
	static class ULevelStreamingSettings* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelStreamingSettings>();
	}
};
DUMPER7_ASSERTS_ULevelStreamingSettings;

// Class LevelStreaming.LevelStreamingStaticLibrary
// 0x0000 (0x0028 - 0x0028)
class ULevelStreamingStaticLibrary final : public UBlueprintFunctionLibrary
{
public:
	static void BuildWorldStateRequestData(const struct FWorldPartitionStateRequestData& InWorldStateRequestData, struct FWorldPartitionStateRequestData* OutWorldStateRequestData, const TArray<class UDataLayerAsset*>& InDataLayerAssets, EDataLayerRuntimeState InDataLayerRuntimeState, bool bIsRecursive);
	static void CacheWorldState(class UObject* WorldContextObject);
	static int32 FindSimilarDataLayerRequest(const TArray<struct FWorldStateDataLayerQuery>& InDataLayerQueries, TSoftObjectPtr<class UDataLayerAsset> InDataLayerAsset, EDataLayerRuntimeState InDataLayerRuntimeState);
	static void RemoveRuntimeActorFromDatabase(class UObject* WorldContextObject, class AActor* Actor);
	static bool ResolveDataLayerRequests(class UObject* WorldContextObject, const TArray<struct FDataLayerStatus>& InDataLayerRequests, TArray<struct FDataLayerStatus>* OutDataLayerRequests);
	static void TravelToLevel(class UObject* WorldContextObject, const struct FStreamableLevelHandle& LevelHandle);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LevelStreamingStaticLibrary")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LevelStreamingStaticLibrary")
	}
	static class ULevelStreamingStaticLibrary* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULevelStreamingStaticLibrary>();
	}
};
DUMPER7_ASSERTS_ULevelStreamingStaticLibrary;

// Class LevelStreaming.LoadingScreenTransitionBase
// 0x0020 (0x0048 - 0x0028)
class ULoadingScreenTransitionBase : public UObject
{
public:
	uint8                                         Pad_28[0x20];                                      // 0x0028(0x0020)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LoadingScreenTransitionBase")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LoadingScreenTransitionBase")
	}
	static class ULoadingScreenTransitionBase* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULoadingScreenTransitionBase>();
	}
};
DUMPER7_ASSERTS_ULoadingScreenTransitionBase;

// Class LevelStreaming.LoadingScreenTransitionProvider
// 0x0000 (0x0000 - 0x0000)
class ILoadingScreenTransitionProvider final
{
public:
	class ULoadingScreenTransitionBase* GetLoadingScreenTransition(const class ULoadingScreenTransitionBase* DefaultLoadingScreenTransition) const;

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LoadingScreenTransitionProvider")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LoadingScreenTransitionProvider")
	}
	static class ILoadingScreenTransitionProvider* GetDefaultObj()
	{
		return GetDefaultObjImpl<ILoadingScreenTransitionProvider>();
	}

	class UObject* AsUObject()
	{
		return reinterpret_cast<UObject*>(this);
	}
	const class UObject* AsUObject() const
	{
		return reinterpret_cast<const UObject*>(this);
	}
};
DUMPER7_ASSERTS_ILoadingScreenTransitionProvider;

// Class LevelStreaming.WorldPartitionLoadingScreenComponent
// 0x00A8 (0x0148 - 0x00A0)
class UWorldPartitionLoadingScreenComponent : public UActorComponent
{
public:
	class ULoadingScreenTransitionBase*           DefaultTransitionWin;                              // 0x00A0(0x0008)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ZeroConstructor, InstancedReference, NoDestructor, PersistentInstance, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	TMap<struct FGameplayTag, class ULoadingScreenTransitionBase*> TransitionsForTagsWin;            // 0x00A8(0x0050)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, ContainsInstancedReference, NativeAccessSpecifierPublic)
	uint8                                         Pad_F8[0x20];                                      // 0x00F8(0x0020)(Fixing Size After Last Property [ Dumper-7 ])
	class ULoadingScreenTransitionBase*           ActiveTransition;                                  // 0x0118(0x0008)(ZeroConstructor, Transient, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	class UObject*                                ActiveTransitionProvider;                          // 0x0120(0x0008)(ZeroConstructor, Transient, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_128[0x20];                                     // 0x0128(0x0020)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void OnWorldPartitionStateChanged(class UWorldPartitionStateRequest* InRequest, EWorldStateRequestState PrevRequestState, EWorldPartitionStateRequestResponse InResponse);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("WorldPartitionLoadingScreenComponent")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"WorldPartitionLoadingScreenComponent")
	}
	static class UWorldPartitionLoadingScreenComponent* GetDefaultObj()
	{
		return GetDefaultObjImpl<UWorldPartitionLoadingScreenComponent>();
	}
};
DUMPER7_ASSERTS_UWorldPartitionLoadingScreenComponent;

// Class LevelStreaming.WorldPartitionStateRequest
// 0x0248 (0x0270 - 0x0028)
class UWorldPartitionStateRequest final : public UObject
{
public:
	uint8                                         Pad_28[0x8];                                       // 0x0028(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	TMulticastInlineDelegate<void(EWorldStateRequestState InRequestState, EWorldPartitionStateRequestResponse InResponse)> OnRequestStateChanged; // 0x0030(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TSoftObjectPtr<class UObject>                 Requester;                                         // 0x0040(0x0028)(Edit, BlueprintVisible, Protected, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	struct FWorldPartitionStateRequestData        Data;                                              // 0x0068(0x00D0)(Edit, BlueprintVisible, Protected, NativeAccessSpecifierProtected)
	EWorldStateRequestActivationMode              ActivationMode;                                    // 0x0138(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_139[0x137];                                    // 0x0139(0x0137)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("WorldPartitionStateRequest")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"WorldPartitionStateRequest")
	}
	static class UWorldPartitionStateRequest* GetDefaultObj()
	{
		return GetDefaultObjImpl<UWorldPartitionStateRequest>();
	}
};
DUMPER7_ASSERTS_UWorldPartitionStateRequest;

// Class LevelStreaming.WorldPartitionStateRequestDataProvider
// 0x0000 (0x0000 - 0x0000)
class IWorldPartitionStateRequestDataProvider final
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("WorldPartitionStateRequestDataProvider")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"WorldPartitionStateRequestDataProvider")
	}
	static class IWorldPartitionStateRequestDataProvider* GetDefaultObj()
	{
		return GetDefaultObjImpl<IWorldPartitionStateRequestDataProvider>();
	}

	class UObject* AsUObject()
	{
		return reinterpret_cast<UObject*>(this);
	}
	const class UObject* AsUObject() const
	{
		return reinterpret_cast<const UObject*>(this);
	}
};
DUMPER7_ASSERTS_IWorldPartitionStateRequestDataProvider;

// Class LevelStreaming.WorldPartitionStateRequester
// 0x0000 (0x0000 - 0x0000)
class IWorldPartitionStateRequester final
{
public:
	void CancelWorldStatePreload(const struct FGameplayTag& InTag);
	void OnRequestStateChanged(EWorldStateRequestState InRequestState, EWorldPartitionStateRequestResponse InResponse);
	void OnSpecificRequestStateChanged(class UWorldPartitionStateRequest* InRequest, EWorldStateRequestState InRequestState, EWorldPartitionStateRequestResponse InResponse);
	void StartWorldStatePreload(const struct FGameplayTag& InTag);
	class UWorldPartitionStateRequest* TriggerWorldStateActivation(const struct FGameplayTag& InTag);

	TArray<struct FWorldPartitionStateRequestData> GetRequestsData() const;

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("WorldPartitionStateRequester")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"WorldPartitionStateRequester")
	}
	static class IWorldPartitionStateRequester* GetDefaultObj()
	{
		return GetDefaultObjImpl<IWorldPartitionStateRequester>();
	}

	class UObject* AsUObject()
	{
		return reinterpret_cast<UObject*>(this);
	}
	const class UObject* AsUObject() const
	{
		return reinterpret_cast<const UObject*>(this);
	}
};
DUMPER7_ASSERTS_IWorldPartitionStateRequester;

// Class LevelStreaming.WorldPartitionStateSubsystem
// 0x0078 (0x00B8 - 0x0040)
class UWorldPartitionStateSubsystem final : public UTickableWorldSubsystem
{
public:
	TMulticastInlineDelegate<void(class UWorldPartitionStateRequest* InRequest, EWorldStateRequestState PrevRequestState, EWorldPartitionStateRequestResponse InResponse)> OnWorldPartitionStateChanged; // 0x0040(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TArray<class UWorldPartitionStateRequest*>    Requests;                                          // 0x0050(0x0010)(ZeroConstructor, NativeAccessSpecifierPrivate)
	TMap<class UDataLayerInstance*, struct FDataLayerInstanceStateStack> DataLayerInstanceStateStacks; // 0x0060(0x0050)(Transient, NativeAccessSpecifierPrivate)
	class UWorldPartitionLoadingScreenComponent*  LoadingScreenComponent;                            // 0x00B0(0x0008)(ExportObject, ZeroConstructor, Transient, InstancedReference, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)

public:
	static void InvalidateWorldStateRequest(class UWorldPartitionStateRequest* InRequest);

	void InvalidateAllWorldStateRequestsForOwner(const TSoftObjectPtr<class UObject>& InOwner, const TArray<class UWorldPartitionStateRequest*>& InRequestsToIgnore);
	class UWorldPartitionStateRequest* RegisterWorldStateRequest(const TSoftObjectPtr<class UObject>& InRequester, const struct FWorldPartitionStateRequestData& InRequestData, EWorldStateRequestActivationMode InActivationMode);

public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("WorldPartitionStateSubsystem")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"WorldPartitionStateSubsystem")
	}
	static class UWorldPartitionStateSubsystem* GetDefaultObj()
	{
		return GetDefaultObjImpl<UWorldPartitionStateSubsystem>();
	}
};
DUMPER7_ASSERTS_UWorldPartitionStateSubsystem;

}

