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

#pragma once

#include "ISCW_UClass.h"
#include "ISCW_UK2Node_DynamicCast.h"
#include "SCW_UK2Node.h"

class UK2Node_DynamicCast;

namespace Sourcify
{
	class SCW_UK2Node_DynamicCast : public SCW_UK2Node, public virtual ISCW_UK2Node_DynamicCast
	{
	public:
		SCW_UK2Node_DynamicCast(UK2Node_DynamicCast* InK2Node_DynamicCast);

		ISCW_UClassPtr GetTargetType() const override;

		void SetTargetType(ISCW_UClassPtr InTargetType) override;

		UK2Node_DynamicCast* ToUK2Node_DynamicCast() const;

		ISCW_UK2Node_DynamicCastPtr ToUK2Node_DynamicCastPtr() override;
		ISCW_UK2Node_DynamicCastConstPtr ToUK2Node_DynamicCastPtr() const override;

	protected:
		UK2Node_DynamicCast* K2Node_DynamicCast;
	};
} // namespace Sourcify