Orxonox  0.0.5 Codename: Arcturus
SpawnPoint.h
Go to the documentation of this file.
1 /*
2  * ORXONOX - the hottest 3D action shooter ever to exist
3  * > www.orxonox.net <
4  *
5  *
6  * License notice:
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  *
22  * Author:
23  * Fabian 'x3n' Landau
24  * Co-authors:
25  * ...
26  *
27  */
28 
29 #ifndef _SpawnPoint_H__
30 #define _SpawnPoint_H__
31 
32 #include "OrxonoxPrereqs.h"
33 
34 #include <string>
37 
38 namespace orxonox
39 {
41  {
42  public:
43  SpawnPoint(Context* context);
44  virtual ~SpawnPoint() {}
45 
46  virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
47 
48  inline void setSpawnClass(Identifier* identifier)
49  { this->spawnclass_ = identifier; this->spawnclassname_ = identifier->getName(); }
50  inline Identifier* getSpawnClass() const
51  { return this->spawnclass_; }
52 
53  void setTemplate(Template* temp);
54  inline Template* getTemplate() const
55  { return this->template_; }
56 
57  virtual Pawn* spawn();
58  void spawn(ControllableEntity* entity);
59 
60  private:
61  void setSpawnClassName(const std::string& name);
62  inline const std::string& getSpawnClassName() const
63  { return this->spawnclassname_; }
64 
65  void setTemplateName(const std::string& name);
66  inline const std::string& getTemplateName() const
67  { return this->templatename_; }
68 
73  };
74 }
75 
76 #endif /* _SpawnPoint_H__ */
Identifier * getSpawnClass() const
Definition: SpawnPoint.h:50
Everything in Orxonox that has a health attribute is a Pawn.
Definition: Pawn.h:56
Definition of SubclassIdentifier.
std::string templatename_
Definition: SpawnPoint.h:72
The StaticEntity is the simplest derivative of the orxonox::WorldEntity class.
Definition: StaticEntity.h:50
Definition: SpawnPoint.h:40
const std::string & getSpawnClassName() const
Definition: SpawnPoint.h:62
Definition: Template.h:50
::std::string string
Definition: gtest-port.h:756
virtual ~SpawnPoint()
Definition: SpawnPoint.h:44
xmlelement
Definition: Super.h:519
Template * getTemplate() const
Definition: SpawnPoint.h:54
const std::string & getTemplateName() const
Definition: SpawnPoint.h:66
Die Wagnis Klasse hat die folgenden Aufgaben:
Definition: ApplicationPaths.cc:66
Mode
Definition: CorePrereqs.h:102
The Identifier is used to identify the class of an object and to store information about the class...
Definition: Identifier.h:109
Shared library macros, enums, constants and forward declarations for the orxonox library ...
Definition: Context.h:45
#define _OrxonoxExport
Definition: OrxonoxPrereqs.h:60
std::string spawnclassname_
Definition: SpawnPoint.h:70
const std::string & getName() const
Returns the name of the class the Identifier belongs to.
Definition: Identifier.h:127
SubclassIdentifier< Pawn > spawnclass_
Definition: SpawnPoint.h:69
void setSpawnClass(Identifier *identifier)
Definition: SpawnPoint.h:48
The SubclassIdentifier acts almost like an Identifier, but has some prerequisites.
Definition: SubclassIdentifier.h:90
Template * template_
Definition: SpawnPoint.h:71
The ControllableEntity is derived from the orxonox::MobileEntity.
Definition: ControllableEntity.h:48