diff options
Diffstat (limited to 'src/crepe/system/AISystem.h')
-rw-r--r-- | src/crepe/system/AISystem.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/crepe/system/AISystem.h b/src/crepe/system/AISystem.h new file mode 100644 index 0000000..18f1c61 --- /dev/null +++ b/src/crepe/system/AISystem.h @@ -0,0 +1,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 |