#pragma once #include "CoreMinimal.h" #include "Kismet/BlueprintFunctionLibrary.h" #include "GigLineAssetTools.generated.h" class UStaticMesh; /** * Small editor-side helpers for the headless asset pipeline scripts. * * Exposed to Python so tools can fix up imported meshes that the Interchange * importer gives unusable default collision. The terrain is the motivating * case: without complex-as-simple it gets a bounding-box proxy, so the whole * street sits under an invisible 8 m box and the player walks on the box lid. */ UCLASS() class GIGLINE_API UGigLineAssetTools : public UBlueprintFunctionLibrary { GENERATED_BODY() public: /** Make collision trace against the mesh triangles instead of a proxy hull. */ UFUNCTION(BlueprintCallable, Category = "GigLine|Assets") static void SetComplexCollisionAsSimple(UStaticMesh* Mesh, bool bEnable = true); /** Drop any generated simple collision (hulls/boxes) from the mesh. */ UFUNCTION(BlueprintCallable, Category = "GigLine|Assets") static void ClearSimpleCollision(UStaticMesh* Mesh); /** Report the current collision complexity: "SimpleAndComplex", "Simple", ... */ UFUNCTION(BlueprintCallable, Category = "GigLine|Assets") static FString GetCollisionComplexity(UStaticMesh* Mesh); };