Orxonox
0.0.5 Codename: Arcturus
|
The BaseObject is the parent of all classes representing an instance in the game. More...
#include </home/jenkins/workspace/orxonox_doxygen_trunk/src/libraries/core/BaseObject.h>
Classes | |
class | StrongOrWeakPtr |
Public Member Functions | |
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... | |
virtual void | XMLPort (Element &xmlelement, XMLPort::Mode mode) |
XML loading and saving. 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 | 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 Member Functions | |
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... | |
Protected Attributes | |
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... | |
Private Member Functions | |
const std::string & | getSingleTemplate (void) const |
Returns the name of the first Template. More... | |
Template * | getTemplate (unsigned int index) const |
Returns the Template with the given index. More... | |
void | registerEventListener (BaseObject *object) |
Adds an object which listens to the events of this object. More... | |
void | registerEventStates () |
Calls XMLEventPort with an empty XML-element to register the event states if necessary. More... | |
void | setXMLName (const std::string &name) |
Loads the name of the object through XML and calls all XMLNameListener. More... | |
void | unregisterEventListener (BaseObject *object) |
Removes an event listener from this object. More... | |
Private Attributes | |
bool | bInitialized_ |
True if the object was initialized (passed the object registration) More... | |
bool | bRegisteredEventStates_ |
Becomes true after the object registered its event states (with XMLEventPort) More... | |
BaseObject * | creator_ |
std::set< BaseObject * > | eventListeners_ |
List of objects which listen to the events of this object. More... | |
std::set< BaseObject * > | eventListenersXML_ |
List of objects which listen to the events of this object through the "eventlisteners" subsection in XML. More... | |
std::map< BaseObject *, std::string > | eventSources_ |
List of objects which send events to this object, mapped to the state which they affect. More... | |
std::map< std::string, EventState * > | eventStates_ |
Maps the name of the event states to their helper objects. More... | |
const XMLFile * | file_ |
The XMLFile that loaded this object. More... | |
StrongOrWeakPtr< Gametype > | gametype_ |
Element * | lastLoadedXMLElement_ |
Non nullptr if the TinyXML attributes have already been copied to our own lowercase map. More... | |
StrongOrWeakPtr< Level > | level_ |
std::string | loaderIndentation_ |
Indentation of the debug output in the Loader. More... | |
StrongOrWeakPtr< Namespace > | namespace_ |
StrongOrWeakPtr< Scene > | scene_ |
uint32_t | sceneID_ |
std::set< Template * > | templates_ |
std::map< std::string, std::string > | xmlAttributes_ |
Lowercase XML attributes. More... | |
Friends | |
template<class T > | |
class | XMLPortClassParamContainer |
The BaseObject is the parent of all classes representing an instance in the game.
orxonox::BaseObject::BaseObject | ( | Context * | context | ) |
Constructor: Registers the object in the BaseObject-list.
|
virtual |
Destructor.
void orxonox::BaseObject::addEventListener | ( | BaseObject * | listener | ) |
Adds an object which listens to the events of this object.
The events are sent to the other objects mainstate.
void orxonox::BaseObject::addEventSource | ( | BaseObject * | source, |
const std::string & | state | ||
) |
Adds a new event source for a specific state.
source | The object which sends events to this object |
state | The state of this object which will be affected by the events |
|
protected |
Adds a new event-state to the object.
Event-states are states which can be changed by events.
name | The name of the event |
state | The object containing information about the event-state |
void orxonox::BaseObject::addTemplate | ( | const std::string & | name | ) |
This function gets called if the activity of the object changes.
Reimplemented in orxonox::WorldEntity, orxonox::PortalEndPoint, orxonox::CheckPoint, orxonox::Attacher, orxonox::WorldAmbientSound, orxonox::WorldSound, orxonox::FadingBillboard, and orxonox::ParticleEmitter.
|
virtual |
This function gets called if the main state name of the object changes.
This function gets called if the name of the object changes.
Reimplemented in orxonox::PickupRepresentation, orxonox::NotificationQueue, orxonox::OrxonoxOverlay, orxonox::NotificationQueueCEGUI, orxonox::HUDWeaponMode, orxonox::HUDWeapon, orxonox::Template, orxonox::HUDWeaponSystem, orxonox::HUDHealthBar, and orxonox::PlayerInfo.
This function gets called if the visibility of the object changes.
Reimplemented in orxonox::Pawn, orxonox::OrxonoxOverlay, orxonox::LensFlare, orxonox::WorldEntity, orxonox::Trigger, orxonox::OverlayGroup, orxonox::BillboardProjectile, orxonox::Model, orxonox::Light, orxonox::HUDWeaponMode, orxonox::Planet, orxonox::HUDWeapon, orxonox::Attacher, orxonox::ParticleProjectile, orxonox::HUDWeaponSystem, orxonox::Scoreboard, orxonox::GUIOverlay, orxonox::HUDHealthBar, orxonox::Billboard, orxonox::FadingBillboard, orxonox::Backlight, orxonox::GlobalShader, and orxonox::ParticleEmitter.
void orxonox::BaseObject::fireEvent | ( | const std::string & | name = "" | ) |
Fires an event (without a state).
void orxonox::BaseObject::fireEvent | ( | bool | activate, |
const std::string & | name = "" |
||
) |
Fires an event which activates or deactivates a state.
void orxonox::BaseObject::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).
|
inline |
BaseObject * orxonox::BaseObject::getEventListener | ( | unsigned int | index | ) | const |
Returns an event listener with a given index.
BaseObject * orxonox::BaseObject::getEventSource | ( | unsigned int | index, |
const std::string & | state | ||
) | const |
Returns an eventsource with a given index.
|
protected |
Returns the event-state with the given name.
|
inline |
const std::string & orxonox::BaseObject::getFilename | ( | ) | const |
Returns the levelfile that loaded this object.
|
inline |
|
inline |
|
inline |
Returns the indentation of the debug output in the Loader.
|
inline |
Returns the name of the main state.
|
inline |
Returns the name of the object.
|
inline |
|
inline |
Returns the old name of the object.
|
inline |
|
inlinevirtual |
Reimplemented in orxonox::Scene.
|
private |
Returns the name of the first Template.
|
private |
Returns the Template with the given index.
index | The index |
|
inline |
Returns the set of all aplied templates.
Returns the state of the objects activity.
|
inline |
Returns if the object was initialized (passed the object registration).
|
inline |
Returns the state of the objects visibility.
|
static |
Manually loads all event states, even if the class doesn't officially support them.
This is needed by some classes like EventDispatcher or EventTarget.
Processing an event by calling the right main state.
event | The event struct which contains the information about the event |
Reimplemented in orxonox::Attacher, orxonox::EventListener, orxonox::EventDispatcher, orxonox::EventFilter, and orxonox::EventTarget.
|
private |
Adds an object which listens to the events of this object.
|
private |
Calls XMLEventPort with an empty XML-element to register the event states if necessary.
void orxonox::BaseObject::removeEventSource | ( | BaseObject * | source | ) |
Removes an eventsource (but doesn't unregister itself at the source).
|
inline |
Sets the state of the objects activity.
bActive | True = active |
|
inline |
Sets a pointer to the xml file that loaded this object.
file | The pointer to the XMLFile |
|
inline |
|
inline |
|
inline |
Sets the indentation of the debug output in the Loader.
indentation | The indentation |
void orxonox::BaseObject::setMainState | ( | bool | state | ) |
Sets the main state of the object to a given boolean value.
Note: The main state of an object can be set with the setMainStateName function. It's part of the eventsystem and used for event forwarding (when the target object can't specify a specific state, the main state is used by default).
|
inline |
Sets the name of the main state (used for event reactions).
|
inline |
Sets the name of the object.
name | The name |
|
inline |
|
inline |
|
inline |
Sets the state of the objects visibility.
bVisible | True = visible |
|
private |
Loads the name of the object through XML and calls all XMLNameListener.
name | The name of the object |
|
inlineprivate |
Removes an event listener from this object.
|
virtual |
Defines the possible event states of this object and parses eventsources from an XML file.
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 in orxonox::Script, orxonox::QuestEffectBeacon, orxonox::NotificationDispatcher, orxonox::EventMultiTrigger, orxonox::EventTrigger, orxonox::PortalEndPoint, orxonox::Dock, orxonox::Pawn, orxonox::Dialog, orxonox::MineProjectile, orxonox::WorldAmbientSound, orxonox::WorldSound, orxonox::ControllerDirector, and orxonox::ParticleSpawner.
|
virtual |
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 in orxonox::LevelInfo, orxonox::LensFlare, orxonox::PongCenterpoint, orxonox::ModularSpaceShip, orxonox::MultiTrigger, orxonox::PartDestructionEvent, orxonox::NotificationQueue, orxonox::PickupRepresentation, orxonox::Actionpoint, orxonox::DistanceTrigger, orxonox::Pickup, orxonox::WorldEntity, orxonox::Script, orxonox::DistanceMultiTrigger, orxonox::SpaceShip, orxonox::SpaceBoundaries, orxonox::GlobalQuest, orxonox::QuestEffectBeacon, orxonox::HealthPickup, orxonox::OrxonoxOverlay, orxonox::ForceField, orxonox::MetaPickup, orxonox::AsteroidMinable, orxonox::LocalQuest, orxonox::QuestListener, orxonox::PickupSpawner, orxonox::Quest, orxonox::QuestHint, orxonox::NotificationDispatcher, orxonox::ShieldPickup, orxonox::ActionpointController, orxonox::SpeedPickup, orxonox::FlappyOrxShip, orxonox::EventMultiTrigger, orxonox::ShrinkPickup, orxonox::TriggerBase, orxonox::CommandNotification, orxonox::NotificationQueueCEGUI, orxonox::InvisiblePickup, orxonox::PickupCollection, orxonox::HUDBar, orxonox::SimpleNotification, orxonox::Turret, orxonox::DronePickup, orxonox::AddReward, orxonox::QuestDescription, orxonox::Munition, orxonox::Dock, orxonox::PongBall, orxonox::AddQuestHint, orxonox::Scene, orxonox::SpicedAsteroidBelt, orxonox::PortalEndPoint, orxonox::QuestItem, orxonox::WeaponSlot, orxonox::Pawn, orxonox::AddQuest, orxonox::CompleteQuest, orxonox::FailQuest, orxonox::TetrisCenterpoint, orxonox::PongScore, orxonox::TowerDefenseField, orxonox::CollisionShape, orxonox::CompoundCollisionShape, orxonox::DockToShip, orxonox::BoxCollisionShape, orxonox::PlaneCollisionShape, orxonox::MunitionPickup, orxonox::ChangeQuestStatus, orxonox::EnergyDrink, orxonox::MineGun, orxonox::Model, orxonox::Engine, orxonox::Dialog, orxonox::SpaceRaceManager, orxonox::CheckPoint, orxonox::OverlayGroup, orxonox::SpicedAsteroidField, orxonox::SphereCollisionShape, orxonox::HsW01, orxonox::MobileEntity, orxonox::PortalLink, orxonox::Light, orxonox::FlyingController, orxonox::Template, orxonox::Question, orxonox::Planet, orxonox::FlameGun, orxonox::IceGun, orxonox::RocketFire, orxonox::SplitGun, orxonox::ReplenishingMunition, orxonox::ControllableEntity, orxonox::AbstractRadiusHeightCollisionShape, orxonox::MunitionContainer, orxonox::TowerDefenseHUDController, orxonox::WeaponMode, orxonox::HUDWeapon, orxonox::OverlayText, orxonox::BoostPickup, orxonox::DamageBoostPickup, orxonox::MultiStateEngine, orxonox::AutonomousDrone, orxonox::ScriptableControllerDrone, orxonox::Attacher, orxonox::BarColour, orxonox::HUDNavigation, orxonox::TowerDefenseCenterpoint, orxonox::ExplosionPart, orxonox::Namespace, orxonox::Answer, orxonox::AnswerId, orxonox::EventListener, orxonox::HUDRadar, orxonox::FormationController, orxonox::MeshLodInformation, orxonox::Level, orxonox::WorldAmbientSound, orxonox::Weapon, orxonox::Drone, orxonox::SpaceRaceController, orxonox::HoverOrigin, orxonox::EventDispatcher, orxonox::EventFilter, orxonox::EventTarget, orxonox::OrxoKartOrigin, orxonox::HUDWeaponSystem, orxonox::SOBFireball, orxonox::SOBTube, orxonox::WagnisHUD, orxonox::RaceCheckPoint, orxonox::JumpItem, orxonox::JumpEnemy, orxonox::JumpPlatform, orxonox::JumpPlatformTimer, orxonox::OrxyRoadHUDinfo, orxonox::StoryModeHUD, orxonox::SOBFlagstone, orxonox::Billboard, orxonox::ShipPart, orxonox::WorldSound, orxonox::ResourceLocation, orxonox::Asteroids2DCenterPoint, orxonox::SOBCoin, orxonox::SOBGumba, orxonox::SOBItem, orxonox::SOBMushroom, orxonox::MovableEntity, orxonox::FpsPlayer, orxonox::DodgeRaceHUDinfo, orxonox::JumpCenterpoint, orxonox::JumpScore, orxonox::HUDHealthBar, orxonox::SOBCenterpoint, orxonox::Controller, orxonox::FadingBillboard, orxonox::ResourceCollection, orxonox::Asteroids2DHUDinfo, orxonox::HoverShip, orxonox::OrxoKartKart, orxonox::FadeoutText, orxonox::GUIOverlay, orxonox::CountDown, orxonox::LastManStandingInfos, orxonox::LastTeamStandingInfos, orxonox::TeamBaseMatchScore, orxonox::PacmanGhost, orxonox::PacmanPointAfraid, orxonox::PacmanPointSphere, orxonox::ArrowController, orxonox::AnimatedModel, orxonox::Backlight, orxonox::BlinkingBillboard, orxonox::GlobalShader, orxonox::GUISheet, orxonox::WeaponPack, orxonox::WeaponSet, orxonox::NameableStaticEntity, orxonox::SpawnPoint, orxonox::CreateStars, orxonox::PacmanHUDinfo, orxonox::ControllerDirector, orxonox::WaypointPatrolController, orxonox::ParticleEmitter, orxonox::ParticleSpawner, orxonox::EffectContainer, orxonox::TeamSpawnPoint, orxonox::FlappyOrxHUDinfo, orxonox::ArtificialController, orxonox::DefaultWeaponmodeLink, orxonox::InvaderHUDinfo, orxonox::SOBHUDInfo, orxonox::SOBQBlock, orxonox::CameraPosition, orxonox::JumpFigure, orxonox::ShootableObstacle, orxonox::WagnisGameboard, orxonox::WagnisProvince, and orxonox::WagnisGun.
|
friend |
|
protected |
True = the object is active.
|
private |
True if the object was initialized (passed the object registration)
|
private |
Becomes true after the object registered its event states (with XMLEventPort)
|
protected |
True = the object is visible.
|
private |
|
private |
List of objects which listen to the events of this object.
|
private |
List of objects which listen to the events of this object through the "eventlisteners" subsection in XML.
|
private |
List of objects which send events to this object, mapped to the state which they affect.
|
private |
Maps the name of the event states to their helper objects.
|
private |
|
private |
Non nullptr if the TinyXML attributes have already been copied to our own lowercase map.
|
private |
|
private |
Indentation of the debug output in the Loader.
|
protected |
|
protected |
|
protected |
The name of the object.
|
private |
|
protected |
|
protected |
The old name of the object.
|
private |
|
private |
|
private |
|
private |
Lowercase XML attributes.