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

#pragma once

#include "ISCW_UK2Node_CreateDelegate.h"
#include "SCW_UK2Node.h"

class UK2Node_CreateDelegate;

namespace Sourcify
{
	class SCW_UK2Node_CreateDelegate : public SCW_UK2Node, public virtual ISCW_UK2Node_CreateDelegate
	{
	public:
		SCW_UK2Node_CreateDelegate(UK2Node_CreateDelegate* InK2Node_CreateDelegate);

		wstring GetFunctionName() const override;

		void HandleAnyChange(bool bForceModify = false) override;

		UK2Node_CreateDelegate* ToUK2Node_CreateDelegate() const;

		ISCW_UK2Node_CreateDelegatePtr ToUK2Node_CreateDelegatePtr() override;
		ISCW_UK2Node_CreateDelegateConstPtr ToUK2Node_CreateDelegatePtr() const override;

		ISCW_UEdGraphPinPtr GetDelegateOutPin() const override;

		void SetFunction(wstring Name) const override;

	protected:
		UK2Node_CreateDelegate* K2Node_CreateDelegate;
	};
} // namespace Sourcify