// Copyright (c) 2024 Codemongous LLC. All Rights Reserved.

#pragma once

#include "ISCW_UK2Node_BaseMCDelegate.h"
#include "K2Node_BaseMCDelegate.h"
#include "SCW_UK2Node.h"

class UK2Node_BaseMCDelegate;

namespace Sourcify
{
	class SCW_UK2Node_BaseMCDelegate : public SCW_UK2Node, public virtual ISCW_UK2Node_BaseMCDelegate
	{
	public:
		SCW_UK2Node_BaseMCDelegate(UK2Node_BaseMCDelegate* InK2Node_BaseMCDelegate);

		ISCW_FMemberReferencePtr GetDelegateReference() const override;

		ISCW_UEdGraphPinPtr GetDelegatePin() const override;

		ISCW_UFunctionPtr GetDelegateSignature() const override;
		
		ISCW_FPropertyPtr GetProperty() const override;

		UK2Node_BaseMCDelegate* ToUK2Node_BaseMCDelegate() const;

	protected:
		UK2Node_BaseMCDelegate* K2Node_BaseMCDelegate;
	};
} // namespace Sourcify