Files
AncientCivil/Plugins/Puerts/Source/JsEnv/Public/UECompatible.h
T
2025-02-10 00:44:11 +08:00

58 lines
1.8 KiB
C++

/*
* Tencent is pleased to support the open source community by making Puerts available.
* Copyright (C) 2020 THL A29 Limited, a Tencent company. All rights reserved.
* Puerts is licensed under the BSD 3-Clause License, except for the third-party components listed in the file 'LICENSE' which may
* be subject to their corresponding license terms. This file is subject to the terms and conditions defined in file 'LICENSE',
* which is part of this source code package.
*/
#pragma once
#include "Runtime/Launch/Resources/Version.h"
#include "CoreMinimal.h"
#include "UObject/Object.h"
#include "UObject/UObjectIterator.h"
#include "PuertsNamespaceDef.h"
namespace PUERTS_NAMESPACE
{
FORCEINLINE bool UEObjectIsPendingKill(const UObject* Test)
{
#if ENGINE_MAJOR_VERSION > 4
return !IsValid(Test) || Test->IsUnreachable();
#else
return Test->IsPendingKillOrUnreachable();
#endif
}
#if ENGINE_MAJOR_VERSION > 4
#define FUETicker FTSTicker
#define FUETickDelegateHandle FTSTicker::FDelegateHandle
#else
#define FUETicker FTicker
#define FUETickDelegateHandle FDelegateHandle
#endif
#if ENGINE_MINOR_VERSION >= 27 || ENGINE_MAJOR_VERSION > 4
typedef FThreadSafeObjectIterator FUEObjectIterator;
#else
typedef FObjectIterator FUEObjectIterator;
#endif
template <typename T>
T* FindAnyType(const TCHAR* InShortName)
{
#if (ENGINE_MAJOR_VERSION == 5 && ENGINE_MINOR_VERSION >= 1) || ENGINE_MAJOR_VERSION > 5
return FindFirstObject<T>(
InShortName, EFindFirstObjectOptions::EnsureIfAmbiguous | EFindFirstObjectOptions::NativeFirst, ELogVerbosity::Error);
#else
return FindObject<T>(ANY_PACKAGE, InShortName);
#endif
}
template <typename T>
T* FindAnyType(const FString& InShortName)
{
return FindAnyType<T>(*InShortName);
}
} // namespace PUERTS_NAMESPACE