Space Plunder
Loading...
Searching...
No Matches
QuestLogWidget.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
5#include "CoreMinimal.h"
6#include "BaseQuestWidget.h"
7#include "QuestButtonWidget.h"
9#include "Blueprint/UserWidget.h"
10#include "Data/QuestData.h"
12#include "QuestLogWidget.generated.h"
13
17UCLASS()
18class QUESTSYSTEM_API UQuestLogWidget : public UBaseQuestWidget, public IQuestLogHUD
19{
20 GENERATED_BODY()
21
22
23public:
24 explicit UQuestLogWidget(const FObjectInitializer& ObjectInitializer);
25
26 //~~~~~ IQuestLogHUD ~~~~~~//
27 // virtual void PopulateQuestList(const bool bHideInformation) override;
28 virtual void UpdateQuestStatus() override;
29 //~~~~~ IQuestLogHUD ~~~~~~//
30
31 virtual void PopulateQuestList(const bool bHideSelectedQuest);
32
33
34 UFUNCTION(BlueprintCallable, Category="Quest System")
35 void SetFilterType(const EFilterQuestType NewFilterType);
36
37
38 //- Clear all Values //
39 UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category="Quest System|Widget")
40 void ClearSelectedQuestInfo();
41 void ClearSelectedQuestInfo_Implementation();
42
43 UFUNCTION(BlueprintCallable, Category="Quest System|Widget")
44 bool GetSelectedQuest(FQuestInfo& QuestInfo) const;
45
46
47 UFUNCTION(BlueprintCallable, Category="Quest System|Widget")
48 void LoadQuestLogSettings(const EFilterQuestType SavedFilterType, const FQuestInfo& SavedCurrentQuest);
49 UFUNCTION(BlueprintCallable, Category="Quest System|Widget")
50 void UpdateInfoOnButtonClicked(const FQuestInfo& QuestInfo);
51
52 UFUNCTION(BlueprintPure, BlueprintCallable, Category="Quest System|Widget")
53 UQuestButtonWidget* GetQuestButtonFromQuestID(const FString& QuestID) const;
54
55
56 UFUNCTION(BlueprintCallable, Category="Quest System")
57 void OnQuestCompleted(const FQuestInfo& QuestInfo, const FQuestOutcome& Outcome);
58
59
60 UFUNCTION(BlueprintCallable, Category="Quest System")
61 EFilterQuestType GetFilterType() const {return FilterType;};
62
63protected:
64 virtual bool Initialize() override;
65 virtual void NativeConstruct() override;
66
67 UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category="Quest System|Widget")
69
70
71 UFUNCTION(BlueprintCallable, Category="Quest System|Widget", BlueprintPure=false)
72 void UpdateQuestInformation(const FQuestInfo& QuestInfo) const;
73
74
75
76 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Quest System|Widget")
77 TSubclassOf<UQuestButtonWidget> QuestButtonWidgetClass = nullptr;
78 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Quest System|Widget")
79 TSubclassOf<UQuestSystemObjectiveWidget> QuestSystemObjectiveWidgetClass = nullptr;
80 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Quest System|Widget")
81 TSubclassOf<class UBaseQuestSystemWidget> QuestRewardWidgetClass = nullptr;
82
83 UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category="Quest System|Widget")
84 TArray<UQuestButtonWidget*> QuestButtonWidgets;
85 UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category="Quest System|Widget")
86 TArray<UQuestButtonWidget*> QuestFilterButtonWidgets;
87
88
89 //- Widget Binds //
90 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (BindWidget),Category="Quest System")
91 class UScrollBox* QuestBox = nullptr;
92 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (BindWidget),Category="Quest System")
93 class UScrollBox* QuestFilterBox = nullptr;
94 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (BindWidget),Category="Quest System")
95 class UButton* AbandonQuestButton = nullptr;
96 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (BindWidget),Category="Quest System")
97 class UButton* TrackQuestButton = nullptr;
98
99
100 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (BindWidget),Category="Quest System|Tracked Quest")
101 class UTextBlock* CurrentQuestText = nullptr;
102 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (BindWidget),Category="Quest System|Tracked Quest")
103 class UTextBlock* QuestCategoryText = nullptr;
104 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (BindWidget),Category="Quest System|Tracked Quest")
105 class UPanelWidget* ObjectivesBox = nullptr;
106 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (BindWidget),Category="Quest System|Tracked Quest")
107 class UTextBlock* QuestAreaText = nullptr;
108 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (BindWidget),Category="Quest System|Tracked Quest")
109 class UTextBlock* QuestDescriptionText = nullptr;
110 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (BindWidget),Category="Quest System|Tracked Quest")
111 class UTextBlock* QuestCurrentObjectiveText = nullptr;
112 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (BindWidget),Category="Quest System|Tracked Quest")
113 class UScrollBox* QuestRewardsBox = nullptr;
114
115 //- Debugging Buttons //
116 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (BindWidget),Category="Quest System|Debugging")
117 class UButton* RemoveQuestButton = nullptr;
118 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (BindWidget),Category="Quest System|Debugging")
119 class UButton* FinishQuestButton = nullptr;
120 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, meta = (BindWidget),Category="Quest System|Debugging")
121 class UButton* FailQuestButton = nullptr;
122
123private:
124
125 void UpdateSelectedQuest(const FPlayerQuestStatus& PlayerQuestStatus);
126 void PopulateFilterList();
127 void RemoveAllQuestButtons();
128 bool CreateQuestButton(const FQuestInfo& QuestInfo);
129
130 void SetCurrentQuestObjectives(const TArray<FQuestObjectives>& QuestObjectives) const;
131 void CreateRewardWidget(const FString& Title, const float RewardAmount) const;
132
133 UFUNCTION()
134 void TrackQuestButtonClicked();
135 UFUNCTION()
136 void FinishQuestButtonClicked();
137 UFUNCTION()
138 void RemoveQuestButtonClicked();
139 UFUNCTION()
140 void FailQuestButtonClicked();
141 UFUNCTION()
142 void AbandonQuestButtonClicked();
143
144 bool bQuestSelected = false;
145 FQuestInfo SelectedQuest;
146};
147
UCLASS(Blueprintable, BlueprintType, ClassGroup=(BucciGames), meta=(BlueprintSpawnableComponent)) class CHATSYSTEM_API UChatSystemComponent
Definition ChatSystemComponent.h:13
EFilterQuestType
Definition QuestData.h:28
Definition QuestLogHUD.h:21
Definition BaseQuestSystemWidget.h:12
Definition BaseQuestWidget.h:17
Definition QuestButtonWidget.h:17
Definition QuestLogWidget.h:19
A widget class used to display quest objectives.
Definition QuestSystemObjectiveWidget.h:18
Definition QuestData.h:1117
Definition QuestData.h:798
Definition QuestData.h:361
Definition QuestData.h:1084