54 lines
2.2 KiB
C++
54 lines
2.2 KiB
C++
// Copyright Echo Devgroup
|
|
|
|
|
|
#include "UI/HUD/AuraHUD.h"
|
|
|
|
#include "Blueprint/UserWidget.h"
|
|
#include "UI/Widget/AuraUserWidget.h"
|
|
#include "UI/WidgetController/AttributeMenuWidgetController.h"
|
|
#include "UI/WidgetController/OverlayWidgetController.h"
|
|
|
|
UOverlayWidgetController* AAuraHUD::GetOverlayWidgetController(const FWidgetControllerParams& WCParams)
|
|
{
|
|
if (OverlayWidgetController == nullptr)
|
|
{
|
|
OverlayWidgetController = NewObject<UOverlayWidgetController>(this, OverlayWidgetControllerClass);
|
|
OverlayWidgetController->SetWidgetControllerParams(WCParams);
|
|
OverlayWidgetController->BindCallbacksToDependencies();
|
|
//UE_LOG(LogTemp, Warning, TEXT("AuraHUD - GetOverlayWidgetController - Return new Controller"));
|
|
}
|
|
//UE_LOG(LogTemp, Warning, TEXT("AuraHUD - GetOverlayWidgetController - Controller already exists"));
|
|
//If it exists, return existing OverlayWidgetController
|
|
return OverlayWidgetController;
|
|
}
|
|
|
|
UAttributeMenuWidgetController* AAuraHUD::GetAttributeMenuWidgetController(const FWidgetControllerParams& WCParams)
|
|
{
|
|
if (AttributeMenuWidgetController == nullptr)
|
|
{
|
|
AttributeMenuWidgetController = NewObject<UAttributeMenuWidgetController>(this, AttributeMenuWidgetControllerClass);
|
|
AttributeMenuWidgetController->SetWidgetControllerParams(WCParams);
|
|
AttributeMenuWidgetController->BindCallbacksToDependencies();
|
|
}
|
|
return AttributeMenuWidgetController;
|
|
}
|
|
|
|
void AAuraHUD::InitOverlay(APlayerController* PC, APlayerState* PS, UAbilitySystemComponent* ASC, UAttributeSet* AS)
|
|
{
|
|
checkf(OverlayWidgetClass, TEXT("Overlay Widget Class initialized, please fill out BP_AuraHUD"));
|
|
checkf(OverlayWidgetControllerClass, TEXT("Overlay Widget Controller Class initialized, Please fill out BP_AuraHUD"));
|
|
|
|
UUserWidget* Widget = CreateWidget<UUserWidget>(GetWorld(),OverlayWidgetClass);
|
|
OverlayWidget = Cast<UAuraUserWidget>(Widget);
|
|
|
|
const FWidgetControllerParams WidgetControllerParams(PC, PS, ASC, AS);
|
|
UOverlayWidgetController* WidgetController = GetOverlayWidgetController(WidgetControllerParams);
|
|
|
|
//UE_LOG(LogTemp, Warning, TEXT("AuraHUD - WidgetController"));
|
|
|
|
OverlayWidget->SetWidgetController(WidgetController);
|
|
WidgetController->BroadcastInitialValues();
|
|
//UE_LOG(LogTemp, Warning, TEXT("AuraHUD - Add to Viewport"));
|
|
Widget->AddToViewport();
|
|
}
|