Orxonox  0.0.5 Codename: Arcturus
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
orxonox::PickupCollection Class Reference

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>

Inheritance diagram for orxonox::PickupCollection:
orxonox::CollectiblePickup orxonox::BaseObject orxonox::Pickupable orxonox::OrxonoxClass orxonox::OrxonoxInterface orxonox::Rewardable orxonox::Configurable orxonox::Destroyable orxonox::Configurable orxonox::Destroyable orxonox::OrxonoxInterface orxonox::Listable orxonox::Listable orxonox::Configurable orxonox::Destroyable orxonox::Identifiable orxonox::Identifiable orxonox::Listable orxonox::Identifiable

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 PickupablegetPickupable (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...
 
PickupCarriergetCarrier (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...
 
ContextgetContext () 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 voidgetDerivedPointer (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...
 
IdentifiergetIdentifier () 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...
 
BaseObjectgetCreator () const
 
BaseObjectgetEventListener (unsigned int index) const
 Returns an event listener with a given index. More...
 
BaseObjectgetEventSource (unsigned int index, const std::string &state) const
 Returns an eventsource with a given index. More...
 
const XMLFilegetFile () 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...
 
GametypegetGametype () const
 
LevelgetLevel () 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...
 
NamespacegetNamespace () const
 
const std::string & getOldName () const
 Returns the old name of the object. More...
 
ScenegetScene () const
 
virtual uint32_t getSceneID () const
 
const std::set< Template * > & getTemplates () const
 Returns the set of all aplied templates. More...
 
const mboolisActive () const
 Returns the state of the objects activity. More...
 
bool isInitialized () const
 Returns if the object was initialized (passed the object registration). More...
 
const mboolisVisible () 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 ()
 
OrxonoxClassoperator= (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...
 
EventStategetEventState (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...
 

Detailed Description

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:

<pickupables>
...
</pickupables>
Author
Damian 'Mozork' Frick

Constructor & Destructor Documentation

orxonox::PickupCollection::PickupCollection ( Context context)

Default Constructor.

orxonox::PickupCollection::~PickupCollection ( )
virtual

Destructor.

Iterates through all Pickupables this PickupCollection consists of and destroys them if they haven't been already.

Member Function Documentation

bool orxonox::PickupCollection::addPickupable ( CollectiblePickup pickup)

Add the input Pickupable to list of Pickupables combined by this PickupCollection.

Parameters
pickupThe Pickupable to be added.
Returns
Returns true if successful,
void orxonox::PickupCollection::changedCarrier ( void  )
overridevirtual

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.

void orxonox::PickupCollection::changedPickedUp ( void  )
overridevirtual

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.

void orxonox::PickupCollection::changedPickedUpAction ( void  )
private

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.

void orxonox::PickupCollection::changedUsed ( void  )
overridevirtual

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.

void orxonox::PickupCollection::changedUsedAction ( void  )
private

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.

bool orxonox::PickupCollection::createSpawner ( void  )
overrideprotectedvirtual

Facilitates the creation of a PickupSpawner upon dropping of the Pickupable.

Returns
Returns true if a spawner was created, false if not.

Implements orxonox::Pickupable.

const Pickupable * orxonox::PickupCollection::getPickupable ( unsigned int  index) const

Get the Pickupable at the given index.

Parameters
indexThe index the Pickupable is fetched from.
Returns
Returns a pointer to the Pickupable at the index given by index.
const std::list<CollectiblePickup*>& orxonox::PickupCollection::getPickups ( ) const
inline
virtual const std::string& orxonox::PickupCollection::getRepresentationName ( ) const
inlineoverridevirtual

Returns the representation name which refers to the name of the PickupRepresentation that is used to represent this pickup.

Implements orxonox::Pickupable.

bool orxonox::PickupCollection::isTarget ( const PickupCarrier carrier) const
overridevirtual

Get whether a given class, represented by the input Identifier, is a target of this PickupCollection.

Parameters
carrierA pointer to the PickupCarrier we want to know of, whether it is a target of this PickupCollection.
Returns
Returns true if the PickupCarrier identified by the input PickupIdentififer it is a target of this PickupCollection, false if not.

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.

Parameters
changedThe 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.

Parameters
changedThe value the used status has changed to.
void orxonox::PickupCollection::pickupDisabled ( void  )

Informs the PickupCollection, that one of its pickups has been disabled.

This is used internally by the CollectiblePickup class.

void orxonox::PickupCollection::pickupsChanged ( void  )
private

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.

Parameters
pickupThe Pickup to be removed.
Returns
Returns true if the pickup was in the collection.
void orxonox::PickupCollection::setRepresentationName ( const std::string &  name)
inline
void orxonox::PickupCollection::XMLPort ( Element &  xmlelement,
XMLPort::Mode  mode 
)
overridevirtual

Creates an instance of this Class through XML.

Reimplemented from orxonox::BaseObject.

Member Data Documentation

std::list<CollectiblePickup*> orxonox::PickupCollection::pickups_
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.

bool orxonox::PickupCollection::processingPickedUp_
private

Boolean to ensure, that the PickupCollection doesn't update its picked upp status while its internal state is inconsistent.

bool orxonox::PickupCollection::processingUsed_
private

Boolean to ensure, that the PickupCollection doesn't update its used status while its internal state is inconsistent.

std::string orxonox::PickupCollection::representationName_
private

The name of the associated PickupRepresentation.


The documentation for this class was generated from the following files: