-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInfluenceComponent.h
More file actions
46 lines (37 loc) · 1.15 KB
/
Copy pathInfluenceComponent.h
File metadata and controls
46 lines (37 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#pragma once
#include <Engine/Source/ComponentSystem/Components/Component.h>
#include <Engine/Source/AI/HeatmapSystem/InterestCurves.h>
#include <Engine/Source/AI/HeatmapSystem/HeatmapCommonData.h>
namespace AI
{
class HeatmapManager;
struct InfluenceComponentData
{
Team team = Team::COUNT;
std::vector<InfluenceData> influenceTypes;
HeatmapManager* heatmapManager = nullptr;
};
class InfluenceComponent : public KE::Component
{
friend class HeatmapManager;
friend class LevelImporter;
public:
InfluenceComponent(KE::GameObject& aGo);
~InfluenceComponent();
void Awake() override;
void SetData(void* aDataObject = nullptr) override;
void AssignVelocityPtr(const Vector3f* aVelocity);
const InfluenceData* GetTemplate(HeatType aType) const;
inline Team GetTeam() const { return myTeam; }
const int GetID() const;
Vector2i location;
Vector2i futureLocation;
const Vector3f& myPosition;
const Vector3f* myVelocity = nullptr;
private:
std::vector<InfluenceData> myImprints;
Team myTeam = Team::COUNT;
HeatmapManager* myHeatmapManager = nullptr;
bool isDynamic = false;
};
}