Space Plunder
Loading...
Searching...
No Matches
HUDBase.h
Go to the documentation of this file.
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
6
7#include "CoreMinimal.h"
8#include "GameplayTagContainer.h"
9#include "GameFramework/HUD.h"
12
13#include "HUDBase.generated.h"
14
15DECLARE_LOG_CATEGORY_EXTERN(LogHUDBase, Display, All);
16
17
21UCLASS()
22class BASEHELPERS_API AHUDBase : public AHUD, public IHUDInterface
23{
24 GENERATED_BODY()
25
26public:
27
28 AHUDBase();
29
30 //~ IHUDInterface ~//
31 virtual bool RegisterLayer(const FGameplayTag& LayerName, UUserWidget* LayerWidget) override;
32 virtual UUserWidget* PushContentToLayer(const FGameplayTag& LayerName, const TSoftClassPtr<UUserWidget>& WidgetClass) override;
33 virtual UUserWidget* GetContentFromLayer(const FGameplayTag& LayerName, const TSoftClassPtr<UUserWidget>& WidgetClass) override;
34 virtual bool PopContentFromLayer(const FGameplayTag& LayerName) override;
35 virtual bool ClearLayer(const FGameplayTag& LayerName) override;
36 virtual bool ToggleWidget(const FGameplayTag& LayerName, UUserWidget* Widget) override;
37 virtual UUserWidget* AddWidgetToLayer(const FGameplayTag& LayerName, const TSoftClassPtr<UUserWidget>& WidgetClass) override;
38 virtual UUserWidget* AddWidgetToLayerWithSlot(const FGameplayTag& LayerName, const FGameplayTag& SlotTag, const TSoftClassPtr<UUserWidget>& WidgetClass) override;
39
40 virtual void HUDSelectionVertical(const bool bMoveUp = true) override;
41 virtual void HUDSelectionHorizontal(const bool bMoveRight = true) override;
42 virtual void HUDConfirm() override;
43 virtual void HUDCancel() override;
44
45 virtual bool RegisterNotificationManager(const FGameplayTag Type, UUserWidget* ManagerWidget) override;
46 virtual bool AddNotificationToQueue(const FGameplayTag Type, const FNotificationData& Data) override;
47
48
49 virtual void OpenRadialMenu(const FRadialMenuData& Data) override;
50 virtual int32 CloseRadialMenu() override;
51 virtual bool GetIsRadialMenuOpen() const override;
52
53 virtual void ToggleGameLog() override;
54
55 //~ IHUDInterface ~//
56
57
58 UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category="HUD|Radial Menu")
59 UUserWidget* RadialMenuWidget = nullptr;
60
61protected:
62 virtual void BeginPlay() override;
63
64 UFUNCTION(BlueprintImplementableEvent, Category="HUD|Radial Menu")
65 void OnOpenRadialMenu(const FRadialMenuData& Data);
66 UFUNCTION(BlueprintImplementableEvent, Category="HUD|Radial Menu")
67 void OnCloseRadialMenu();
68
69
70 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="HUD|Layout")
71 class UPrimaryLayoutWidget* PrimaryLayoutWidget = nullptr;
72
73
74 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="HUD|Layers")
75 TMap<FGameplayTag, TSoftClassPtr<UUserWidget>> InitialScreens;
76 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="HUD|Layers")
77 TMap<FGameplayTag, TSoftClassPtr<UUserWidget>> InitialNotificationManagers;
78
79 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="HUD|Debugging")
80 bool bDebuggingMode = false;
81
82private:
83 virtual bool CreateLayoutWidget(); //@TODO Override in Custom HUD to create Gamelog Widget
84
85 void PushInitialScreens();
86 void PushInitialNotificationManagers();
87 bool CreateRadialMenu();
88
89 TMap<FGameplayTag, IWidgetLayout*> LayersMap;
90 TMap<FGameplayTag, INotificationManagerInterface*> NotificationManagersMap;
91
92 UPROPERTY(EditAnywhere, Category="HUD|Radial Menu")
93 TSubclassOf<UUserWidget> RadialMenuClass = nullptr;
94 UPROPERTY(EditAnywhere, Category="HUD|Layout")
95 TSubclassOf<UUserWidget> PrimaryLayoutClass = nullptr;
96
97
98 FTimerHandle NotificationTimerHandle;
99 FTimerHandle InitialNotificationTimerHandle;
100};
UCLASS(Blueprintable, BlueprintType, ClassGroup=(BucciGames), meta=(BlueprintSpawnableComponent)) class CHATSYSTEM_API UChatSystemComponent
Definition ChatSystemComponent.h:13
DECLARE_LOG_CATEGORY_EXTERN(LogHUDBase, Display, All)
Definition HUDBase.h:23
Definition HUDInterface.h:23
Definition NotificationManagerInterface.h:23
Definition WidgetLayout.h:21
Definition PrimaryLayoutWidget.h:14
Definition RadialWheelData.h:17
Definition RadialWheelData.h:100