aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/system/AISystem.h
blob: 18f1c6160a05f0e24aacd09053bd91000c466a46 (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(const AI & ai);
};

} // namespace crepe