Files
FLESH/Source/FLESHEditor/Public/DismembermentGraph/DismembermentGraphNodePhysics.h
2025-04-17 23:59:17 +08:00

56 lines
1.6 KiB
C++

#pragma once
#include "CoreMinimal.h"
#include "DismembermentGraphNode.h"
#include "DismembermentGraphNodePhysics.generated.h"
/**
* Node for physics simulation in the dismemberment graph
*/
UCLASS()
class FLESHEDITOR_API UDismembermentGraphNodePhysics : public UDismembermentGraphNode
{
GENERATED_BODY()
public:
UDismembermentGraphNodePhysics();
// Physics parameters
UPROPERTY(EditAnywhere, Category = "Physics Parameters")
float Mass;
UPROPERTY(EditAnywhere, Category = "Physics Parameters")
float LinearDamping;
UPROPERTY(EditAnywhere, Category = "Physics Parameters")
float AngularDamping;
UPROPERTY(EditAnywhere, Category = "Physics Parameters")
bool bEnableGravity;
UPROPERTY(EditAnywhere, Category = "Physics Parameters")
bool bSimulatePhysics;
UPROPERTY(EditAnywhere, Category = "Physics Parameters")
bool bGenerateOverlapEvents;
UPROPERTY(EditAnywhere, Category = "Physics Parameters")
TObjectPtr<UPhysicalMaterial> PhysicalMaterial;
UPROPERTY(EditAnywhere, Category = "Physics Parameters")
float ImpulseForce;
UPROPERTY(EditAnywhere, Category = "Physics Parameters")
float ImpulseRadius;
// UEdGraphNode interface
virtual void AllocateDefaultPins() override;
virtual FText GetNodeTitle(ENodeTitleType::Type TitleType) const override;
// End of UEdGraphNode interface
// UDismembermentGraphNode interface
virtual void CompileNode(class FDismembermentCompiler* Compiler) override;
virtual void ExecuteNode(class FDismembermentExecutor* Executor) override;
// End of UDismembermentGraphNode interface
};