Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/cleanup/src/world_entities/script_trigger.h @ 10585

Last change on this file since 10585 was 10585, checked in by snellen, 17 years ago

Removed classes Account and Object (both needed only to test the scriptingframework)and removed example.cc, cleaned commented code in script_trigger.cc and gameworld.cc. … more to come

File size: 2.0 KB
Line 
1/*!
2 * @file scrip_trigger.h
3 *  triggeres a script
4 */
5
6#ifndef _SCRIPT_TRIGGER_H
7#define _SCRIPT_TRIGGER_H
8
9#include <string>
10
11#include "world_entity.h"
12#include "loading/load_param.h"
13#include "vector.h"
14#include "script_manager.h"
15#include "script.h"
16#include "script_class.h"
17
18class ScriptTrigger : public WorldEntity
19{
20  ObjectListDeclaration(ScriptTrigger);
21  public:
22    ScriptTrigger(const TiXmlElement* root = NULL);
23    ~ScriptTrigger();
24
25    ///LOADING
26    virtual void loadParams(const TiXmlElement* root);
27
28
29    /// DO WORK
30    virtual void tick(float timestep);
31    virtual void executeAction(float timestep);
32
33    /// SET MEMBER
34    void setTarget(const std::string& targetName);
35    void setTarget(WorldEntity* target) { if(target!=NULL) this->target=target; }
36    void setTriggerParent(const std::string& name);
37    void setTriggerRemains(const bool lasts) { this->triggerRemains = lasts; }
38    void setActiveOnCreation(const bool avtive) { this->activeOnCreation = avtive; }
39    void setInvert(const bool inv) { this->invert = invert; }
40    void setDelay(float delay) { this->delay = delay; };
41    void setRadius(const float radius) { if(radius>0) this->radius = radius; }
42    void setScript(const std::string& file);
43    void setFunction(const std::string& function){ this->functionName = function;}
44    void setDebugDraw(const bool draw) { this->doDebugDraw = draw; }
45    void setAddToScript(const bool add) { this->addToScript = add; }
46
47    ///DRAWING
48    void draw()const{if(doDebugDraw)this->debugDraw();};
49
50  private:
51
52    WorldEntity* target;
53    bool         triggerRemains;
54    bool         activeOnCreation;
55    bool         invert;
56    float        radius;
57    float        delay;
58    Script*      script;
59    std::string  functionName;
60    bool         doDebugDraw;
61    bool         addToScript;
62    //for internal use
63    bool         scriptCalled;
64    bool         scriptIsOk;
65    bool         scriptFinished;
66    int          returnCount;        //TODO: set return count correctly
67
68};
69
70
71#endif
Note: See TracBrowser for help on using the repository browser.