]> git.localhorst.tv Git - blank.git/blob - src/ai/RandomWalk.cpp
move RandomWalk into new "ai" module
[blank.git] / src / ai / RandomWalk.cpp
1 #include "RandomWalk.hpp"
2
3 #include "../world/Entity.hpp"
4
5
6 namespace blank {
7
8 RandomWalk::RandomWalk(Entity &e) noexcept
9 : entity(e)
10 , time_left(0) {
11
12 }
13
14
15 void RandomWalk::Update(int dt) noexcept {
16         time_left -= dt;
17         if (time_left > 0) return;
18         time_left += 2500 + (rand() % 5000);
19
20         constexpr float move_vel = 0.0005f;
21
22         glm::vec3 new_vel = entity.Velocity();
23
24         switch (rand() % 9) {
25                 case 0:
26                         new_vel.x = -move_vel;
27                         break;
28                 case 1:
29                         new_vel.x = 0.0f;
30                         break;
31                 case 2:
32                         new_vel.x = move_vel;
33                         break;
34                 case 3:
35                         new_vel.y = -move_vel;
36                         break;
37                 case 4:
38                         new_vel.y = 0.0f;
39                         break;
40                 case 5:
41                         new_vel.y = move_vel;
42                         break;
43                 case 6:
44                         new_vel.z = -move_vel;
45                         break;
46                 case 7:
47                         new_vel.z = 0.0f;
48                         break;
49                 case 8:
50                         new_vel.z = move_vel;
51                         break;
52         }
53
54         entity.Velocity(new_vel);
55 }
56
57 }