#pragma once

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

// Package: BP_LinkDataBank

#include "Basic.hpp"

#include "BP_LinkDataBank_classes.hpp"
#include "BP_LinkDataBank_parameters.hpp"


SDK_NAMESPACE_START

// Function BP_LinkDataBank.BP_LinkDataBank_C.AddReferencedGlueGroups
// (Public, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// class UPrimitiveComponent*              SourcePrimitive                                        (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash)
// class ABP_Glue_CustomPhysics_C*         Glues                                                  (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, NoDestructor, HasGetValueTypeHash)

void ABP_LinkDataBank_C::AddReferencedGlueGroups(class UPrimitiveComponent* SourcePrimitive, class ABP_Glue_CustomPhysics_C* Glues)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkDataBank_C", "AddReferencedGlueGroups");

	Params::BP_LinkDataBank_C_AddReferencedGlueGroups Parms{};

	Parms.SourcePrimitive = SourcePrimitive;
	Parms.Glues = Glues;

	UObject::ProcessEvent(Func, &Parms);
}


// Function BP_LinkDataBank.BP_LinkDataBank_C.BranchDataMergeCheck
// (Public, HasOutParams, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// TArray<class UPrimitiveComponent*>&     Primitives                                             (BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ReferenceParm, ContainsInstancedReference)

void ABP_LinkDataBank_C::BranchDataMergeCheck(TArray<class UPrimitiveComponent*>& Primitives)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkDataBank_C", "BranchDataMergeCheck");

	Params::BP_LinkDataBank_C_BranchDataMergeCheck Parms{};

	Parms.Primitives = std::move(Primitives);

	UObject::ProcessEvent(Func, &Parms);

	Primitives = std::move(Parms.Primitives);
}


// Function BP_LinkDataBank.BP_LinkDataBank_C.ExecuteUbergraph_BP_LinkDataBank
// (Final, UbergraphFunction)
// Parameters:
// int32                                   EntryPoint                                             (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)

void ABP_LinkDataBank_C::ExecuteUbergraph_BP_LinkDataBank(int32 EntryPoint)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkDataBank_C", "ExecuteUbergraph_BP_LinkDataBank");

	Params::BP_LinkDataBank_C_ExecuteUbergraph_BP_LinkDataBank Parms{};

	Parms.EntryPoint = EntryPoint;

	UObject::ProcessEvent(Func, &Parms);
}


// Function BP_LinkDataBank.BP_LinkDataBank_C.FilterOtherBranchPrimitive
// (Public, HasOutParams, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// class UPrimitiveComponent*              SourcePrimitive                                        (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash)
// TArray<class ABP_Glue_CustomPhysics_C*>&Glues                                                  (BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ReferenceParm)
// TArray<class UPrimitiveComponent*>*     Primitives                                             (Parm, OutParm, ContainsInstancedReference)

void ABP_LinkDataBank_C::FilterOtherBranchPrimitive(class UPrimitiveComponent* SourcePrimitive, TArray<class ABP_Glue_CustomPhysics_C*>& Glues, TArray<class UPrimitiveComponent*>* Primitives)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkDataBank_C", "FilterOtherBranchPrimitive");

	Params::BP_LinkDataBank_C_FilterOtherBranchPrimitive Parms{};

	Parms.SourcePrimitive = SourcePrimitive;
	Parms.Glues = std::move(Glues);

	UObject::ProcessEvent(Func, &Parms);

	Glues = std::move(Parms.Glues);

	if (Primitives != nullptr)
		*Primitives = std::move(Parms.Primitives);
}


// Function BP_LinkDataBank.BP_LinkDataBank_C.FilterReferencedGlues
// (Public, HasOutParams, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// class UPrimitiveComponent*              Primitive                                              (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash)
// TArray<class ABP_Glue_CustomPhysics_C*>&Glues                                                  (BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ReferenceParm)
// TArray<class ABP_Glue_CustomPhysics_C*>*ReturnGlueActors                                       (Parm, OutParm)

void ABP_LinkDataBank_C::FilterReferencedGlues(class UPrimitiveComponent* Primitive, TArray<class ABP_Glue_CustomPhysics_C*>& Glues, TArray<class ABP_Glue_CustomPhysics_C*>* ReturnGlueActors)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkDataBank_C", "FilterReferencedGlues");

	Params::BP_LinkDataBank_C_FilterReferencedGlues Parms{};

	Parms.Primitive = Primitive;
	Parms.Glues = std::move(Glues);

	UObject::ProcessEvent(Func, &Parms);

	Glues = std::move(Parms.Glues);

	if (ReturnGlueActors != nullptr)
		*ReturnGlueActors = std::move(Parms.ReturnGlueActors);
}


// Function BP_LinkDataBank.BP_LinkDataBank_C.FindPrimitiveGlues
// (Public, HasOutParams, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// TArray<struct FReferencedGlueGroup>&    Glues                                                  (BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ReferenceParm, ContainsInstancedReference)
// class UPrimitiveComponent*              Primitive                                              (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash)
// int32*                                  FoundIndex                                             (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
// TArray<class ABP_Glue_CustomPhysics_C*>*FoundGlues                                             (Parm, OutParm)

void ABP_LinkDataBank_C::FindPrimitiveGlues(TArray<struct FReferencedGlueGroup>& Glues, class UPrimitiveComponent* Primitive, int32* FoundIndex, TArray<class ABP_Glue_CustomPhysics_C*>* FoundGlues)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkDataBank_C", "FindPrimitiveGlues");

	Params::BP_LinkDataBank_C_FindPrimitiveGlues Parms{};

	Parms.Glues = std::move(Glues);
	Parms.Primitive = Primitive;

	UObject::ProcessEvent(Func, &Parms);

	Glues = std::move(Parms.Glues);

	if (FoundIndex != nullptr)
		*FoundIndex = Parms.FoundIndex;

	if (FoundGlues != nullptr)
		*FoundGlues = std::move(Parms.FoundGlues);
}


// Function BP_LinkDataBank.BP_LinkDataBank_C.GetGlueReferences
// (Public, HasOutParams, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// const class UPrimitiveComponent*&       Primitive                                              (ConstParm, BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ZeroConstructor, InstancedReference, ReferenceParm, NoDestructor, HasGetValueTypeHash)
// TArray<class ABP_Glue_CustomPhysics_C*>*ForceTarget                                            (Parm, OutParm)

void ABP_LinkDataBank_C::GetGlueReferences(const class UPrimitiveComponent*& Primitive, TArray<class ABP_Glue_CustomPhysics_C*>* ForceTarget)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkDataBank_C", "GetGlueReferences");

	Params::BP_LinkDataBank_C_GetGlueReferences Parms{};

	Parms.Primitive = Primitive;

	UObject::ProcessEvent(Func, &Parms);

	if (ForceTarget != nullptr)
		*ForceTarget = std::move(Parms.ForceTarget);
}


// Function BP_LinkDataBank.BP_LinkDataBank_C.GetMergeEndPoint
// (Public, HasOutParams, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// const class ABP_LinkBranchData_C*&      LinkBranch                                             (ConstParm, BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ZeroConstructor, ReferenceParm, NoDestructor, HasGetValueTypeHash)
// const class UPrimitiveComponent*&       Primitive                                              (ConstParm, BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ZeroConstructor, InstancedReference, ReferenceParm, NoDestructor, HasGetValueTypeHash)
// TArray<class UPrimitiveComponent*>*     Targets                                                (Parm, OutParm, ContainsInstancedReference)

void ABP_LinkDataBank_C::GetMergeEndPoint(const class ABP_LinkBranchData_C*& LinkBranch, const class UPrimitiveComponent*& Primitive, TArray<class UPrimitiveComponent*>* Targets)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkDataBank_C", "GetMergeEndPoint");

	Params::BP_LinkDataBank_C_GetMergeEndPoint Parms{};

	Parms.LinkBranch = LinkBranch;
	Parms.Primitive = Primitive;

	UObject::ProcessEvent(Func, &Parms);

	if (Targets != nullptr)
		*Targets = std::move(Parms.Targets);
}


// Function BP_LinkDataBank.BP_LinkDataBank_C.GetPrimitiveReference
// (Public, HasOutParams, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// class UPrimitiveComponent*              TargetPrimitive                                        (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash)
// bool                                    IncludeStatic                                          (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
// bool*                                   IsFound                                                (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
// class ABP_LinkBranchData_C**            Branch                                                 (Parm, OutParm, ZeroConstructor, NoDestructor, HasGetValueTypeHash)
// int32*                                  Index_0                                                (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)

void ABP_LinkDataBank_C::GetPrimitiveReference(class UPrimitiveComponent* TargetPrimitive, bool IncludeStatic, bool* IsFound, class ABP_LinkBranchData_C** Branch, int32* Index_0)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkDataBank_C", "GetPrimitiveReference");

	Params::BP_LinkDataBank_C_GetPrimitiveReference Parms{};

	Parms.TargetPrimitive = TargetPrimitive;
	Parms.IncludeStatic = IncludeStatic;

	UObject::ProcessEvent(Func, &Parms);

	if (IsFound != nullptr)
		*IsFound = Parms.IsFound;

	if (Branch != nullptr)
		*Branch = Parms.Branch;

	if (Index_0 != nullptr)
		*Index_0 = Parms.Index_0;
}


// Function BP_LinkDataBank.BP_LinkDataBank_C.GetReferencedGlueGroups
// (Public, HasOutParams, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// class UPrimitiveComponent*              SourcePrimitive                                        (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash)
// TArray<struct FReferencedGlueGroup>*    Groups                                                 (Parm, OutParm, ContainsInstancedReference)

void ABP_LinkDataBank_C::GetReferencedGlueGroups(class UPrimitiveComponent* SourcePrimitive, TArray<struct FReferencedGlueGroup>* Groups)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkDataBank_C", "GetReferencedGlueGroups");

	Params::BP_LinkDataBank_C_GetReferencedGlueGroups Parms{};

	Parms.SourcePrimitive = SourcePrimitive;

	UObject::ProcessEvent(Func, &Parms);

	if (Groups != nullptr)
		*Groups = std::move(Parms.Groups);
}


// Function BP_LinkDataBank.BP_LinkDataBank_C.GetStaticLinkBranchs
// (Public, HasDefaults, BlueprintCallable, BlueprintEvent)

void ABP_LinkDataBank_C::GetStaticLinkBranchs()
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkDataBank_C", "GetStaticLinkBranchs");

	UObject::ProcessEvent(Func, nullptr);
}


// Function BP_LinkDataBank.BP_LinkDataBank_C.ReceiveBeginPlay
// (Event, Protected, BlueprintEvent)

void ABP_LinkDataBank_C::ReceiveBeginPlay()
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkDataBank_C", "ReceiveBeginPlay");

	UObject::ProcessEvent(Func, nullptr);
}


// Function BP_LinkDataBank.BP_LinkDataBank_C.ReferencedGlueGroupAppend
// (Public, HasOutParams, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// TArray<struct FReferencedGlueGroup>&    GlueGroups                                             (BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ReferenceParm, ContainsInstancedReference)
// TArray<class ABP_Glue_CustomPhysics_C*>*Glues                                                  (Parm, OutParm)

void ABP_LinkDataBank_C::ReferencedGlueGroupAppend(TArray<struct FReferencedGlueGroup>& GlueGroups, TArray<class ABP_Glue_CustomPhysics_C*>* Glues)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkDataBank_C", "ReferencedGlueGroupAppend");

	Params::BP_LinkDataBank_C_ReferencedGlueGroupAppend Parms{};

	Parms.GlueGroups = std::move(GlueGroups);

	UObject::ProcessEvent(Func, &Parms);

	GlueGroups = std::move(Parms.GlueGroups);

	if (Glues != nullptr)
		*Glues = std::move(Parms.Glues);
}


// Function BP_LinkDataBank.BP_LinkDataBank_C.SetGlueReferences
// (Public, HasOutParams, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// TArray<class UPrimitiveComponent*>&     Primitives                                             (BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ReferenceParm, ContainsInstancedReference)
// class ABP_Glue_CustomPhysics_C*         Glue                                                   (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, NoDestructor, HasGetValueTypeHash)
// bool                                    State                                                  (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)

void ABP_LinkDataBank_C::SetGlueReferences(TArray<class UPrimitiveComponent*>& Primitives, class ABP_Glue_CustomPhysics_C* Glue, bool State)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkDataBank_C", "SetGlueReferences");

	Params::BP_LinkDataBank_C_SetGlueReferences Parms{};

	Parms.Primitives = std::move(Primitives);
	Parms.Glue = Glue;
	Parms.State = State;

	UObject::ProcessEvent(Func, &Parms);

	Primitives = std::move(Parms.Primitives);
}


// Function BP_LinkDataBank.BP_LinkDataBank_C.SetPrimitiveReference
// (Public, HasOutParams, BlueprintCallable, BlueprintEvent)
// Parameters:
// const class UPrimitiveComponent*&       PrimitiveComp                                          (ConstParm, BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ZeroConstructor, InstancedReference, ReferenceParm, NoDestructor, HasGetValueTypeHash)
// const class ABP_LinkBranchData_C*&      LinkBranchData                                         (ConstParm, BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ZeroConstructor, ReferenceParm, NoDestructor, HasGetValueTypeHash)

void ABP_LinkDataBank_C::SetPrimitiveReference(const class UPrimitiveComponent*& PrimitiveComp, const class ABP_LinkBranchData_C*& LinkBranchData)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkDataBank_C", "SetPrimitiveReference");

	Params::BP_LinkDataBank_C_SetPrimitiveReference Parms{};

	Parms.PrimitiveComp = PrimitiveComp;
	Parms.LinkBranchData = LinkBranchData;

	UObject::ProcessEvent(Func, &Parms);
}


SDK_NAMESPACE_END
