// Copyright 2025 https://yuewu.dev/en All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "K2Node.h" #include "GGA_K2Node_EffectContextPayload.generated.h" namespace K2Node_ContextPayload_PinNames { static FName EffectContextPinName = "EffectContext"; static FName InstancedStructPinName = "InstancedStruct"; static FName KeyPinName = "Key"; static FName PayloadTypePinName = "PayloadType"; static FName OutStructPinName = "ReturnValue"; static FName ValidExecPinName = "Valid"; static FName InvalidExecPinName = "Invalid"; }; /** * */ UCLASS() class GENERICGAMEPLAYABILITIESEDITOR_API UGGA_K2Node_EffectContextPayload : public UK2Node { GENERATED_BODY() protected: //~ UEdGraphNode Interface. virtual void PinConnectionListChanged(UEdGraphPin* Pin) override; virtual void PostPlacedNewNode() override; virtual void PinDefaultValueChanged(UEdGraphPin* Pin) override; virtual FString GetPinMetaData(FName InPinName, FName InKey) override; virtual FSlateIcon GetIconAndTint(FLinearColor& OutColor) const override; virtual FLinearColor GetNodeTitleColor() const override; //~ UK2Node Interface virtual FText GetMenuCategory() const override; virtual void ReallocatePinsDuringReconstruction(TArray& OldPins) override; virtual bool IsNodeSafeToIgnore() const override { return true; } virtual bool IsNodePure() const override { return false; } virtual void PostReconstructNode() override; //~ Getters UEdGraphPin* GetEffectContextPin() const; UEdGraphPin* GetInstancedStructPin() const; UEdGraphPin* GetKeyPin() const; UEdGraphPin* GetPayloadTypePin() const; UEdGraphPin* GetOutStructPin() const; UEdGraphPin* GetValidPin() const; UEdGraphPin* GetInvalidPin() const; //~ Helper Functions void RefreshOutputType(); }; UCLASS(BlueprintType, Blueprintable) class GENERICGAMEPLAYABILITIESEDITOR_API UGGA_K2Node_GetEffectContextPayload : public UGGA_K2Node_EffectContextPayload { GENERATED_BODY() //~ UEdGraphNode Interface. virtual FText GetNodeTitle(ENodeTitleType::Type TitleType) const override; virtual FText GetTooltipText() const override; virtual FText GetKeywords() const override; virtual void AllocateDefaultPins() override; //~ UK2Node Interface virtual void GetMenuActions(FBlueprintActionDatabaseRegistrar& ActionRegistrar) const override; virtual void ExpandNode(class FKismetCompilerContext& CompilerContext, UEdGraph* SourceGraph) override; };