Files
2025-05-18 13:04:45 +08:00

80 lines
2.0 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "EdGraphSchema_K2.h"
#include "MVVMConversionFunctionGraphSchema.generated.h"
/**
* Schema for conversion functions, adds pin metadata needed on connections for MVVM
*/
UCLASS()
class UMVVMConversionFunctionGraphSchema : public UEdGraphSchema_K2
{
GENERATED_BODY()
public:
//~ Begin EdGraphSchema Interface
virtual bool TryCreateConnection(UEdGraphPin* A, UEdGraphPin* B) const override;
virtual const FPinConnectionResponse CanCreateConnection(const UEdGraphPin* A, const UEdGraphPin* B) const override;
//~ End EdGraphSchema Interface
};
/**
* Schema used by async conversion functions, currently same as regular graph schema. But will autocast objects.
*/
UCLASS()
class UMVVMAsyncConversionFunctionGraphSchema : public UMVVMConversionFunctionGraphSchema
{
GENERATED_BODY()
public:
//~ Begin EdGraphSchema Interface
virtual bool CreateAutomaticConversionNodeAndConnections(UEdGraphPin* A, UEdGraphPin* B) const override;
[[nodiscard]] virtual TOptional<FFindSpecializedConversionNodeResults> FindSpecializedConversionNode(const FEdGraphPinType& OutputPinType, const UEdGraphPin& InputPin, bool bCreateNode) const override;
//~ End EdGraphSchema Interface
};
/**
* Schema used to test if a node is async or not
*
* Note: Keep in private header.
*/
UCLASS(Hidden, HideDropDown)
class UMVVMFakeTestUbergraphSchema : public UEdGraphSchema_K2
{
GENERATED_BODY()
public:
virtual EGraphType GetGraphType(const UEdGraph* TestEdGraph) const override;
};
/**
* Graph used to test if a node is async or not
*
* Note: Keep in private header.
*/
UCLASS(Hidden, HideDropDown)
class UMVVMFakeTestUbergraph : public UEdGraph
{
GENERATED_BODY()
public:
UMVVMFakeTestUbergraph();
};
/**
* Graph used to test if a node is async or not
*
* Note: Keep in private header.
*/
UCLASS(Hidden, HideDropDown)
class UMVVMFakeTestFunctiongraph : public UEdGraph
{
GENERATED_BODY()
public:
UMVVMFakeTestFunctiongraph();
};