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

#include "SCW_UK2Node_ForEachElementInEnum.h"
#include "K2Node_ForEachElementInEnum.h"
#include "SCW_UEnum.h"
#include "SourcifyCoreUEWrapperModule.h"

using namespace Sourcify;

SCW_UK2Node_ForEachElementInEnum::SCW_UK2Node_ForEachElementInEnum(UK2Node_ForEachElementInEnum* InK2Node_ForEachElementInEnum) : SCW_UK2Node(InK2Node_ForEachElementInEnum), K2Node_ForEachElementInEnum(InK2Node_ForEachElementInEnum)
{

}

ISCW_UEnumPtr SCW_UK2Node_ForEachElementInEnum::GetEnum() const
{
	return FSourcifyCoreUEWrapper::Get().Wrap(*K2Node_ForEachElementInEnum->GetEnum());
}

void SCW_UK2Node_ForEachElementInEnum::ReloadEnum(ISCW_UEnumPtr InEnum)
{
	K2Node_ForEachElementInEnum->ReloadEnum(dynamic_cast<SCW_UEnum*>(InEnum.get())->ToUEnum());
}

UK2Node_ForEachElementInEnum* SCW_UK2Node_ForEachElementInEnum::ToUK2Node_ForEachElementInEnum() const
{
	return K2Node_ForEachElementInEnum;
}

ISCW_UK2Node_ForEachElementInEnumPtr SCW_UK2Node_ForEachElementInEnum::ToUK2Node_ForEachElementInEnumPtr()
{
	return GetSharedThisAs<SCW_UK2Node_ForEachElementInEnum>();
}

ISCW_UK2Node_ForEachElementInEnumConstPtr SCW_UK2Node_ForEachElementInEnum::ToUK2Node_ForEachElementInEnumPtr() const
{
	return GetSharedThisAs<SCW_UK2Node_ForEachElementInEnum>();
}