OpenAstra
 
Loading...
Searching...
No Matches
capability_move.h
1#ifndef CAPABILITY_MOVE_H
2#define CAPABILITY_MOVE_H
3
4#include <stdint.h>
5
6#include "../engine/capability.h"
7
8#include "../utils/starcoord.hpp"
9#include "../utils/json.hpp"
10
20class Capability_move
21 : public Capability
22{
23public:
24 static constexpr char capabilityName[] = "move";
25 static Capability* createFromTemplate( std::shared_ptr<GameObject> future_parent, const nlohmann::json& template_data );
26 static Capability* createFromDump( ObjectId id );
27
28public:
29 Capability_move( ObjectId id );
30 virtual ~Capability_move();
31
32 void tick(double delta_time_s, double total_time_s );
33
34private:
35 void _stopMoving();
36 void _whileMoving( double delta_time_s );
37 void _whileNotMoving();
38
39 StarCoord _calculateIntermediary( const StarCoord& a, const StarCoord& b, double distance );
40
41};
42
43#endif // CAPABILITY_MOVE_H
Definition gameid.hpp:9
Definition starcoord.hpp:16