#pragma once

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

// Package: ProxyTable

#include "Basic.hpp"

#include "CoreUObject_structs.hpp"
#include "CoreUObject_classes.hpp"
#include "ProxyTable_structs.hpp"
#include "Chooser_structs.hpp"
#include "Engine_classes.hpp"


SDK_NAMESPACE_START

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

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

// Class ProxyTable.ProxyAsset
// 0x0050 (0x0078 - 0x0028)
class UProxyAsset final : public UObject
{
public:
	uint8                                         Pad_28[0x20];                                      // 0x0028(0x0020)(Fixing Size After Last Property [ Dumper-7 ])
	TSubclassOf<class UObject>                    Type;                                              // 0x0048(0x0008)(Edit, ZeroConstructor, NoDestructor, UObjectWrapper, HasGetValueTypeHash, NativeAccessSpecifierPublic, TObjectPtr)
	EObjectChooserResultType                      ResultType;                                        // 0x0050(0x0004)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_54[0x4];                                       // 0x0054(0x0004)(Fixing Size After Last Property [ Dumper-7 ])
	TArray<struct FInstancedStruct>               ContextData;                                       // 0x0058(0x0010)(Edit, ZeroConstructor, NativeAccessSpecifierPublic)
	struct FGuid                                  Guid;                                              // 0x0068(0x0010)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)

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

// Class ProxyTable.ProxyTable
// 0x0020 (0x0048 - 0x0028)
class UProxyTable final : public UObject
{
public:
	TArray<struct FGuid>                          Keys;                                              // 0x0028(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	TArray<struct FRuntimeProxyValue>             RuntimeValues;                                     // 0x0038(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)

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

// Class ProxyTable.ProxyTableFunctionLibrary
// 0x0000 (0x0028 - 0x0028)
class UProxyTableFunctionLibrary final : public UBlueprintFunctionLibrary
{
public:
	static class UObject* EvaluateProxyAsset(const class UObject* ContextObject, const class UProxyAsset* Proxy, TSubclassOf<class UObject> ObjectClass);
	static class UObject* EvaluateProxyTable(const class UObject* ContextObject, const class UProxyTable* ProxyTable, class FName Key);
	static struct FInstancedStruct MakeLookupProxy(class UProxyAsset* Proxy);
	static struct FInstancedStruct MakeLookupProxyWithOverrideTable(class UProxyAsset* Proxy, class UProxyTable* ProxyTable);

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

SDK_NAMESPACE_END
