Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/ai/src/ai/swarm_module.h @ 10244

Last change on this file since 10244 was 10244, checked in by tfahrni, 17 years ago

tired

File size: 1.6 KB
Line 
1
2#ifndef _SWARM_MODULE_H
3#define _SWARM_MODULE_H
4#include "world_entity.h"
5#include "ai_module.h"
6
7class SwarmModule {
8 public:
9        inline SwarmModule(){taskComplete=false;}
10        virtual ~SwarmModule(){}
11        virtual void process(float dt){}
12       
13        void addAI(WorldEntity*);
14        void removeAI(WorldEntity*);
15        void getAttributesFrom(SwarmModule* oldModule);
16        virtual void initialize(){}
17        inline bool taskDone(){return taskComplete;}
18       
19        inline void setEnemyList(std::vector<WorldEntity*>* enemys){this->enemys=enemys;}       
20       
21        inline void orderRelPos(Vector taskRelPos){this->taskRelPos=taskRelPos;}
22        inline void orderAbsPos(Vector taskAbsPos){this->taskAbsPos=taskAbsPos;}
23        inline void orderView(Vector taskView){this->taskView=taskView;}
24        inline void orderSpeed(float taskSpeed){this->taskSpeed=taskSpeed;}
25        inline void orderRelObject(WorldEntity* taskRelObject){this->taskRelObject=taskRelObject;}
26        inline void orderMaxTime(float taskMaxTime){this->taskMaxTime=taskMaxTime;}
27
28        Vector getPosition();
29        inline float getSpeed(){return speed;}
30        inline Vector getView(){return view;}
31        inline int getSwarmSize(){return members.size();}
32        inline std::vector<WorldEntity*>* getEnemyList(){return enemys;}
33        inline std::map<WorldEntity*,AIModule*> getMembers(){return members;}
34       
35 protected:
36        float getRadius(WorldEntity* object);
37        void changeAIModule(std::map<WorldEntity*,AIModule*>::iterator it,AIModule* newAI);
38        Vector taskRelPos;
39        Vector taskAbsPos;
40        Vector taskView;
41        float taskSpeed;
42        WorldEntity* taskRelObject;
43        bool taskComplete;
44        float taskMaxTime;
45       
46        Vector view;
47        float speed;
48       
49        std::map<WorldEntity*,AIModule*> members;       
50        std::vector<WorldEntity*>* enemys;
51};
52
53
54#endif /* _SWARM_MODULE_H */
Note: See TracBrowser for help on using the repository browser.