Orxonox
0.0.5 Codename: Arcturus
|
The PickupCollection combines different Pickupables (more precisely CollectiblePickups) to a coherent, single pickup and makes them seem (from the outside looking in) just as if they were just one Pickupable. More...
#include </home/jenkins/workspace/orxonox_doxygen_trunk/src/modules/pickup/PickupCollection.h>
Public Member Functions | |
PickupCollection (Context *context) | |
Default Constructor. More... | |
virtual | ~PickupCollection () |
Destructor. More... | |
bool | addPickupable (CollectiblePickup *pickup) |
Add the input Pickupable to list of Pickupables combined by this PickupCollection. More... | |
virtual void | changedCarrier (void) override |
Is called when the pickup has changed its PickupCarrier. More... | |
virtual void | changedPickedUp (void) override |
Is called when the pickup has transited from picked up to dropped or the other way around. More... | |
virtual void | changedUsed (void) override |
Is called when the pickup has transited from used to unused or the other way around. More... | |
const Pickupable * | getPickupable (unsigned int index) const |
Get the Pickupable at the given index. More... | |
const std::list< CollectiblePickup * > & | getPickups () const |
virtual const std::string & | getRepresentationName () const override |
Returns the representation name which refers to the name of the PickupRepresentation that is used to represent this pickup. More... | |
virtual bool | isTarget (const PickupCarrier *carrier) const override |
Get whether a given class, represented by the input Identifier, is a target of this PickupCollection. More... | |
void | pickupChangedPickedUp (bool changed) |
Informs the PickupCollection, that one of its pickups has changed its picked up status to the input value. More... | |
void | pickupChangedUsed (bool changed) |
Informs the PickupCollection, that one of its pickups has changed its used status to the input value. More... | |
void | pickupDisabled (void) |
Informs the PickupCollection, that one of its pickups has been disabled. More... | |
bool | removePickupable (CollectiblePickup *pickup) |
Removes the input Pickupable from the list of Pickupables in this PickupCollection. More... | |
void | setRepresentationName (const std::string &name) |
virtual void | XMLPort (Element &xmlelement, XMLPort::Mode mode) override |
Creates an instance of this Class through XML. More... | |
Public Member Functions inherited from orxonox::CollectiblePickup | |
CollectiblePickup () | |
Constructor. More... | |
virtual | ~CollectiblePickup () |
Destructor. More... | |
bool | isInCollection (void) const |
Check whether the given CollectiblePickup is par of a PickupCollection. More... | |
Public Member Functions inherited from orxonox::Pickupable | |
virtual | ~Pickupable () |
Default destructor. More... | |
bool | addTarget (PickupCarrier *target) |
Add a PickupCarrier as target of this Pickupable. More... | |
bool | addTarget (Identifier *identifier) |
Add a class, representetd by the input Identifier, as target of this Pickupable. More... | |
void | destroy (void) |
Is called internally within the Pickupable module to destroy pickups. More... | |
bool | drop (bool createSpawner=true) |
Can be called to drop a Pickupable. More... | |
PickupCarrier * | getCarrier (void) |
Get the carrier of the Pickupable. More... | |
bool | isEnabled (void) const |
Returns whether the Pickupable is enabled. More... | |
bool | isPickedUp (void) const |
Returns whether the Pickupable is currently picked up. More... | |
bool | isTarget (const Identifier *identifier) const |
Get whether a given class, represented by the input Identifier, is a target of this Pickupable. More... | |
bool | isUnusable (void) const |
Returns whether the Pickupable can be unused. More... | |
bool | isUsable (void) const |
Returns whether the Pickupable can be used. More... | |
bool | isUsed (void) const |
Get whether the Pickupable is currently in use or not. More... | |
bool | pickup (PickupCarrier *carrier) |
Can be called to pick up a Pickupable. More... | |
virtual bool | reward (PlayerInfo *player) override |
Method to transcribe a Pickupable as a Rewardable to the player. More... | |
bool | setCarrier (PickupCarrier *carrier, bool tell=true) |
Sets the carrier of the Pickupable. More... | |
bool | setPickedUp (bool pickedUp) |
Helper method to set the Pickupable to either picked up or not picked up. More... | |
bool | setUsed (bool used) |
Sets the Pickupable to used or unused, depending on the input. More... | |
Public Member Functions inherited from orxonox::OrxonoxInterface | |
OrxonoxInterface () | |
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... | |
Public Member Functions inherited from orxonox::Rewardable | |
Rewardable () | |
virtual | ~Rewardable () |
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 |
Protected Member Functions | |
virtual bool | createSpawner (void) override |
Facilitates the creation of a PickupSpawner upon dropping of the Pickupable. More... | |
Protected Member Functions inherited from orxonox::Pickupable | |
Pickupable () | |
Default constructor. More... | |
virtual void | carrierDestroyed (void) |
Is called by the PickupCarrier when it is being destroyed. More... | |
virtual void | destroyPickup (void) |
Destroys a Pickupable. More... | |
bool | isBeingDestroyed (void) |
Check whether the Pickupable is in the process of being destroyed. More... | |
virtual void | preDestroy (void) override |
A method that is called by Destroyable::destroy() before the object is actually destroyed. More... | |
void | setDisabled (void) |
Sets the Pickuapble to disabled. 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... | |
Private Member Functions | |
void | changedPickedUpAction (void) |
Helper method. More... | |
void | changedUsedAction (void) |
Helper method. More... | |
void | pickupsChanged (void) |
Helper method. More... | |
Private Attributes | |
std::list< CollectiblePickup * > | pickups_ |
The list of the pointers of all the Pickupables this PickupCollection consists of. They are weak pointers to facilitate testing, whether the pointers are still valid. More... | |
bool | processingPickedUp_ |
Boolean to ensure, that the PickupCollection doesn't update its picked upp status while its internal state is inconsistent. More... | |
bool | processingUsed_ |
Boolean to ensure, that the PickupCollection doesn't update its used status while its internal state is inconsistent. More... | |
std::string | representationName_ |
The name of the associated PickupRepresentation. More... | |
Additional Inherited Members | |
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 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... | |
The PickupCollection combines different Pickupables (more precisely CollectiblePickups) to a coherent, single pickup and makes them seem (from the outside looking in) just as if they were just one Pickupable.
A PickupCollection can be created in XML as follows:
orxonox::PickupCollection::PickupCollection | ( | Context * | context | ) |
Default Constructor.
|
virtual |
Destructor.
Iterates through all Pickupables this PickupCollection consists of and destroys them if they haven't been already.
bool orxonox::PickupCollection::addPickupable | ( | CollectiblePickup * | pickup | ) |
Add the input Pickupable to list of Pickupables combined by this PickupCollection.
pickup | The Pickupable to be added. |
Is called when the pickup has changed its PickupCarrier.
Any Class overwriting this method must call its SUPER function by adding SUPER(Classname, changedCarrier); to their changedCarrier method.
Reimplemented from orxonox::Pickupable.
Is called when the pickup has transited from picked up to dropped or the other way around.
Any Class overwriting this method must call its SUPER function by adding SUPER(Classname, changedPickedUp); to their changedPickedUp method.
Reimplemented from orxonox::CollectiblePickup.
Helper method.
Checks whether due to changes in the picked up status of the pickups of this PickupCollection the picked up status of this PickupCollection has to change as well.
Is called when the pickup has transited from used to unused or the other way around.
Any Class overwriting this method must call its SUPER function by adding SUPER(Classname, changedUsed); to their changdeUsed method.
Reimplemented from orxonox::CollectiblePickup.
Helper method.
Checks whether due to changes in the used status of the pickups of this PickupCollection the used status of this PickupCollection has to change as well.
|
overrideprotectedvirtual |
Facilitates the creation of a PickupSpawner upon dropping of the Pickupable.
Implements orxonox::Pickupable.
const Pickupable * orxonox::PickupCollection::getPickupable | ( | unsigned int | index | ) | const |
Get the Pickupable at the given index.
index | The index the Pickupable is fetched from. |
|
inline |
|
inlineoverridevirtual |
Returns the representation name which refers to the name of the PickupRepresentation that is used to represent this pickup.
Implements orxonox::Pickupable.
|
overridevirtual |
Get whether a given class, represented by the input Identifier, is a target of this PickupCollection.
carrier | A pointer to the PickupCarrier we want to know of, whether it is a target of this PickupCollection. |
Reimplemented from orxonox::Pickupable.
void orxonox::PickupCollection::pickupChangedPickedUp | ( | bool | changed | ) |
Informs the PickupCollection, that one of its pickups has changed its picked up status to the input value.
This is used internally by the CollectiblePickup class.
changed | The value the picked up status has changed to. |
void orxonox::PickupCollection::pickupChangedUsed | ( | bool | changed | ) |
Informs the PickupCollection, that one of its pickups has changed its used status to the input value.
This is used internally by the CollectiblePickup class.
changed | The value the used status has changed to. |
Informs the PickupCollection, that one of its pickups has been disabled.
This is used internally by the CollectiblePickup class.
Helper method.
Helpfer function if the number of pickups in this collection has changed.
bool orxonox::PickupCollection::removePickupable | ( | CollectiblePickup * | pickup | ) |
Removes the input Pickupable from the list of Pickupables in this PickupCollection.
Removes the Pickup from the Collection.
pickup | The Pickup to be removed. |
|
inline |
|
overridevirtual |
Creates an instance of this Class through XML.
Reimplemented from orxonox::BaseObject.
|
private |
The list of the pointers of all the Pickupables this PickupCollection consists of. They are weak pointers to facilitate testing, whether the pointers are still valid.
|
private |
Boolean to ensure, that the PickupCollection doesn't update its picked upp status while its internal state is inconsistent.
|
private |
Boolean to ensure, that the PickupCollection doesn't update its used status while its internal state is inconsistent.
|
private |
The name of the associated PickupRepresentation.