#pragma once

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

// Package: ClothingSystemRuntimeInterface

#include "Basic.hpp"

#include "CoreUObject_structs.hpp"
#include "CoreUObject_classes.hpp"
#include "ClothingSystemRuntimeInterface_structs.hpp"


namespace SDK
{

// Class ClothingSystemRuntimeInterface.ClothingAssetBase
// 0x0020 (0x0048 - 0x0028)
class UClothingAssetBase : public UObject
{
public:
	class FString                                 ImportedFilePath;                                  // 0x0028(0x0010)(Edit, ZeroConstructor, EditConst, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	struct FGuid                                  AssetGuid;                                         // 0x0038(0x0010)(ZeroConstructor, IsPlainOldData, NoDestructor, Protected, HasGetValueTypeHash, NativeAccessSpecifierProtected)

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

// Class ClothingSystemRuntimeInterface.ClothConfigBase
// 0x0000 (0x0028 - 0x0028)
class UClothConfigBase : public UObject
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ClothConfigBase")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ClothConfigBase")
	}
	static class UClothConfigBase* GetDefaultObj()
	{
		return GetDefaultObjImpl<UClothConfigBase>();
	}
};
DUMPER7_ASSERTS_UClothConfigBase;

// Class ClothingSystemRuntimeInterface.ClothSharedSimConfigBase
// 0x0000 (0x0028 - 0x0028)
class UClothSharedSimConfigBase final : public UObject
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ClothSharedSimConfigBase")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ClothSharedSimConfigBase")
	}
	static class UClothSharedSimConfigBase* GetDefaultObj()
	{
		return GetDefaultObjImpl<UClothSharedSimConfigBase>();
	}
};
DUMPER7_ASSERTS_UClothSharedSimConfigBase;

// Class ClothingSystemRuntimeInterface.ClothingSimulationFactory
// 0x0000 (0x0028 - 0x0028)
class UClothingSimulationFactory : public UObject
{
public:
	static class UClass* StaticClass()
	{
		STATIC_CLASS_IMPL("ClothingSimulationFactory")
	}
	static const class FName& StaticName()
	{
		STATIC_NAME_IMPL(L"ClothingSimulationFactory")
	}
	static class UClothingSimulationFactory* GetDefaultObj()
	{
		return GetDefaultObjImpl<UClothingSimulationFactory>();
	}
};
DUMPER7_ASSERTS_UClothingSimulationFactory;

// Class ClothingSystemRuntimeInterface.ClothingInteractor
// 0x0008 (0x0030 - 0x0028)
class UClothingInteractor : public UObject
{
public:
	uint8                                         Pad_28[0x8];                                       // 0x0028(0x0008)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

// Class ClothingSystemRuntimeInterface.ClothingSimulationInteractor
// 0x0068 (0x0090 - 0x0028)
class UClothingSimulationInteractor : public UObject
{
public:
	TMap<class FName, class UClothingInteractor*> ClothingInteractors;                               // 0x0028(0x0050)(UObjectWrapper, NativeAccessSpecifierPublic, TObjectPtr)
	uint8                                         Pad_78[0x18];                                      // 0x0078(0x0018)(Fixing Struct Size After Last Property [ Dumper-7 ])

public:
	void ClothConfigUpdated();
	void DisableGravityOverride();
	void EnableGravityOverride(const struct FVector& InVector);
	void PhysicsAssetUpdated();
	void SetAnimDriveSpringStiffness(float InStiffness);
	void SetMaxNumIterations(int32 MaxNumIterations);
	void SetNumIterations(int32 NumIterations);
	void SetNumSubsteps(int32 NumSubsteps);

	class UClothingInteractor* GetClothingInteractor(const class FString& ClothingAssetName) const;
	int32 GetNumCloths() const;
	int32 GetNumDynamicParticles() const;
	int32 GetNumIterations() const;
	int32 GetNumKinematicParticles() const;
	int32 GetNumSubsteps() const;
	float GetSimulationTime() const;

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

// Class ClothingSystemRuntimeInterface.ClothPhysicalMeshDataBase_Legacy
// 0x00B8 (0x00E0 - 0x0028)
class UClothPhysicalMeshDataBase_Legacy : public UObject
{
public:
	TArray<struct FVector3f>                      Vertices;                                          // 0x0028(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	TArray<struct FVector3f>                      Normals;                                           // 0x0038(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	TArray<uint32>                                Indices;                                           // 0x0048(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	TArray<float>                                 InverseMasses;                                     // 0x0058(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	TArray<struct FClothVertBoneData>             BoneData;                                          // 0x0068(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	int32                                         NumFixedVerts;                                     // 0x0078(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	int32                                         MaxBoneWeights;                                    // 0x007C(0x0004)(ZeroConstructor, IsPlainOldData, NoDestructor, HasGetValueTypeHash, NativeAccessSpecifierPublic)
	TArray<uint32>                                SelfCollisionIndices;                              // 0x0080(0x0010)(ZeroConstructor, NativeAccessSpecifierPublic)
	uint8                                         Pad_90[0x50];                                      // 0x0090(0x0050)(Fixing Struct Size After Last Property [ Dumper-7 ])

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

}

