Broadcast Initial Values

This commit is contained in:
2025-06-08 20:04:52 -04:00
parent bcd45e95ac
commit 19d9c51014
11 changed files with 52 additions and 12 deletions

View File

@@ -29,6 +29,7 @@ void AAuraHUD::InitOverlay(APlayerController* PC, APlayerState* PS, UAbilitySyst
const auto WidgetController = GetOverlayWidgetController(WidgetControllerParams); const auto WidgetController = GetOverlayWidgetController(WidgetControllerParams);
OverlayWidget->SetWidgetController(WidgetController); OverlayWidget->SetWidgetController(WidgetController);
WidgetController->BroadcastInitialValues();
Widget->AddToViewport(); Widget->AddToViewport();
} }

View File

@@ -10,3 +10,7 @@ void UAuraWidgetController::SetWidgetControllerParams(const FWidgetControllerPar
AbilitySystemComponent = Params.AbilitySystemComponent; AbilitySystemComponent = Params.AbilitySystemComponent;
AttributeSet = Params.AttributeSet; AttributeSet = Params.AttributeSet;
} }
void UAuraWidgetController::BroadcastInitialValues()
{
}

View File

@@ -3,3 +3,13 @@
#include "UI/WidgetController/OverlayWidgetController.h" #include "UI/WidgetController/OverlayWidgetController.h"
#include "AbilitySystem/AuraAttributeSet.h"
void UOverlayWidgetController::BroadcastInitialValues()
{
const auto AuraAttributeSet = CastChecked<UAuraAttributeSet>(AttributeSet);
OnHealthChanged.Broadcast(AuraAttributeSet->GetHealth());
OnMaxHealthChanged.Broadcast(AuraAttributeSet->GetMaxHealth());
OnManaChanged.Broadcast(AuraAttributeSet->GetMana());
OnMaxManaChanged.Broadcast(AuraAttributeSet->GetMaxMana());
}

View File

@@ -45,6 +45,8 @@ public:
UFUNCTION(BlueprintCallable) UFUNCTION(BlueprintCallable)
void SetWidgetControllerParams(const FWidgetControllerParams& Params); void SetWidgetControllerParams(const FWidgetControllerParams& Params);
virtual void BroadcastInitialValues();
protected: protected:
UPROPERTY(BlueprintReadOnly, Category="WidgetController") UPROPERTY(BlueprintReadOnly, Category="WidgetController")
TObjectPtr<APlayerController> PlayerController; TObjectPtr<APlayerController> PlayerController;

View File

@@ -6,12 +6,32 @@
#include "UI/WidgetController/AuraWidgetController.h" #include "UI/WidgetController/AuraWidgetController.h"
#include "OverlayWidgetController.generated.h" #include "OverlayWidgetController.generated.h"
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnHealthChangedSignature, float, NewHealth);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnMaxHealthChangedSignature, float, NewMaxHealth);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnManaChangedSignature, float, NewMana);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnMaxManaChangedSignature, float, NewMaxMana);
/** /**
* *
*/ */
UCLASS() UCLASS(BlueprintType, Blueprintable)
class AURA_API UOverlayWidgetController : public UAuraWidgetController class AURA_API UOverlayWidgetController : public UAuraWidgetController
{ {
GENERATED_BODY() GENERATED_BODY()
public:
virtual void BroadcastInitialValues() override;
UPROPERTY(BlueprintAssignable, Category="GAS|Attributes")
FOnHealthChangedSignature OnHealthChanged;
UPROPERTY(BlueprintAssignable, Category="GAS|Attributes")
FOnMaxHealthChangedSignature OnMaxHealthChanged;
UPROPERTY(BlueprintAssignable, Category="GAS|Attributes")
FOnManaChangedSignature OnManaChanged;
UPROPERTY(BlueprintAssignable, Category="GAS|Attributes")
FOnMaxManaChangedSignature OnMaxManaChanged;
}; };