Unreal Snake Game 1.0.0
SG_Food.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_Food.generated.h"
10
11namespace SnakeGame
12{
13class Food;
14}
15
16class UStaticMeshComponent;
17class UNiagaraSystem;
18
19UCLASS()
20class SNAKEGAME_API ASG_Food : public AActor
21{
22 GENERATED_BODY()
23
24public:
25 ASG_Food();
26 virtual void Tick(float DeltaTime) override;
27
34 void SetModel(const TSharedPtr<SnakeGame::Food>& InFood, uint32 InCellSize, const SnakeGame::Dim& InDims);
35
36 void UpdateColor(const FLinearColor& Color);
37
38 void Explode();
39
40 void Hide();
41
42protected:
43 UPROPERTY(VisibleAnywhere)
44 TObjectPtr<USceneComponent> Origin;
45
46 UPROPERTY(VisibleAnywhere)
47 TObjectPtr<UStaticMeshComponent> FoodMesh;
48
49 UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "VFX")
50 TObjectPtr<UNiagaraSystem> ExplosionEffect;
51
52private:
53 TWeakPtr<SnakeGame::Food> Food;
54 uint32 CellSize;
55 SnakeGame::Dim Dims;
56 FLinearColor FoodColor;
57
58 FVector GetFoodWorldLocation() const;
59};
Definition: SG_Food.h:21
Definition: SnakeGame.Build.cs:6
Definition: Types.h:12