Orxonox
0.0.5 Codename: Arcturus
|
#include </home/jenkins/workspace/orxonox_doxygen_trunk/src/orxonox/controllers/FormationController.h>
Public Types | |
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... | |
Public Member Functions | |
FormationController (Context *context) | |
virtual | ~FormationController () |
virtual void | changedControllableEntity () override |
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) |
virtual void | XMLPort (Element &xmlelement, XMLPort::Mode mode) override |
XML loading and saving. More... | |
Public Member Functions inherited from orxonox::Controller | |
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) |
Public Member Functions inherited from orxonox::BaseObject | |
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... | |
Public Member Functions inherited from orxonox::OrxonoxClass | |
OrxonoxClass () | |
OrxonoxClass & | operator= (const OrxonoxClass &)=default |
Public Member Functions inherited from orxonox::Configurable | |
Configurable () | |
void | setConfigValues () |
Function to collect the SetConfigValue-macro calls. More... | |
Public Member Functions inherited from orxonox::Listable | |
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... | |
Public Member Functions inherited from orxonox::Identifiable | |
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... | |
Public Member Functions inherited from orxonox::Destroyable | |
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... | |
Static Public Member Functions | |
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 Public Member Functions inherited from orxonox::BaseObject | |
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... | |
Protected Types | |
enum | SpecificMasterAction { NONE, HOLD, SPIN, TURN180, FOLLOW } |
enum | State { SLAVE, MASTER, FREE } |
Protected Member Functions | |
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... | |
Protected Member Functions inherited from orxonox::BaseObject | |
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... | |
Protected Member Functions inherited from orxonox::Destroyable | |
virtual void | preDestroy () |
This virtual function is called if destroy() is called and no StrongPtr points to this object. More... | |
Static Protected Member Functions | |
static bool | sameTeam (ControllableEntity *entity1, ControllableEntity *entity2, Gametype *gametype) |
Protected Attributes | |
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_ |
Protected Attributes inherited from orxonox::Controller | |
ControllableEntity * | controllableEntity_ |
PlayerInfo * | player_ |
int | team_ |
Protected Attributes inherited from orxonox::BaseObject | |
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... | |
|
protected |
|
protected |
orxonox::FormationController::FormationController | ( | Context * | context | ) |
|
virtual |
|
protected |
|
overridevirtual |
Reimplemented from orxonox::Controller.
Reimplemented in orxonox::NewHumanController, and orxonox::ArtificialController.
|
protected |
Commands the slaves of a master into a formation.
Sufficiently fast not to be called within tick. Initiated by a master.
|
protected |
|
protected |
|
protected |
Master follows target with adjusted speed.
Called within tick.
|
protected |
Master begins to follow a pawn.
Is a "specific master action".
pawn | pawn to follow. |
always | follows pawn forever if true (false if omitted). |
secondsToFollow | seconds to follow the pawn if always is false. Will follow pawn 100 seconds if omitted (set in header). |
|
static |
A human player gets followed by its nearest master.
Initiated by console command, so far intended for demonstration puproses (possible future pickup).
|
protected |
Master begins to follow a randomly chosen human player of the same team.
Is a "specific master action".
|
protected |
Checks wether caller has been forced free, decrements time to stay forced free.
|
protected |
|
protected |
Master sets its slaves free for FREEDOM_COUNT seconds.
|
protected |
|
static |
Activates / deactivates formationflight behaviour.
form | activate formflight if form is true |
|
static |
Sets maximal formation size.
size | maximal formation size. |
|
protected |
Frees all slaves from a master.
Initiated by a master.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
overridevirtual |
Reimplemented from orxonox::Controller.
Reimplemented in orxonox::NewHumanController.
|
protected |
|
static |
Get all masters to do a "specific master action".
action | which action to perform (integer, so it can be called with a console command (tmp solution)) |
if called, half of the formation will attack the originator
|
protected |
|
protected |
|
static |
Sets shooting behaviour of pawns.
passive | if true, bots won't shoot. |
|
inlineprotectedvirtual |
Reimplemented in orxonox::DockingController.
|
protected |
|
staticprotected |
|
protected |
|
protected |
|
protected |
|
inline |
void orxonox::FormationController::setFormationMode | ( | FormationMode | val | ) |
Sets the new mode.
If master, set it for all slaves.
|
inline |
void orxonox::FormationController::setNewMasterWithinFormation | ( | FormationController * | newMaster | ) |
|
protected |
Sets a new master within the formation.
Called by a master.
|
inline |
|
protected |
|
protected |
|
protected |
Used to continue a "specific master action" for a certain time and resuming normal behaviour after.
|
protected |
Execute the spin.
Called within tick.
|
protected |
Master initializes a spin around its looking direction axis.
Leads to a "specific master action".
|
protected |
Call to take the lead of formation (if free, become slave of nearest formation, then, if Slave, become Master)
|
protected |
|
protected |
Execute the 180 degree turn.
Called within tick.
|
protected |
Master initializes a 180 degree turn.
Leads to a "specific master action".
|
protected |
Unregisters a slave from its master.
Initiated by a slave.
|
overridevirtual |
XML loading and saving.
xmlelement | The XML-element |
mode | The mode defines the operation that is being executed: loading or saving the object (from or to XML respectively) |
Reimplemented from orxonox::Controller.
Reimplemented in orxonox::SpaceRaceController, orxonox::ControllerDirector, orxonox::WaypointPatrolController, and orxonox::ArtificialController.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |