From 80035ce1e55ef8c089970b13c8701f8a8a5ba530 Mon Sep 17 00:00:00 2001 From: Jonathan Rampersad Date: Sun, 8 Jun 2025 12:46:21 -0400 Subject: [PATCH] User Widget and Widget Controller --- Aura.uproject | 4 ++- .../Aura/Private/UI/Widget/AuraUserWidget.cpp | 10 ++++++ .../WidgetController/AuraWidgetController.cpp | 5 +++ Source/Aura/Public/UI/Widget/AuraUserWidget.h | 28 ++++++++++++++++ .../WidgetController/AuraWidgetController.h | 32 +++++++++++++++++++ 5 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 Source/Aura/Private/UI/Widget/AuraUserWidget.cpp create mode 100644 Source/Aura/Private/UI/WidgetController/AuraWidgetController.cpp create mode 100644 Source/Aura/Public/UI/Widget/AuraUserWidget.h create mode 100644 Source/Aura/Public/UI/WidgetController/AuraWidgetController.h diff --git a/Aura.uproject b/Aura.uproject index 4e05c12..08ed99c 100644 --- a/Aura.uproject +++ b/Aura.uproject @@ -10,7 +10,9 @@ "LoadingPhase": "Default", "AdditionalDependencies": [ "Engine", - "GameplayAbilities" + "GameplayAbilities", + "UMG", + "CoreUObject" ] } ], diff --git a/Source/Aura/Private/UI/Widget/AuraUserWidget.cpp b/Source/Aura/Private/UI/Widget/AuraUserWidget.cpp new file mode 100644 index 0000000..65c6592 --- /dev/null +++ b/Source/Aura/Private/UI/Widget/AuraUserWidget.cpp @@ -0,0 +1,10 @@ +// Assets provided by DruidMechanics. Copyright Jonathan Rampersad 2024 + + +#include "UI/Widget/AuraUserWidget.h" + +void UAuraUserWidget::SetWidgetController(UObject* InWidgetController) +{ + WidgetController = InWidgetController; + WidgetControllerSet(); +} diff --git a/Source/Aura/Private/UI/WidgetController/AuraWidgetController.cpp b/Source/Aura/Private/UI/WidgetController/AuraWidgetController.cpp new file mode 100644 index 0000000..a977c2d --- /dev/null +++ b/Source/Aura/Private/UI/WidgetController/AuraWidgetController.cpp @@ -0,0 +1,5 @@ +// Assets provided by DruidMechanics. Copyright Jonathan Rampersad 2024 + + +#include "UI/WidgetController/AuraWidgetController.h" + diff --git a/Source/Aura/Public/UI/Widget/AuraUserWidget.h b/Source/Aura/Public/UI/Widget/AuraUserWidget.h new file mode 100644 index 0000000..8803f94 --- /dev/null +++ b/Source/Aura/Public/UI/Widget/AuraUserWidget.h @@ -0,0 +1,28 @@ +// Assets provided by DruidMechanics. Copyright Jonathan Rampersad 2024 + +#pragma once + +#include "CoreMinimal.h" +#include "Blueprint/UserWidget.h" +#include "AuraUserWidget.generated.h" + +/** + * + */ +UCLASS() +class AURA_API UAuraUserWidget : public UUserWidget +{ + GENERATED_BODY() + +public: + UFUNCTION(BlueprintCallable) + void SetWidgetController(UObject* InWidgetController); + + UPROPERTY(BlueprintReadOnly) + TObjectPtr WidgetController; + +protected: + UFUNCTION(BlueprintImplementableEvent) + void WidgetControllerSet(); + +}; diff --git a/Source/Aura/Public/UI/WidgetController/AuraWidgetController.h b/Source/Aura/Public/UI/WidgetController/AuraWidgetController.h new file mode 100644 index 0000000..62e6771 --- /dev/null +++ b/Source/Aura/Public/UI/WidgetController/AuraWidgetController.h @@ -0,0 +1,32 @@ +// Assets provided by DruidMechanics. Copyright Jonathan Rampersad 2024 + +#pragma once + +#include "CoreMinimal.h" +#include "UObject/NoExportTypes.h" +#include "AuraWidgetController.generated.h" + +class UAttributeSet; +class UAbilitySystemComponent; +/** + * + */ +UCLASS() +class AURA_API UAuraWidgetController : public UObject +{ + GENERATED_BODY() + +protected: + UPROPERTY(BlueprintReadOnly, Category="WidgetController") + TObjectPtr PlayerController; + + UPROPERTY(BlueprintReadOnly, Category="WidgetController") + TObjectPtr PlayerState; + + UPROPERTY(BlueprintReadOnly, Category="WidgetController") + TObjectPtr AbilitySystemComponent; + + UPROPERTY(BlueprintReadOnly, Category="WidgetController") + TObjectPtr AttributeSet; + +};