// REALMS IN RUIN. Copyright (c) 2025 Trevor Edwards. All rights reserved. #pragma once #include "CoreMinimal.h" #include "UObject/NoExportTypes.h" #include "RIRWidgetController.generated.h" class UAttributeSet; class UAbilitySystemComponent; USTRUCT(BlueprintType) struct FWidgetControllerParams { GENERATED_BODY() FWidgetControllerParams() {} FWidgetControllerParams(APlayerController* PC, APlayerState* PS, UAbilitySystemComponent* ASC, UAttributeSet* AS) : PlayerController(PC), PlayerState(PS), AbilitySystemComponent(ASC), AttributeSet(AS) {} UPROPERTY(EditAnywhere, BlueprintReadWrite) TObjectPtr PlayerController = nullptr; UPROPERTY(EditAnywhere, BlueprintReadWrite) TObjectPtr PlayerState = nullptr; UPROPERTY(EditAnywhere, BlueprintReadWrite) TObjectPtr AbilitySystemComponent = nullptr; UPROPERTY(EditAnywhere, BlueprintReadWrite) TObjectPtr AttributeSet = nullptr; }; /** * */ UCLASS() class REALMSINRUIN_API URIRWidgetController : public UObject { GENERATED_BODY() public: UFUNCTION(BlueprintCallable, Category="WidgetController") void SetWidgetControllerParams(const FWidgetControllerParams& WCParams); virtual void BroadcastInitialInitialValues(); virtual void BindCallbacksToDependencies(); 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; };