#pragma once

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

// Package: SteamWorkshopMaps

#include "Basic.hpp"

#include "SteamWorkshopMaps_structs.hpp"
#include "Engine_classes.hpp"


SDK_NAMESPACE_START

// Class SteamWorkshopMaps.SteamWorkshopMapReplicator
// 0x01E8 (0x0490 - 0x02A8)
class ASteamWorkshopMapReplicator final : public AInfo
{
public:
	TMulticastInlineDelegate<void(const struct FSteamWorkshopMapNetworkLoadRequest& Request)> OnWorkshopMapLoadRequestChanged; // 0x02A8(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void(class APlayerState* PlayerState, int32 RequestID, ESteamWorkshopMapNetworkLoadState State, const class FString& ErrorMessage)> OnPlayerLoadStateChanged; // 0x02B8(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void(int32 RequestID, const struct FWorkshopMapDescriptor& Descriptor)> OnAllPlayersLoaded; // 0x02C8(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	uint8                                         Pad_2D8[0x8];                                      // 0x02D8(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	struct FSteamWorkshopMapNetworkLoadRequest    CurrentRequest;                                    // 0x02E0(0x0180)(Net, RepNotify, NativeAccessSpecifierPrivate)
	TArray<struct FSteamWorkshopMapPlayerLoadStatus> PlayerLoadStatuses;                             // 0x0460(0x0010)(Net, ZeroConstructor, RepNotify, NativeAccessSpecifierPrivate)
	TArray<class ASteamWorkshopMapClientLoader*>  ClientLoaders;                                     // 0x0470(0x0010)(ZeroConstructor, UObjectWrapper, NativeAccessSpecifierPrivate, TObjectPtr)
	uint8                                         Pad_480[0x10];                                     // 0x0480(0x0010)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	bool HostLoadWorkshopMapFromDescriptor(const class FString& WorkshopItemId, const struct FWorkshopMapDescriptor& Descriptor, const struct FTransform& AnchorTransform, bool bUseDescriptorEntryTransform, const class FString& OptionalLevelNameOverride, bool bAutoUnloadPreviousLevel, int32 PakOrder, const class FString& PackagePath, class FString* ErrorMessage);
	bool HostLoadWorkshopMapFromInstalledItem(const class FString& WorkshopItemId, const struct FTransform& AnchorTransform, bool bUseDescriptorEntryTransform, const class FString& OptionalLevelNameOverride, bool bAutoUnloadPreviousLevel, int32 PakOrder, const class FString& PackagePath, class FString* ErrorMessage);
	bool HostUnloadWorkshopMap(class FString* ErrorMessage);
	void OnRep_CurrentRequest();
	void OnRep_PlayerLoadStatuses();

	bool AreAllPlayersLoaded() const;
	const struct FSteamWorkshopMapNetworkLoadRequest GetCurrentLoadRequest() const;
	const TArray<struct FSteamWorkshopMapPlayerLoadStatus> GetPlayerLoadStatuses() const;

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

// Class SteamWorkshopMaps.SteamWorkshopMapClientLoader
// 0x01A8 (0x0450 - 0x02A8)
class ASteamWorkshopMapClientLoader final : public AInfo
{
public:
	uint8                                         Pad_2A8[0x8];                                      // 0x02A8(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	struct FSteamWorkshopMapNetworkLoadRequest    LoadRequest;                                       // 0x02B0(0x0180)(Net, RepNotify, NativeAccessSpecifierPrivate)
	class ASteamWorkshopMapReplicator*            Replicator;                                        // 0x0430(0x0008)(Net, ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	class ULevelStreamingDynamic*                 ActiveStreamingLevel;                              // 0x0438(0x0008)(ZeroConstructor, Transient, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	uint8                                         Pad_440[0x10];                                     // 0x0440(0x0010)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void HandleActiveLevelLoaded();
	void OnRep_LoadRequest();
	void ServerReportLoadState(int32 RequestID, ESteamWorkshopMapNetworkLoadState State, const class FString& ErrorMessage);

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

// Class SteamWorkshopMaps.SteamWorkshopMapSubsystem
// 0x0218 (0x0248 - 0x0030)
class USteamWorkshopMapSubsystem final : public UGameInstanceSubsystem
{
public:
	uint8                                         Pad_30[0x8];                                       // 0x0030(0x0008)(Fixing Size After Last Property [ Dumper-7 ])
	TMulticastInlineDelegate<void(bool bSuccess, const class FString& ItemId, const class FString& ErrorMessage)> OnCreateWorkshopItemComplete; // 0x0038(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void(bool bSuccess, const class FString& ItemId, const class FString& ErrorMessage)> OnSubmitWorkshopItemComplete; // 0x0048(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void(bool bSuccess, const class FString& ItemId, const struct FSteamWorkshopItemDetails& Details, const class FString& ErrorMessage)> OnRequestWorkshopItemDetailsComplete; // 0x0058(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	uint8                                         Pad_68[0x1E0];                                     // 0x0068(0x01E0)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	bool CreateWorkshopItem(class FString* ErrorMessage);
	class ULevelStreamingDynamic* LoadWorkshopMapFromManifest(const class FString& ManifestFilePath, const struct FTransform& AnchorTransform, bool bUseDescriptorEntryTransform, const class FString& OptionalLevelNameOverride, bool* bOutSuccess, class FString* ErrorMessage);
	class ULevelStreamingDynamic* LoadWorkshopMapLevel(const struct FWorkshopMapDescriptor& Descriptor, const struct FTransform& AnchorTransform, bool bUseDescriptorEntryTransform, const class FString& OptionalLevelNameOverride, bool* bOutSuccess, class FString* ErrorMessage);
	bool RequestWorkshopItemDetails(const class FString& ItemId, int32 MaxAgeSeconds, class FString* ErrorMessage);
	bool SubmitWorkshopItemUpdate(const class FString& ItemId, const struct FSteamWorkshopSubmitOptions& Options, class FString* ErrorMessage);

	void GetPakMountDiagnostics(const class FString& PakFilePath, struct FSteamWorkshopPakMountDiagnostics* OutDiagnostics) const;
	bool GetSubscribedWorkshopItems(TArray<struct FSteamWorkshopItemInfo>* OutItems, class FString* ErrorMessage) const;
	bool GetWorkshopItemInstallInfo(const class FString& ItemId, struct FSteamWorkshopItemInstallInfo* OutInfo, class FString* ErrorMessage) const;
	bool IsSteamWorkshopAvailable(class FString* ErrorMessage) const;
	bool MountPakFile(const class FString& PakFilePath, int32 PakOrder, class FString* ErrorMessage) const;
	bool MountPakFromWorkshopItem(const class FString& ItemId, const class FString& PakFileName, int32 PakOrder, class FString* MountedPakFilePath, class FString* ErrorMessage) const;
	bool ReadWorkshopMapDescriptor(const class FString& ManifestFilePath, struct FWorkshopMapDescriptor* OutDescriptor, class FString* ErrorMessage) const;
	bool RequestDownloadWorkshopItem(const class FString& ItemId, bool bHighPriority, class FString* ErrorMessage) const;
	void ScanMountedMapAssets(const class FString& PackagePath) const;

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

// Class SteamWorkshopMaps.SteamWorkshopItemDetailsAsyncAction
// 0x0048 (0x0078 - 0x0030)
class USteamWorkshopItemDetailsAsyncAction final : public UBlueprintAsyncActionBase
{
public:
	TMulticastInlineDelegate<void(const class FString& ItemId, const struct FSteamWorkshopItemDetails& Details, const class FString& ErrorMessage)> OnSuccess; // 0x0030(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void(const class FString& ItemId, const struct FSteamWorkshopItemDetails& Details, const class FString& ErrorMessage)> OnFailure; // 0x0040(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	class UObject*                                WorldContextObject;                                // 0x0050(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)
	class FString                                 ItemId;                                            // 0x0058(0x0010)(ZeroConstructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	int32                                         MaxAgeSeconds;                                     // 0x0068(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPrivate)
	uint8                                         Pad_6C[0x4];                                       // 0x006C(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	class USteamWorkshopMapSubsystem*             BoundSubsystem;                                    // 0x0070(0x0008)(ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPrivate, TObjectPtr)

public:
	static class USteamWorkshopItemDetailsAsyncAction* RequestWorkshopItemDetailsAsync(class UObject* WorldContextObject_0, const class FString& ItemId_0, int32 MaxAgeSeconds_0);

	void HandleRequestComplete(bool bSuccess, const class FString& CompletedItemId, const struct FSteamWorkshopItemDetails& Details, const class FString& ErrorMessage);

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

// Class SteamWorkshopMaps.WorkshopMapAnchor
// 0x0018 (0x02C0 - 0x02A8)
class AWorkshopMapAnchor final : public AActor
{
public:
	class FName                                   AnchorId;                                          // 0x02A8(0x0008)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	class FText                                   DisplayName;                                       // 0x02B0(0x0010)(Edit, BlueprintVisible, NativeAccessSpecifierPublic)

public:
	struct FTransform GetPlacementTransform() const;

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

SDK_NAMESPACE_END
