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

59 lines
1.9 KiB
C++

#pragma once
#include "CoreMinimal.h"
#include "DismembermentGraphNode.h"
#include "DismembermentGraphNodeWound.generated.h"
/**
* Node for wound effects in the dismemberment graph
*/
UCLASS()
class FLESHEDITOR_API UDismembermentGraphNodeWound : public UDismembermentGraphNode
{
GENERATED_BODY()
public:
UDismembermentGraphNodeWound();
// Wound parameters
UPROPERTY(EditAnywhere, Category = "Wound Parameters")
float WoundSize;
UPROPERTY(EditAnywhere, Category = "Wound Parameters")
float WoundDepth;
UPROPERTY(EditAnywhere, Category = "Wound Parameters")
TObjectPtr<UMaterialInterface> WoundMaterial;
UPROPERTY(EditAnywhere, Category = "Wound Parameters")
TObjectPtr<UNiagaraSystem> WoundEffect;
UPROPERTY(EditAnywhere, Category = "Wound Parameters")
bool bCreateDecal;
UPROPERTY(EditAnywhere, Category = "Wound Parameters", meta = (EditCondition = "bCreateDecal"))
TObjectPtr<UMaterialInterface> DecalMaterial;
UPROPERTY(EditAnywhere, Category = "Wound Parameters", meta = (EditCondition = "bCreateDecal"))
float DecalSize;
UPROPERTY(EditAnywhere, Category = "Wound Parameters", meta = (EditCondition = "bCreateDecal"))
float DecalLifetime;
UPROPERTY(EditAnywhere, Category = "Wound Parameters")
bool bAffectBoneHealth;
UPROPERTY(EditAnywhere, Category = "Wound Parameters", meta = (EditCondition = "bAffectBoneHealth"))
float BoneDamage;
// 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
};