aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/system/AISystem.h
blob: 27861d9b24a0ff62f1a9e017d95a877ff0397129 (plain)
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
#pragma once

#include "api/AI.h"

#include "System.h"
#include "types.h"

namespace crepe {

class AISystem : public System {
public:
	using System::System;

	void update() override;

private:
	vec2 calculate(AI & ai);
	bool accumulate_force(AI & ai, vec2 & running_total, vec2 force_to_add);

	vec2 seek(const AI & ai);
	vec2 flee(const AI & ai);
	vec2 arrive(const AI & ai);
	vec2 path_follow(AI & ai);
};

} // namespace crepe