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

#pragma once

#include "ISCW_UK2Node_CallFunction.h"
#include "SCW_UK2Node.h"

class UK2Node_CallFunction;

namespace Sourcify
{
	class SCW_UK2Node_CallFunction : public SCW_UK2Node, public virtual ISCW_UK2Node_CallFunction
	{
	public:
		SCW_UK2Node_CallFunction(UK2Node_CallFunction* InK2Node_CallFunction);
				
		ISCW_UEdGraphPtr GetFunctionGraph() const override;

		ISCW_FMemberReferencePtr GetFunctionReference() const override;
		
		void SetFromFunction(ISCW_UFunctionConstPtr Function) override;

		ISCW_UFunctionPtr GetTargetFunction() const override;

		UK2Node_CallFunction* ToUK2Node_CallFunction() const;

		ISCW_UK2Node_CallFunctionPtr ToUK2Node_CallFunctionPtr() override;
		ISCW_UK2Node_CallFunctionConstPtr ToUK2Node_CallFunctionPtr() const override;

	protected:
		UK2Node_CallFunction* K2Node_CallFunction;
	};
} // namespace Sourcify