#pragma once

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

// Package: BP_LinkDataBank

#include "Basic.hpp"

#include "PrimitiveGlues_structs.hpp"
#include "LinkMergeTargetPrimitives_structs.hpp"
#include "Engine_structs.hpp"
#include "ReferencedGlues_structs.hpp"
#include "LinkMergePoint_structs.hpp"
#include "PenguinHotel_structs.hpp"
#include "PenguinHotel_classes.hpp"


SDK_NAMESPACE_START

// BlueprintGeneratedClass BP_LinkDataBank.BP_LinkDataBank_C
// 0x02C0 (0x0AE0 - 0x0820)
class ABP_LinkDataBank_C final : public ACPP_LinkDataBank
{
public:
	struct FPointerToUberGraphFrame               UberGraphFrame;                                    // 0x0820(0x0008)(ZeroConstructor, Transient, DuplicateTransient)
	class USceneComponent*                        DefaultSceneRoot;                                  // 0x0828(0x0008)(BlueprintVisible, ZeroConstructor, InstancedReference, NonTransactional, NoDestructor, HasGetValueTypeHash)
	TMap<class UPrimitiveComponent*, class ABP_LinkBranchData_C*> PrimitiveReferences;               // 0x0830(0x0050)(Edit, BlueprintVisible, ContainsInstancedReference)
	TMap<class UPrimitiveComponent*, struct FReferencedGlues> GlueReferences;                        // 0x0880(0x0050)(Edit, BlueprintVisible, ContainsInstancedReference)
	TMap<class UPrimitiveComponent*, struct FLinkMergeTargetPrimitives> MergeEndPoint;               // 0x08D0(0x0050)(Edit, BlueprintVisible, DisableEditOnInstance, ContainsInstancedReference)
	TMap<class ABP_LinkBranchData_C*, struct FLinkMergePoint> MergeEndPointData;                     // 0x0920(0x0050)(Edit, BlueprintVisible, DisableEditOnTemplate, ContainsInstancedReference)
	TMap<class UPrimitiveComponent*, struct FPrimitiveGlues> ReferencedGlueGroups;                   // 0x0970(0x0050)(Edit, BlueprintVisible, ContainsInstancedReference)
	struct FCPP_GlueRefGroup                      NewVar;                                            // 0x09C0(0x0120)(Edit, BlueprintVisible, DisableEditOnInstance, ContainsInstancedReference)

public:
	void SetPrimitiveReference(const class UPrimitiveComponent*& PrimitiveComp, const class ABP_LinkBranchData_C*& LinkBranchData);
	void SetGlueReferences(TArray<class UPrimitiveComponent*>& Primitives, class ABP_Glue_CustomPhysics_C* Glue, bool State);
	void ReferencedGlueGroupAppend(TArray<struct FReferencedGlueGroup>& GlueGroups, TArray<class ABP_Glue_CustomPhysics_C*>* Glues);
	void ReceiveBeginPlay();
	void GetStaticLinkBranchs();
	void GetReferencedGlueGroups(class UPrimitiveComponent* SourcePrimitive, TArray<struct FReferencedGlueGroup>* Groups);
	void GetPrimitiveReference(class UPrimitiveComponent* TargetPrimitive, bool IncludeStatic, bool* IsFound, class ABP_LinkBranchData_C** Branch, int32* Index_0);
	void GetMergeEndPoint(const class ABP_LinkBranchData_C*& LinkBranch, const class UPrimitiveComponent*& Primitive, TArray<class UPrimitiveComponent*>* Targets);
	void GetGlueReferences(const class UPrimitiveComponent*& Primitive, TArray<class ABP_Glue_CustomPhysics_C*>* ForceTarget);
	void FindPrimitiveGlues(TArray<struct FReferencedGlueGroup>& Glues, class UPrimitiveComponent* Primitive, int32* FoundIndex, TArray<class ABP_Glue_CustomPhysics_C*>* FoundGlues);
	void FilterReferencedGlues(class UPrimitiveComponent* Primitive, TArray<class ABP_Glue_CustomPhysics_C*>& Glues, TArray<class ABP_Glue_CustomPhysics_C*>* ReturnGlueActors);
	void FilterOtherBranchPrimitive(class UPrimitiveComponent* SourcePrimitive, TArray<class ABP_Glue_CustomPhysics_C*>& Glues, TArray<class UPrimitiveComponent*>* Primitives);
	void ExecuteUbergraph_BP_LinkDataBank(int32 EntryPoint);
	void BranchDataMergeCheck(TArray<class UPrimitiveComponent*>& Primitives);
	void AddReferencedGlueGroups(class UPrimitiveComponent* SourcePrimitive, class ABP_Glue_CustomPhysics_C* Glues);

public:
	static class UClass* StaticClass()
	{
		BP_STATIC_CLASS_IMPL("BP_LinkDataBank_C")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"BP_LinkDataBank_C")
	}
	static class ABP_LinkDataBank_C* GetDefaultObj()
	{
		return GetDefaultObjImpl<ABP_LinkDataBank_C>();
	}
};
DUMPER7_ASSERTS_ABP_LinkDataBank_C;

SDK_NAMESPACE_END
