Unreal Snake Game 1.0.0
SG_Snake.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 "World/SG_WorldTypes.h"
8#include "Core/Types.h"
9#include "SG_Snake.generated.h"
10
11namespace SnakeGame
12{
13class Snake;
14}
15
16class ASG_SnakeLink;
17class USG_ObjectPool;
18
19UCLASS()
20class SNAKEGAME_API ASG_Snake : public AActor
21{
22 GENERATED_BODY()
23
24public:
25 ASG_Snake();
26
33 void SetModel(const TSharedPtr<SnakeGame::Snake>& Snake, uint32 CellSize, const SnakeGame::Dim& Dims);
34 void UpdateColors(const FSnakeColors& Colors);
35
36 void Explode();
37
38protected:
39 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite)
40 TSubclassOf<AActor> SnakeLinkClass;
41
42public:
43 virtual void Tick(float DeltaTime) override;
44
45private:
46 TWeakPtr<SnakeGame::Snake> Snake;
47 uint32 CellSize;
48 SnakeGame::Dim Dims;
49 FLinearColor SnakeLinkColor;
50
51 UPROPERTY()
52 TArray<TObjectPtr<ASG_SnakeLink>> SnakeLinks;
53
54 UPROPERTY()
55 TObjectPtr<USG_ObjectPool> SnakeObjectPool{nullptr};
56
57 void InitObjectPool();
58};
Definition: SG_Snake.h:21
Definition: SnakeGame.Build.cs:6
Definition: SG_ObjectPool.h:11
Definition: SG_WorldTypes.h:11
Definition: Types.h:12