From 875659c4c8d9c021ed0209b9a0cb58c388bfc75e Mon Sep 17 00:00:00 2001 From: geekosaurusr3x Date: Tue, 31 Mar 2026 15:39:23 +0200 Subject: [PATCH] Make unreal 5.6 patch minor version dependent --- .../Private/FTransformHandlerFactory.cpp | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/Source/Blend4Real/Private/FTransformHandlerFactory.cpp b/Source/Blend4Real/Private/FTransformHandlerFactory.cpp index 80a16f0..b61b793 100644 --- a/Source/Blend4Real/Private/FTransformHandlerFactory.cpp +++ b/Source/Blend4Real/Private/FTransformHandlerFactory.cpp @@ -17,8 +17,15 @@ #include "Framework/Application/SlateApplication.h" #include "BlueprintEditorModule.h" #include "BlueprintEditor.h" +#if ENGINE_MINOR_VERSION <= 6 +#include "Editor/UnrealEdEngine.h" +#include "UnrealEdGlobals.h" +#include "SplineComponentVisualizer.h" +#else #include "Features/IModularFeatures.h" #include "SplineDetailsProvider.h" +#endif + #include "Components/SplineComponent.h" #include "IPersonaPreviewScene.h" #include "Animation/DebugSkelMeshComponent.h" @@ -40,6 +47,22 @@ namespace */ TSharedPtr TryCreateSplinePointHandler() { +#if ENGINE_MINOR_VERSION <= 6 + // In UE 5.6, get the spline visualizer directly via the component visualizer registry + TSharedPtr Visualizer = GUnrealEd + ? GUnrealEd->FindComponentVisualizer(USplineComponent::StaticClass()->GetFName()) + : nullptr; + + FSplineComponentVisualizer* SplineVisualizer = static_cast(Visualizer.Get()); + if (SplineVisualizer && SplineVisualizer->GetSelectedKeys().Num() > 0) + { + USplineComponent* SplineComp = SplineVisualizer->GetEditedSplineComponent(); + if (SplineComp) + { + return MakeShared(SplineComp, SplineVisualizer->GetSelectedKeys()); + } + } +#else // Get all spline details providers (visualizers that can provide selection state) TArray Providers = IModularFeatures::Get() .GetModularFeatureImplementations(ISplineDetailsProvider::GetModularFeatureName()); @@ -55,7 +78,9 @@ namespace } } } - + +#endif + return nullptr; }