Unreal Snake Game 1.0.0
SG_HUD.h
1// Snake Game, Copyright LifeEXE. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "GameFramework/HUD.h"
7#include "SG_HUD.generated.h"
8
11
12UENUM()
13enum class EUIGameState : uint8
14{
15 GameInProgress = 0,
16 GameOver,
17 GameCompleted
18};
19
20namespace SnakeGame
21{
22class Game;
23} // namespace SnakeGame
24
25UCLASS()
26class SNAKEGAME_API ASG_HUD : public AHUD
27{
28 GENERATED_BODY()
29
30public:
31 ASG_HUD();
32
33 void SetModel(const TSharedPtr<SnakeGame::Game>& Game);
34 void SetInputKeyNames(const FString& ResetGameKeyName);
35
36 virtual void Tick(float DeltaSeconds) override;
37
38protected:
39 UPROPERTY(EditDefaultsOnly, Category = "UI")
40 TSubclassOf<USG_GameplayWidget> GameplayWidgetClass;
41
42 UPROPERTY(EditDefaultsOnly, Category = "UI")
43 TSubclassOf<USG_GameOverWidget> GameOverWidgetClass;
44
45 virtual void BeginPlay() override;
46
47private:
48 UPROPERTY()
49 TObjectPtr<USG_GameplayWidget> GameplayWidget;
50
51 UPROPERTY()
52 TObjectPtr<USG_GameOverWidget> GameOverWidget;
53
54 UPROPERTY()
55 TMap<EUIGameState, TObjectPtr<UUserWidget>> GameWidgets;
56
57 UPROPERTY()
58 TObjectPtr<UUserWidget> CurrentWidget;
59
60 TWeakPtr<SnakeGame::Game> Game;
61 EUIGameState GameState;
62
63 void SetUIGameState(EUIGameState GameState);
64};
Definition: SG_HUD.h:27
Definition: SnakeGame.Build.cs:6
Definition: SG_GameOverWidget.h:14
Definition: SG_GameplayWidget.h:13