2022-05-23 18:41:30 +00:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
#include "IndicatorLayer.h"
|
2022-09-13 07:18:28 +00:00
|
|
|
|
|
|
|
#include "Components/SlateWrapperTypes.h"
|
2022-05-23 18:41:30 +00:00
|
|
|
#include "Engine/LocalPlayer.h"
|
2022-09-13 07:18:28 +00:00
|
|
|
#include "HAL/Platform.h"
|
|
|
|
#include "Misc/AssertionMacros.h"
|
2022-05-23 18:41:30 +00:00
|
|
|
#include "SActorCanvas.h"
|
2022-09-13 07:18:28 +00:00
|
|
|
#include "Widgets/DeclarativeSyntaxSupport.h"
|
|
|
|
#include "Widgets/Layout/SBox.h"
|
|
|
|
|
|
|
|
class SWidget;
|
2022-05-23 18:41:30 +00:00
|
|
|
|
|
|
|
/////////////////////////////////////////////////////
|
|
|
|
// UIndicatorLayer
|
|
|
|
|
|
|
|
UIndicatorLayer::UIndicatorLayer(const FObjectInitializer& ObjectInitializer)
|
|
|
|
: Super(ObjectInitializer)
|
|
|
|
{
|
|
|
|
bIsVariable = true;
|
|
|
|
SetVisibility(ESlateVisibility::HitTestInvisible);
|
|
|
|
}
|
|
|
|
|
|
|
|
void UIndicatorLayer::ReleaseSlateResources(bool bReleaseChildren)
|
|
|
|
{
|
|
|
|
Super::ReleaseSlateResources(bReleaseChildren);
|
|
|
|
|
|
|
|
MyActorCanvas.Reset();
|
|
|
|
}
|
|
|
|
|
|
|
|
TSharedRef<SWidget> UIndicatorLayer::RebuildWidget()
|
|
|
|
{
|
|
|
|
if (!IsDesignTime())
|
|
|
|
{
|
|
|
|
ULocalPlayer* LocalPlayer = GetOwningLocalPlayer();
|
|
|
|
if (ensureMsgf(LocalPlayer, TEXT("Attempting to rebuild a UActorCanvas without a valid LocalPlayer!")))
|
|
|
|
{
|
|
|
|
MyActorCanvas = SNew(SActorCanvas, FLocalPlayerContext(LocalPlayer), &ArrowBrush);
|
|
|
|
return MyActorCanvas.ToSharedRef();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Give it a trivial box, NullWidget isn't safe to use from a UWidget
|
|
|
|
return SNew(SBox);
|
|
|
|
}
|