#pragma once #include "CoreMinimal.h" #include "DismembermentGraphNode.h" #include "DismembermentGraphNodeOrgan.generated.h" /** * Node for organ simulation in the dismemberment graph */ UCLASS() class FLESHEDITOR_API UDismembermentGraphNodeOrgan : public UDismembermentGraphNode { GENERATED_BODY() public: UDismembermentGraphNodeOrgan(); // Organ parameters UPROPERTY(EditAnywhere, Category = "Organ Parameters") TObjectPtr OrganMesh; UPROPERTY(EditAnywhere, Category = "Organ Parameters") TObjectPtr OrganMaterial; UPROPERTY(EditAnywhere, Category = "Organ Parameters") FName AttachBoneName; UPROPERTY(EditAnywhere, Category = "Organ Parameters") FVector RelativeLocation; UPROPERTY(EditAnywhere, Category = "Organ Parameters") FRotator RelativeRotation; UPROPERTY(EditAnywhere, Category = "Organ Parameters") FVector RelativeScale; UPROPERTY(EditAnywhere, Category = "Organ Parameters") bool bSimulatePhysics; UPROPERTY(EditAnywhere, Category = "Organ Parameters") float DamageMultiplier; UPROPERTY(EditAnywhere, Category = "Organ Parameters") bool bIsCriticalOrgan; UPROPERTY(EditAnywhere, Category = "Organ Parameters") float BloodAmount; // 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 };