#pragma once

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

// Package: LiveLinkComponents

#include "Basic.hpp"

#include "CoreUObject_structs.hpp"
#include "CoreUObject_classes.hpp"
#include "LiveLinkInterface_structs.hpp"
#include "LiveLinkComponents_structs.hpp"
#include "Engine_structs.hpp"
#include "Engine_classes.hpp"


SDK_NAMESPACE_START

// Class LiveLinkComponents.LiveLinkComponentSettings
// 0x0058 (0x0080 - 0x0028)
class ULiveLinkComponentSettings final : public UObject
{
public:
	TMap<TSubclassOf<class ULiveLinkRole>, TSubclassOf<class ULiveLinkControllerBase>> DefaultControllerForRole; // 0x0028(0x0050)(Edit, Config, UObjectWrapper, NativeAccessSpecifierPublic)
	bool                                          bUpdateSubjectsImmediatelyInPIE;                   // 0x0078(0x0001)(Edit, ZeroConstructor, Config, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_79[0x7];                                       // 0x0079(0x0007)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class LiveLinkComponents.LiveLinkControllerBase
// 0x0040 (0x0068 - 0x0028)
class ULiveLinkControllerBase : public UObject
{
public:
	struct FComponentReference                    ComponentPicker;                                   // 0x0028(0x0028)(Edit, DisableEditOnTemplate, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)
	uint8                                         Pad_50[0x18];                                      // 0x0050(0x0018)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class LiveLinkComponents.LiveLinkLightController
// 0x0000 (0x0068 - 0x0068)
class ULiveLinkLightController final : public ULiveLinkControllerBase
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("LiveLinkLightController")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"LiveLinkLightController")
	}
	static class ULiveLinkLightController* GetDefaultObj()
	{
		return GetDefaultObjImpl<ULiveLinkLightController>();
	}
};
DUMPER7_ASSERTS_ULiveLinkLightController;

// Class LiveLinkComponents.LiveLinkTransformController
// 0x00C8 (0x0130 - 0x0068)
class ULiveLinkTransformController final : public ULiveLinkControllerBase
{
public:
	struct FLiveLinkTransformControllerData       TransformData;                                     // 0x0068(0x0006)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	uint8                                         Pad_6E[0x2];                                       // 0x006E(0x0002)(Fixing Size After Last Property [ Dumper-7 ])
	struct FTransform                             OffsetTransform;                                   // 0x0070(0x0060)(Edit, BlueprintVisible, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_D0[0x60];                                      // 0x00D0(0x0060)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class LiveLinkComponents.LiveLinkComponentController
// 0x00A8 (0x0160 - 0x00B8)
class ULiveLinkComponentController final : public UActorComponent
{
public:
	struct FLiveLinkSubjectRepresentation         SubjectRepresentation;                             // 0x00B8(0x0010)(Edit, BlueprintVisible, NoDestructor, NativeAccessSpecifierPublic)
	TMap<TSubclassOf<class ULiveLinkRole>, class ULiveLinkControllerBase*> ControllerMap;            // 0x00C8(0x0050)(Edit, BlueprintVisible, ExportObject, BlueprintReadOnly, NoClear, Interp, ContainsInstancedReference, UObjectWrapper, NativeAccessSpecifierPublic, TObjectPtr)
	bool                                          bUpdateInEditor;                                   // 0x0118(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_119[0x7];                                      // 0x0119(0x0007)(Fixing Size After Last Property [ Dumper-7 ])
	TMulticastInlineDelegate<void(float DeltaTime)> OnLiveLinkUpdated;                               // 0x0120(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	TMulticastInlineDelegate<void()>              OnControllerMapUpdatedDelegate;                    // 0x0130(0x0010)(ZeroConstructor, InstancedReference, BlueprintAssignable, NativeAccessSpecifierPublic)
	bool                                          bDisableEvaluateLiveLinkWhenSpawnable;             // 0x0140(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bEvaluateLiveLink;                                 // 0x0141(0x0001)(Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	bool                                          bUpdateInPreviewEditor;                            // 0x0142(0x0001)(Edit, ZeroConstructor, IsPlainOldData, NoDestructor, AdvancedDisplay, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	uint8                                         Pad_143[0x1D];                                     // 0x0143(0x001D)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void SetControlledComponent(TSubclassOf<class ULiveLinkRole> InRoleClass, class UActorComponent* InComponent);
	void SetSubjectRepresentation(const struct FLiveLinkSubjectRepresentation& InSubjectRepresentation);

	class UActorComponent* GetControlledComponent(TSubclassOf<class ULiveLinkRole> InRoleClass) const;
	struct FLiveLinkSubjectRepresentation GetSubjectRepresentation() const;

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

SDK_NAMESPACE_END
