Unreal Snake Game 1.0.0
SG_Grid.h
1// Snake Game, Copyright LifeEXE. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "GameFramework/Actor.h"
7#include "Core/Types.h"
8#include "World/SG_WorldTypes.h"
9#include "SG_Grid.generated.h"
10
11namespace SnakeGame
12{
13class Grid;
14}
15
16class UStaticMeshComponent;
17
18UCLASS()
19class SNAKEGAME_API ASG_Grid : public AActor
20{
21 GENERATED_BODY()
22
23public:
24 ASG_Grid();
25 virtual void Tick(float DeltaTime) override;
26
32 void SetModel(const TSharedPtr<SnakeGame::Grid>& Grid, uint32 CellSize);
33
34 void UpdateColors(const FSnakeColors& Colors);
35
36protected:
37 UPROPERTY(VisibleAnywhere)
38 TObjectPtr<USceneComponent> Origin;
39
40 UPROPERTY(VisibleAnywhere)
41 TObjectPtr<UStaticMeshComponent> GridMesh;
42
43 virtual void BeginPlay() override;
44
45private:
46 UPROPERTY()
47 UMaterialInstanceDynamic* GridMaterial;
48
49 SnakeGame::Dim GridDim;
50 uint32 CellSize;
51 uint32 WorldWidth;
52 uint32 WorldHeight;
53
54 void DrawGrid();
55};
Definition: SG_Grid.h:20
Definition: SnakeGame.Build.cs:6
Definition: SG_WorldTypes.h:11
Definition: Types.h:12