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

#pragma once

#include "ISCW_UK2Node_Event.h"
#include "SCW_UK2Node_EditablePinBase.h"

class UK2Node_Event;

namespace Sourcify
{
	class SCW_UK2Node_Event : public SCW_UK2Node_EditablePinBase, public virtual ISCW_UK2Node_Event
	{
	public:
		SCW_UK2Node_Event(UK2Node_Event* InK2Node_Event);

		ISCW_UFunctionPtr FindEventSignatureFunction() const override;
		
		ISCW_FMemberReferencePtr GetEventReference() const override;

		wstring GetCustomFunctionName() const override;

		wstring GetFunctionName() const override;

		bool GetOverrideFunction() const override;
		
		void SetOverrideFunction(bool InOverride) override;

		UK2Node_Event* ToUK2Node_Event() const;

	protected:
		UK2Node_Event* K2Node_Event;
	};
} // namespace Sourcify