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

#pragma once

#include "ISCW_UK2Node_ComponentBoundEvent.h"
#include "SCW_UK2Node_Event.h"

class UK2Node_ComponentBoundEvent;

namespace Sourcify
{
	class SCW_UK2Node_ComponentBoundEvent : public SCW_UK2Node_Event, public virtual ISCW_UK2Node_ComponentBoundEvent
	{
	public:
		SCW_UK2Node_ComponentBoundEvent(UK2Node_ComponentBoundEvent* InK2Node_ComponentBoundEvent);

		ISCW_UK2NodePtr AsUK2Node() const override;
		
		ISCW_UK2Node_EventPtr AsUK2Node_Event() const override;

		wstring GetComponentPropertyName() const override;
		
		wstring GetDelegatePropertyName() const override;

		UK2Node_ComponentBoundEvent* ToUK2Node_ComponentBoundEvent() const;

	protected:
		UK2Node_ComponentBoundEvent* K2Node_ComponentBoundEvent;
	};
} // namespace Sourcify