#pragma once

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

// Package: BP_LinkManager

#include "Basic.hpp"

#include "BP_LinkManager_classes.hpp"
#include "BP_LinkManager_parameters.hpp"


SDK_NAMESPACE_START

// Function BP_LinkManager.BP_LinkManager_C.UpdateGlueGroundDistance
// (Public, BlueprintCallable, BlueprintEvent)

void ABP_LinkManager_C::UpdateGlueGroundDistance()
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkManager_C", "UpdateGlueGroundDistance");

	UObject::ProcessEvent(Func, nullptr);
}


// Function BP_LinkManager.BP_LinkManager_C.UpdateForceValue
// (BlueprintCallable, BlueprintEvent)

void ABP_LinkManager_C::UpdateForceValue()
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkManager_C", "UpdateForceValue");

	UObject::ProcessEvent(Func, nullptr);
}


// Function BP_LinkManager.BP_LinkManager_C.UpdateBranch
// (Public, HasDefaults, BlueprintCallable, BlueprintEvent)

void ABP_LinkManager_C::UpdateBranch()
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkManager_C", "UpdateBranch");

	UObject::ProcessEvent(Func, nullptr);
}


// Function BP_LinkManager.BP_LinkManager_C.SetGlueData
// (Public, BlueprintCallable, BlueprintEvent)
// Parameters:
// class ACPP_Glue*                        TargetGlue                                             (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, NoDestructor, HasGetValueTypeHash)
// EN_GlueType                             GlueType                                               (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
// bool                                    State                                                  (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)

void ABP_LinkManager_C::SetGlueData(class ACPP_Glue* TargetGlue, EN_GlueType GlueType, bool State)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkManager_C", "SetGlueData");

	Params::BP_LinkManager_C_SetGlueData Parms{};

	Parms.TargetGlue = TargetGlue;
	Parms.GlueType = GlueType;
	Parms.State = State;

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


// Function BP_LinkManager.BP_LinkManager_C.SelectBranchDatas
// (Public, HasOutParams, BlueprintCallable, BlueprintEvent)
// Parameters:
// class ABP_Glue_CustomPhysics_C*         Glue                                                   (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, NoDestructor, HasGetValueTypeHash)
// class ABP_LinkBranchData_C**            BranchData                                             (Parm, OutParm, ZeroConstructor, NoDestructor, HasGetValueTypeHash)
// bool*                                   IsNewBranch                                            (Parm, OutParm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)

void ABP_LinkManager_C::SelectBranchDatas(class ABP_Glue_CustomPhysics_C* Glue, class ABP_LinkBranchData_C** BranchData, bool* IsNewBranch)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkManager_C", "SelectBranchDatas");

	Params::BP_LinkManager_C_SelectBranchDatas Parms{};

	Parms.Glue = Glue;

	UObject::ProcessEvent(Func, &Parms);

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

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


// Function BP_LinkManager.BP_LinkManager_C.ReceiveBeginPlay
// (Event, Protected, BlueprintEvent)

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

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

	UObject::ProcessEvent(Func, nullptr);
}


// Function BP_LinkManager.BP_LinkManager_C.PropagationReset
// (Public, BlueprintCallable, BlueprintEvent)

void ABP_LinkManager_C::PropagationReset()
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkManager_C", "PropagationReset");

	UObject::ProcessEvent(Func, nullptr);
}


// Function BP_LinkManager.BP_LinkManager_C.PropagationProtoStart
// (Public, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// class UPrimitiveComponent*              Primitive                                              (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash)

void ABP_LinkManager_C::PropagationProtoStart(class UPrimitiveComponent* Primitive)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkManager_C", "PropagationProtoStart");

	Params::BP_LinkManager_C_PropagationProtoStart Parms{};

	Parms.Primitive = Primitive;

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


// Function BP_LinkManager.BP_LinkManager_C.PropagationProto
// (Public, BlueprintCallable, BlueprintEvent)
// Parameters:
// class UPrimitiveComponent*              Primitive                                              (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash)

void ABP_LinkManager_C::PropagationProto(class UPrimitiveComponent* Primitive)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkManager_C", "PropagationProto");

	Params::BP_LinkManager_C_PropagationProto Parms{};

	Parms.Primitive = Primitive;

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


// Function BP_LinkManager.BP_LinkManager_C.PropagationForce
// (Public, HasOutParams, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// class UPrimitiveComponent*              TargetPrimitive                                        (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash)
// class UPrimitiveComponent*              Primitive                                              (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash)
// const TSet<int32>&                      UsedBranch                                             (BlueprintVisible, BlueprintReadOnly, Parm)
// double                                  ForceValue                                             (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)
// const TSet<int32>&                      ParallelIndex                                          (ConstParm, BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ReferenceParm)

void ABP_LinkManager_C::PropagationForce(class UPrimitiveComponent* TargetPrimitive, class UPrimitiveComponent* Primitive, const TSet<int32>& UsedBranch, double ForceValue, const TSet<int32>& ParallelIndex)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkManager_C", "PropagationForce");

	Params::BP_LinkManager_C_PropagationForce Parms{};

	Parms.TargetPrimitive = TargetPrimitive;
	Parms.Primitive = Primitive;
	Parms.UsedBranch = std::move(UsedBranch);
	Parms.ForceValue = ForceValue;
	Parms.ParallelIndex = std::move(ParallelIndex);

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


// Function BP_LinkManager.BP_LinkManager_C.Propagation
// (Public, HasOutParams, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// class UPrimitiveComponent*              TargetPrimitive                                        (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash)
// TArray<int32>&                          UsedBranch                                             (BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ReferenceParm)

void ABP_LinkManager_C::Propagation(class UPrimitiveComponent* TargetPrimitive, TArray<int32>& UsedBranch)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkManager_C", "Propagation");

	Params::BP_LinkManager_C_Propagation Parms{};

	Parms.TargetPrimitive = TargetPrimitive;
	Parms.UsedBranch = std::move(UsedBranch);

	UObject::ProcessEvent(Func, &Parms);

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


// Function BP_LinkManager.BP_LinkManager_C.MergeCheckForce
// (Public, HasOutParams, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// class UPrimitiveComponent*              Primitive                                              (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash)
// const TSet<int32>&                      UsedBranchIndex                                        (BlueprintVisible, BlueprintReadOnly, Parm)
// double&                                 ForceValue                                             (BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ZeroConstructor, ReferenceParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash)

void ABP_LinkManager_C::MergeCheckForce(class UPrimitiveComponent* Primitive, const TSet<int32>& UsedBranchIndex, double& ForceValue)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkManager_C", "MergeCheckForce");

	Params::BP_LinkManager_C_MergeCheckForce Parms{};

	Parms.Primitive = Primitive;
	Parms.UsedBranchIndex = std::move(UsedBranchIndex);
	Parms.ForceValue = ForceValue;

	UObject::ProcessEvent(Func, &Parms);

	ForceValue = Parms.ForceValue;
}


// Function BP_LinkManager.BP_LinkManager_C.MergeCheck
// (Public, HasOutParams, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// class UPrimitiveComponent*              Primitive                                              (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash)
// TArray<int32>&                          UsedBranchIndex                                        (BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ReferenceParm)

void ABP_LinkManager_C::MergeCheck(class UPrimitiveComponent* Primitive, TArray<int32>& UsedBranchIndex)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkManager_C", "MergeCheck");

	Params::BP_LinkManager_C_MergeCheck Parms{};

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

	UObject::ProcessEvent(Func, &Parms);

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


// Function BP_LinkManager.BP_LinkManager_C.ExecuteUbergraph_BP_LinkManager
// (Final, UbergraphFunction)
// Parameters:
// int32                                   EntryPoint                                             (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash)

void ABP_LinkManager_C::ExecuteUbergraph_BP_LinkManager(int32 EntryPoint)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkManager_C", "ExecuteUbergraph_BP_LinkManager");

	Params::BP_LinkManager_C_ExecuteUbergraph_BP_LinkManager Parms{};

	Parms.EntryPoint = EntryPoint;

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


// Function BP_LinkManager.BP_LinkManager_C.AddCustomForce
// (Public, HasOutParams, HasDefaults, BlueprintCallable, BlueprintEvent)
// Parameters:
// class UPrimitiveComponent*              SourcePrimitive                                        (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash)
// class UPrimitiveComponent*              PrePrimitive                                           (BlueprintVisible, BlueprintReadOnly, Parm, ZeroConstructor, InstancedReference, NoDestructor, HasGetValueTypeHash)
// double&                                 ForceValue                                             (BlueprintVisible, BlueprintReadOnly, Parm, OutParm, ZeroConstructor, ReferenceParm, IsPlainOldData, NoDestructor, HasGetValueTypeHash)

void ABP_LinkManager_C::AddCustomForce(class UPrimitiveComponent* SourcePrimitive, class UPrimitiveComponent* PrePrimitive, double& ForceValue)
{
	static class UFunction* Func = nullptr;

	if (Func == nullptr)
		Func = Class->GetFunction("BP_LinkManager_C", "AddCustomForce");

	Params::BP_LinkManager_C_AddCustomForce Parms{};

	Parms.SourcePrimitive = SourcePrimitive;
	Parms.PrePrimitive = PrePrimitive;
	Parms.ForceValue = ForceValue;

	UObject::ProcessEvent(Func, &Parms);

	ForceValue = Parms.ForceValue;
}


SDK_NAMESPACE_END
