Orxonox
0.0.5 Codename: Arcturus
|
Controller for turrets. More...
#include </home/jenkins/workspace/orxonox_doxygen_trunk/src/modules/objects/controllers/TurretController.h>
Public Member Functions | |
TurretController (Context *context) | |
Sets default values for all variables. More... | |
virtual | ~TurretController () |
Destructor. More... | |
virtual void | tick (float dt) |
Does all the controlling of the turret. More... | |
![]() | |
ArtificialController (Context *context) | |
virtual | ~ArtificialController () |
void | abandonTarget (Pawn *target) |
void | addWaypoint (WorldEntity *waypoint) |
virtual void | changedControllableEntity () override |
Gets called when ControllableEntity is being changed. More... | |
virtual void | doFire () |
DoFire is called when a bot should shoot and decides which weapon is used and whether the bot shoots at all. More... | |
float | getAccuracy () const |
float | getBotLevel () const |
WorldEntity * | getWaypoint (unsigned int index) const |
void | manageWaypoints () |
Adds point of interest depending on context. More... | |
void | setAccuracy (float accuracy) |
void | setBotLevel (float level=1.0f) |
void | updatePointsOfInterest (std::string name, float distance) |
Adds first waypoint of type name to the waypoint stack, which is within the searchDistance. More... | |
virtual void | XMLPort (Element &xmlelement, XMLPort::Mode mode) override |
XML loading and saving. More... | |
![]() | |
FormationController (Context *context) | |
virtual | ~FormationController () |
FormationController * | getController (void) |
bool | getFormationFlight () const |
FormationMode | getFormationMode () const |
int | getFormationSize () const |
FormationController * | getMaster (void) |
bool | getPassive () const |
FormationController * | getSlave (void) |
virtual void | hit (Pawn *originator, btManifoldPoint &contactpoint, float damage) override |
void | setFormationFlight (bool formation) |
void | setFormationMode (FormationMode val) |
Sets the new mode. More... | |
void | setFormationSize (int size) |
void | setNewMasterWithinFormation (FormationController *newMaster) |
void | setPassive (bool passive) |
![]() | |
Controller (Context *context) | |
virtual | ~Controller () |
ControllableEntity * | getControllableEntity () const |
bool | getGodMode () |
PlayerInfo * | getPlayer () const |
int | getTeam () const |
void | setControllableEntity (ControllableEntity *entity) |
void | setGodMode (bool mode) |
void | setPlayer (PlayerInfo *player) |
void | setTeam (int team) |
![]() | |
BaseObject (Context *context) | |
Constructor: Registers the object in the BaseObject-list. More... | |
virtual | ~BaseObject () |
Destructor. More... | |
void | addEventListener (BaseObject *listener) |
Adds an object which listens to the events of this object. More... | |
void | addEventSource (BaseObject *source, const std::string &state) |
Adds a new event source for a specific state. More... | |
void | addTemplate (const std::string &name) |
Adds a Template to the object. More... | |
void | addTemplate (Template *temp) |
Adds a Template to the object. More... | |
virtual void | changedActivity () |
This function gets called if the activity of the object changes. More... | |
virtual void | changedMainStateName () |
This function gets called if the main state name of the object changes. More... | |
virtual void | changedName () |
This function gets called if the name of the object changes. More... | |
virtual void | changedVisibility () |
This function gets called if the visibility of the object changes. More... | |
void | fireEvent (const std::string &name="") |
Fires an event (without a state). More... | |
void | fireEvent (bool activate, const std::string &name="") |
Fires an event which activates or deactivates a state. More... | |
void | fireEvent (bool activate, BaseObject *originator, const std::string &name="") |
Fires an event which activates or deactivates a state with agiven originator (the object which triggered the event). More... | |
void | fireEvent (Event &event) |
Fires an event, using the Event struct. More... | |
BaseObject * | getCreator () const |
BaseObject * | getEventListener (unsigned int index) const |
Returns an event listener with a given index. More... | |
BaseObject * | getEventSource (unsigned int index, const std::string &state) const |
Returns an eventsource with a given index. More... | |
const XMLFile * | getFile () const |
Returns a pointer to the XMLFile that loaded this object. More... | |
const std::string & | getFilename () const |
Returns the levelfile that loaded this object. More... | |
Gametype * | getGametype () const |
Level * | getLevel () const |
const std::string & | getLoaderIndentation () const |
Returns the indentation of the debug output in the Loader. More... | |
const std::string & | getMainStateName () const |
Returns the name of the main state. More... | |
const std::string & | getName () const |
Returns the name of the object. More... | |
Namespace * | getNamespace () const |
const std::string & | getOldName () const |
Returns the old name of the object. More... | |
Scene * | getScene () const |
virtual uint32_t | getSceneID () const |
const std::set< Template * > & | getTemplates () const |
Returns the set of all aplied templates. More... | |
const mbool & | isActive () const |
Returns the state of the objects activity. More... | |
bool | isInitialized () const |
Returns if the object was initialized (passed the object registration). More... | |
const mbool & | isVisible () const |
Returns the state of the objects visibility. More... | |
virtual void | processEvent (Event &event) |
Processing an event by calling the right main state. More... | |
void | removeEventSource (BaseObject *source) |
Removes an eventsource (but doesn't unregister itself at the source). More... | |
void | setActive (bool bActive) |
Sets the state of the objects activity. More... | |
void | setCreator (BaseObject *creator) |
void | setFile (const XMLFile *file) |
Sets a pointer to the xml file that loaded this object. More... | |
void | setGametype (const StrongOrWeakPtr< Gametype > &gametype) |
void | setLevel (const StrongOrWeakPtr< Level > &level) |
void | setLoaderIndentation (const std::string &indentation) |
Sets the indentation of the debug output in the Loader. More... | |
void | setMainState (bool state) |
Sets the main state of the object to a given boolean value. More... | |
void | setMainStateName (const std::string &name) |
Sets the name of the main state (used for event reactions). More... | |
void | setName (const std::string &name) |
Sets the name of the object. More... | |
void | setNamespace (const StrongOrWeakPtr< Namespace > &ns) |
void | setScene (const StrongOrWeakPtr< Scene > &scene, uint32_t sceneID) |
void | setVisible (bool bVisible) |
Sets the state of the objects visibility. More... | |
virtual void | XMLEventPort (Element &xmlelement, XMLPort::Mode mode) |
Defines the possible event states of this object and parses eventsources from an XML file. More... | |
![]() | |
OrxonoxClass () | |
OrxonoxClass & | operator= (const OrxonoxClass &)=default |
![]() | |
Configurable () | |
void | setConfigValues () |
Function to collect the SetConfigValue-macro calls. More... | |
![]() | |
Listable () | |
Constructor: Allocates space in the element list. More... | |
Listable (Context *context) | |
Constructor: Allocates space in the element list and assigns the context. More... | |
virtual | ~Listable () |
Destructor: Removes the object from the object-lists. More... | |
Context * | getContext () const |
void | setContext (Context *context) |
Changes the context. More... | |
void | unregisterObject () |
Removes this object from the object-lists. More... | |
![]() | |
Identifiable () | |
Constructor: Sets the default values. More... | |
virtual | ~Identifiable () |
ORX_FORCEINLINE void * | getDerivedPointer (unsigned int classID) |
Returns a valid pointer of any derived type that is registered in the class hierarchy. More... | |
template<class T > | |
ORX_FORCEINLINE T * | getDerivedPointer (unsigned int classID) |
Version of getDerivedPointer with template. More... | |
template<class T > | |
ORX_FORCEINLINE const T * | getDerivedPointer (unsigned int classID) const |
Const version of getDerivedPointer with template. More... | |
Identifier * | getIdentifier () const |
Returns the Identifier of the object. More... | |
bool | isA (const Identifier *identifier) |
Returns true if the object's class is of the given type or a derivative. More... | |
template<class B > | |
bool | isA (const SubclassIdentifier< B > *identifier) |
Returns true if the object's class is of the given type or a derivative. More... | |
bool | isA (const Identifiable *object) |
Returns true if the object's class is of the given type or a derivative. More... | |
bool | isChildOf (const Identifier *identifier) |
Returns true if the object's class is a child of the given type. More... | |
template<class B > | |
bool | isChildOf (const SubclassIdentifier< B > *identifier) |
Returns true if the object's class is a child of the given type. More... | |
bool | isChildOf (const Identifiable *object) |
Returns true if the object's class is a child of the given type. More... | |
bool | isDirectChildOf (const Identifier *identifier) |
Returns true if the object's class is a direct child of the given type. More... | |
template<class B > | |
bool | isDirectChildOf (const SubclassIdentifier< B > *identifier) |
Returns true if the object's class is a direct child of the given type. More... | |
bool | isDirectChildOf (const Identifiable *object) |
Returns true if the object's class is a direct child of the given type. More... | |
bool | isDirectParentOf (const Identifier *identifier) |
Returns true if the object's class is a direct parent of the given type. More... | |
template<class B > | |
bool | isDirectParentOf (const SubclassIdentifier< B > *identifier) |
Returns true if the object's class is a direct parent of the given type. More... | |
bool | isDirectParentOf (const Identifiable *object) |
Returns true if the object's class is a direct child of the given type. More... | |
bool | isExactlyA (const Identifier *identifier) |
Returns true if the object's class is exactly of the given type. More... | |
template<class B > | |
bool | isExactlyA (const SubclassIdentifier< B > *identifier) |
Returns true if the object's class is exactly of the given type. More... | |
bool | isExactlyA (const Identifiable *object) |
Returns true if the object's class is exactly of the given type. More... | |
bool | isParentOf (const Identifier *identifier) |
Returns true if the object's class is a parent of the given type. More... | |
template<class B > | |
bool | isParentOf (const SubclassIdentifier< B > *identifier) |
Returns true if the object's class is a parent of the given type. More... | |
bool | isParentOf (const Identifiable *object) |
Returns true if the object's class is a parent of the given type. More... | |
![]() | |
Destroyable () | |
Constructor: Sets the default values. More... | |
virtual | ~Destroyable () |
Destructor: Notifies all DestructionListener (for example weak pointers) that this object is being deleted. More... | |
void | destroy () |
Deletes the object if no strong pointers point to this object. More... | |
void | destroyLater () |
Works like destroy() but doesn't destroy the object until the current tick has ended. More... | |
unsigned int | getReferenceCount () const |
Returns the number of strong pointers that point to this object. More... | |
![]() | |
OrxonoxInterface () | |
Private Member Functions | |
bool | isLookingAtTargetNew (float angle) const |
Tests, if the turret is looking at the target, with a specified tolerance. More... | |
void | searchTarget () |
Searches a valid target for the turret to aim at. More... | |
float | targetScore (Pawn *pawn, float distance) const |
Scores a pawn as a target, based on distance and health. More... | |
Private Attributes | |
bool | once_ |
Flag for executing code in the tick function only once. More... | |
Additional Inherited Members | |
![]() | |
enum | FormationMode { NORMAL, DEFEND, ATTACK } |
Mode of the formation, behaviour of slaves Normal-normal behaviour Defend-just defend the master Attack-leave formation, attack every target. More... | |
![]() | |
static void | setAllBotLevel (float level) |
![]() | |
static void | followme () |
A human player gets followed by its nearest master. More... | |
static void | formationflight (const bool form) |
Activates / deactivates formationflight behaviour. More... | |
static void | formationsize (const int size) |
Sets maximal formation size. More... | |
static void | masteraction (const int action) |
Get all masters to do a "specific master action". More... | |
static void | passivebehaviour (const bool passive) |
Sets shooting behaviour of pawns. More... | |
![]() | |
static void | loadAllEventStates (Element &xmlelement, XMLPort::Mode mode, BaseObject *object, Identifier *identifier) |
Manually loads all event states, even if the class doesn't officially support them. More... | |
![]() | |
enum | Mode { DEFAULT, ROCKET, DEFENCE, MOVING } |
![]() | |
enum | SpecificMasterAction { NONE, HOLD, SPIN, TURN180, FOLLOW } |
enum | State { SLAVE, MASTER, FREE } |
![]() | |
void | aimAtTarget () |
void | boostControl () |
Manages boost. More... | |
int | getFiremode (std::string name) |
bool | isCloseAtTarget (float distance) const |
bool | isLookingAtTarget (float angle) const |
void | setPreviousMode () |
void | setupWeapons () |
Information gathering: Which weapons are ready to use? More... | |
![]() | |
void | absoluteMoveToPosition (const Vector3 &target) |
void | commandSlaves () |
Commands the slaves of a master into a formation. More... | |
void | copyOrientation (const Quaternion &orient) |
void | copyTargetOrientation () |
void | follow () |
Master follows target with adjusted speed. More... | |
void | followInit (Pawn *pawn, const bool always=false, const int secondsToFollow=100) |
Master begins to follow a pawn. More... | |
void | followRandomHumanInit () |
Master begins to follow a randomly chosen human player of the same team. More... | |
bool | forcedFree () |
Checks wether caller has been forced free, decrements time to stay forced free. More... | |
void | forceFreedom () |
void | forceFreeSlaves () |
Master sets its slaves free for FREEDOM_COUNT seconds. More... | |
void | forgetTarget () |
void | freeSlaves () |
Frees all slaves from a master. More... | |
void | loseMasterState () |
void | masterAttacked (Pawn *originator) |
if called, half of the formation will attack the originator More... | |
void | moveToPosition (const Vector3 &target) |
void | moveToTargetPosition () |
virtual void | positionReached () |
void | removeFromFormation () |
void | searchNewMaster () |
void | searchNewTarget () |
void | searchRandomTargetPosition () |
void | setNewMasterWithinFormation () |
Sets a new master within the formation. More... | |
void | setTarget (Pawn *target) |
void | setTargetOrientation (const Quaternion &orient) |
void | setTargetOrientation (Pawn *target) |
void | setTargetPosition (const Vector3 &target) |
void | specificMasterActionHold () |
Used to continue a "specific master action" for a certain time and resuming normal behaviour after. More... | |
void | spin () |
Execute the spin. More... | |
void | spinInit () |
Master initializes a spin around its looking direction axis. More... | |
void | takeLeadOfFormation () |
Call to take the lead of formation (if free, become slave of nearest formation, then, if Slave, become Master) More... | |
void | targetDied () |
void | turn180 () |
Execute the 180 degree turn. More... | |
void | turn180Init () |
Master initializes a 180 degree turn. More... | |
void | unregisterSlave () |
Unregisters a slave from its master. More... | |
![]() | |
void | addEventState (const std::string &name, EventState *container) |
Adds a new event-state to the object. More... | |
EventState * | getEventState (const std::string &name) const |
Returns the event-state with the given name. More... | |
![]() | |
virtual void | preDestroy () |
This virtual function is called if destroy() is called and no StrongPtr points to this object. More... | |
![]() | |
Tickable () | |
Constructor: Registers the object in the Tickable-list. More... | |
![]() | |
static bool | sameTeam (ControllableEntity *entity1, ControllableEntity *entity2, Gametype *gametype) |
![]() | |
float | botlevel_ |
bool | bSetupWorked |
size_t | currentWaypoint_ |
WorldEntity * | defaultWaypoint_ |
Mode | mode_ |
float | squaredaccuracy_ |
float | timeout_ |
std::vector< WeakPtr< WorldEntity > > | waypoints_ |
std::map< std::string, int > | weaponModes_ |
![]() | |
bool | bHasTargetOrientation_ |
bool | bHasTargetPosition_ |
bool | bShooting_ |
bool | formationFlight_ |
FormationMode | formationMode_ |
int | freedomCount_ |
unsigned int | maxFormationSize_ |
FormationController * | myMaster_ |
bool | passive_ |
std::vector< FormationController * > | slaves_ |
SpecificMasterAction | specificMasterAction_ |
int | specificMasterActionHoldCount_ |
float | speedCounter_ |
State | state_ |
WeakPtr< Pawn > | target_ |
Quaternion | targetOrientation_ |
Vector3 | targetPosition_ |
![]() | |
ControllableEntity * | controllableEntity_ |
PlayerInfo * | player_ |
int | team_ |
![]() | |
mbool | bActive_ |
True = the object is active. More... | |
mbool | bVisible_ |
True = the object is visible. More... | |
FunctorPtr | mainStateFunctor_ |
std::string | mainStateName_ |
std::string | name_ |
The name of the object. More... | |
std::set< std::string > | networkTemplateNames_ |
std::string | oldName_ |
The old name of the object. More... | |
Controller for turrets.
Chooses a target, and makes the turret aim/shoot at it.
The controllableEntity gets casted to Turret, so this controller won't work for anything else.
orxonox::TurretController::TurretController | ( | Context * | context | ) |
Sets default values for all variables.
context | The context |
|
virtual |
Destructor.
Nothing to see here.
|
private |
Tests, if the turret is looking at the target, with a specified tolerance.
This uses the world position as opposed to the local position in the old version.
angle | The tolerance, in radians |
|
private |
Searches a valid target for the turret to aim at.
Loops through all pawns and tests, if it is in range. Scores every pawn and chooses the best one (the one with the lowest score). If the turret has a parent, try to aim at the same target the parent has, if there is one.
|
private |
Scores a pawn as a target, based on distance and health.
The more health and distance a pawn has, the higher the score. This means lower equals better.
pawn | The pawn to score |
distance | The distance. Can be squared or normed, doesn't matter as long as all are treated the same. |
|
virtual |
Does all the controlling of the turret.
If the turret has a parent, copies the team from there, if it's not already set. Other actions are: Search a target. If a target has been found, aim and shoot at it.
Reimplemented from orxonox::Tickable.
|
private |
Flag for executing code in the tick function only once.