/
linkfly
/
MasterKnight
Обзор
Документация
Войти
/
linkfly
/
MasterKnight
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
Plugins/Developer/RiderLink/Source/RiderDebuggerSupport/Private/UnrealFunctions.cpp
59 строк
2 KB
Сергей Катревич
lesson-9 in progress, RiderLink added
29 дек 2025, 08:07
29 дек 2025, 08:07
04d607e
Код
Авторство
О чём код?
#include "UnrealFunctions.h" #include "Engine/BlueprintGeneratedClass.h" #include "Templates/Casts.h" UClass* RiderDebuggerSupport::FindClassForNode(const UObject* Object, const UFunction* Function) { if (nullptr != Function) return Function->GetOwnerClass(); if (nullptr != Object) return Object->GetClass(); return nullptr; } UEdGraphNode* RiderDebuggerSupport::FindSourceNodeForCodeLocation(const UObject* Object, UFunction* Function) { #if WITH_EDITORONLY_DATA if (nullptr == Object) return nullptr; if (UBlueprintGeneratedClass* Class = Cast<UBlueprintGeneratedClass>(FindClassForNode(Object, Function))) { return Class->GetDebugData(). FindSourceNodeFromCodeLocation(Function, 0, true); } #endif return nullptr; } FString RiderDebuggerSupport::GetClassNameWithoutSuffix(const UClass* Class) { FString Result = TEXT("Null"); if (nullptr == Class) return Result; Result = Class->GetName(); if (nullptr != Class->ClassGeneratedBy) { Result.RemoveFromEnd(TEXT("_C"), ESearchCase::CaseSensitive); } return Result; } const UClass* RiderDebuggerSupport::CastToUClass(const UObject* Object) { if (nullptr == Object) return nullptr; const auto& TypeOfObject = Object->GetClass(); if (nullptr == TypeOfObject) return nullptr; const auto& TypeOfTypeOfObject = TypeOfObject->GetClass(); if (nullptr == TypeOfTypeOfObject) return nullptr; const auto& TypeOfClass = TypeOfTypeOfObject->GetClass(); if (nullptr == TypeOfClass) return nullptr; if (TypeOfClass != TypeOfTypeOfObject) return nullptr; return static_cast<const UClass*>(Object); }