Files
PMDT/structures/data/SDK/PUBGM_RuntimeMeshComponent_classes.hpp
2026-05-03 13:32:50 +08:00

95 lines
6.2 KiB
C++
Executable File

#pragma once
//PUBGM(0.13.5)32位SDK
//作者:清华
//Telegram:@qinghuanb666
//生成时间:Fri Apr 18 20:44:40 2025
namespace SDK
{
//---------------------------------------------------------------------------
//Classes
//---------------------------------------------------------------------------
// Class RuntimeMeshComponent.RuntimeMeshComponent
// 0x00B0 (0x06C0 - 0x0610)
class URuntimeMeshComponent : public UMeshComponent
{
public:
struct FScriptMulticastDelegate CollisionUpdated; // 0x0610(0x000C) (ZeroConstructor, InstancedReference, BlueprintAssignable)
bool bUseComplexAsSimpleCollision; // 0x061C(0x0001) (Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData)
bool bUseAsyncCooking; // 0x061D(0x0001) (Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData)
bool bShouldSerializeMeshData; // 0x061E(0x0001) (Edit, BlueprintVisible, BlueprintReadOnly, ZeroConstructor, IsPlainOldData)
ERuntimeMeshCollisionCookingMode CollisionMode; // 0x061F(0x0001) (Edit, BlueprintVisible, ZeroConstructor, IsPlainOldData)
class UBodySetup* BodySetup; // 0x0620(0x0004) (ExportObject, ZeroConstructor, InstancedReference, IsPlainOldData)
unsigned char UnknownData00[0x20]; // 0x0624(0x0020) MISSED OFFSET
TArray<struct FRuntimeMeshCollisionSection> MeshCollisionSections; // 0x0644(0x000C) (ZeroConstructor, Transient)
TArray<struct FRuntimeConvexCollisionSection> ConvexCollisionSections; // 0x0650(0x000C) (ZeroConstructor, Transient)
struct FBoxSphereBounds LocalBounds; // 0x065C(0x001C) (Transient, IsPlainOldData)
struct FRuntimeMeshComponentPrePhysicsTickFunction PrePhysicsTick; // 0x0678(0x003C) (Transient)
TArray<class UBodySetup*> AsyncBodySetupQueue; // 0x06B4(0x000C) (ZeroConstructor, Transient)
static UClass* StaticClass()
{
static UClass *pStaticClass = 0;
if (!pStaticClass)
pStaticClass = UObject::FindClass("Class RuntimeMeshComponent.RuntimeMeshComponent");
return pStaticClass;
}
void UpdateMeshSection_Blueprint(int SectionIndex, TArray<struct FVector> Vertices, TArray<int> Triangles, TArray<struct FVector> Normals, TArray<struct FRuntimeMeshTangent> Tangents, TArray<struct FVector2D> UV0, TArray<struct FVector2D> UV1, TArray<struct FLinearColor> Colors, bool bCalculateNormalTangent, bool bGenerateTessellationTriangles);
void SetSectionTessellationTriangles(int SectionIndex, TArray<int> TessellationTriangles, bool bShouldMoveArray);
void SetMeshSectionVisible(int SectionIndex, bool bNewVisibility);
void SetMeshSectionCollisionEnabled(int SectionIndex, bool bNewCollisionEnabled);
void SetMeshSectionCastsShadow(int SectionIndex, bool bNewCastsShadow);
void SetMeshCollisionSection(int CollisionSectionIndex, TArray<struct FVector> Vertices, TArray<int> Triangles);
void RuntimeMeshCollisionUpdatedDelegate__DelegateSignature();
bool IsMeshSectionVisible(int SectionIndex);
bool IsMeshSectionCollisionEnabled(int SectionIndex);
bool IsMeshSectionCastingShadows(int SectionIndex);
int GetNumSections();
int GetLastSectionIndex();
int FirstAvailableMeshSectionIndex();
void EndBatchUpdates();
bool DoesSectionExist(int SectionIndex);
void CreateMeshSection_Blueprint(int SectionIndex, TArray<struct FVector> Vertices, TArray<int> Triangles, TArray<struct FVector> Normals, TArray<struct FRuntimeMeshTangent> Tangents, TArray<struct FVector2D> UV0, TArray<struct FVector2D> UV1, TArray<struct FLinearColor> Colors, bool bCreateCollision, bool bCalculateNormalTangent, bool bGenerateTessellationTriangles, EUpdateFrequency UpdateFrequency);
void CookCollisionNow();
void ClearMeshSection(int SectionIndex);
void ClearMeshCollisionSection(int CollisionSectionIndex);
void ClearCollisionConvexMeshes();
void ClearAllMeshSections();
void ClearAllMeshCollisionSections();
void BeginBatchUpdates();
void AddCollisionConvexMesh(TArray<struct FVector> ConvexVerts);
};
// Class RuntimeMeshComponent.RuntimeMeshLibrary
// 0x0000 (0x0020 - 0x0020)
class URuntimeMeshLibrary : public UBlueprintFunctionLibrary
{
public:
static UClass* StaticClass()
{
static UClass *pStaticClass = 0;
if (!pStaticClass)
pStaticClass = UObject::FindClass("Class RuntimeMeshComponent.RuntimeMeshLibrary");
return pStaticClass;
}
static void GetSectionFromStaticMesh(class UStaticMesh* InMesh, int LODIndex, int SectionIndex, TArray<struct FVector>* Vertices, TArray<int>* Triangles, TArray<struct FVector>* Normals, TArray<struct FVector2D>* UVs, TArray<struct FRuntimeMeshTangent>* Tangents);
static void GenerateTessellationIndexBuffer(TArray<struct FVector> Vertices, TArray<int> Triangles, TArray<struct FVector2D> UVs, TArray<struct FVector>* Normals, TArray<struct FRuntimeMeshTangent>* Tangents, TArray<int>* OutTessTriangles);
static void CreateGridMeshTriangles(int NumX, int NumY, bool bWinding, TArray<int>* Triangles);
static void CreateBoxMesh(const struct FVector& BoxRadius, TArray<struct FVector>* Vertices, TArray<int>* Triangles, TArray<struct FVector>* Normals, TArray<struct FVector2D>* UVs, TArray<struct FRuntimeMeshTangent>* Tangents);
static void CopyRuntimeMeshFromStaticMeshComponent(class UStaticMeshComponent* StaticMeshComp, int LODIndex, class URuntimeMeshComponent* RuntimeMeshComp, bool bShouldCreateCollision);
static void ConvertQuadToTriangles(int Vert0, int Vert1, int Vert2, int Vert3, TArray<int>* Triangles);
static void CalculateTangentsForMesh(TArray<struct FVector> Vertices, TArray<int> Triangles, TArray<struct FVector2D> UVs, TArray<struct FVector>* Normals, TArray<struct FRuntimeMeshTangent>* Tangents);
};
}