5#include "CoreMinimal.h"
6#include "GameFramework/GameModeBase.h"
7#include "SnakeGame/Core/Game.h"
8#include "Engine/DataTable.h"
9#include "InputActionValue.h"
10#include "SG_GameMode.generated.h"
13class AExponentialHeightFog;
16class UInputMappingContext;
27 virtual void StartPlay()
override;
28 virtual void Tick(
float DeltaSeconds)
override;
31 UPROPERTY(EditDefaultsOnly, Category =
"Settings")
32 bool bOverrideUserSettings{
false};
34 UPROPERTY(EditDefaultsOnly, meta = (ClampMin =
"10", ClampMax =
"100", EditCondition =
"bOverrideUserSettings", EditConditionHides),
35 Category =
"Settings")
36 FUintPoint GridDims{10, 10};
38 UPROPERTY(EditDefaultsOnly, meta = (ClampMin =
"10", ClampMax =
"100", EditCondition =
"bOverrideUserSettings", EditConditionHides),
39 Category =
"Settings")
42 UPROPERTY(EditDefaultsOnly, meta = (ClampMin =
"4", ClampMax =
"10", EditCondition =
"bOverrideUserSettings", EditConditionHides),
43 Category =
"Settings")
44 uint32 SnakeDefaultSize{5};
46 UPROPERTY(EditDefaultsOnly, meta = (ClampMin =
"0.01", ClampMax =
"10", EditCondition =
"bOverrideUserSettings", EditConditionHides),
47 Category =
"Settings")
48 float GameSpeed{1.0f};
50 UPROPERTY(EditDefaultsOnly, Category =
"Design")
51 TSubclassOf<ASG_Grid> GridVisualClass;
53 UPROPERTY(EditDefaultsOnly, Category =
"Design")
54 TSubclassOf<ASG_Snake> SnakeVisualClass;
56 UPROPERTY(EditDefaultsOnly, Category =
"Design")
57 TSubclassOf<ASG_Food> FoodVisualClass;
59 UPROPERTY(EditDefaultsOnly, Category =
"Design")
60 TObjectPtr<UDataTable> ColorsTable;
62 UPROPERTY(EditDefaultsOnly, Category =
"SnakeInput")
63 TObjectPtr<UInputAction> MoveForwardInputAction;
65 UPROPERTY(EditDefaultsOnly, Category =
"SnakeInput")
66 TObjectPtr<UInputAction> MoveRightInputAction;
68 UPROPERTY(EditDefaultsOnly, Category =
"SnakeInput")
69 TObjectPtr<UInputAction> ResetGameInputAction;
71 UPROPERTY(EditDefaultsOnly, Category =
"SnakeInput")
72 TObjectPtr<UInputMappingContext> InputMapping;
76 TObjectPtr<ASG_Grid> GridVisual;
79 TObjectPtr<ASG_Snake> SnakeVisual;
82 TObjectPtr<ASG_Food> FoodVisual;
85 TObjectPtr<AExponentialHeightFog> Fog;
88 TObjectPtr<ASG_HUD> HUD;
90 UFUNCTION(Exec, Category =
"Console command")
94 TSharedPtr<SnakeGame::Game> Game;
95 uint32 ColorTableIndex{0};
109 void OnMoveForward(
const FInputActionValue& Value);
110 void OnMoveRight(
const FInputActionValue& Value);
111 void OnGameReset(
const FInputActionValue& Value);
113 void SubscribeOnGameEvents();
Definition: SG_GameMode.h:22
Definition: SG_Snake.h:21