Files
PHY/Plugins/GCS/Source/GenericGameplayAbilitiesEditor/Public/GGA_K2Node_EffectContextPayload.h
2026-03-03 01:23:02 +08:00

74 lines
2.4 KiB
C++

// 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<UEdGraphPin*>& 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;
};