22 #ifndef CAFU_GAME_GAMEINTERFACE_HPP_INCLUDED
23 #define CAFU_GAME_GAMEINTERFACE_HPP_INCLUDED
25 #include "Templates/Pointer.hpp"
35 namespace cf {
namespace GameSys {
class EntityT; } }
36 namespace cf {
namespace GameSys {
class GameWorldI; } }
37 namespace cf {
namespace SceneGraph {
class GenericNodeT; } }
38 namespace cf {
namespace TypeSys {
class TypeInfoT; } }
39 namespace cf {
namespace TypeSys {
class TypeInfoManT; } }
virtual const cf::TypeSys::TypeInfoManT & GetEntityTIM() const =0
Returns the type information manager with the entity hierarchy.
This is the interface that the client and server use to access and work with game entities...
Definition: GameEntity.hpp:40
This class represents a polymorphic 3-dimensional vector.
Definition: Game.hpp:33
The game world interface, specified as an ABC so that is can be used without linked (module-local) im...
Definition: GameWorld.hpp:49
virtual void Initialize(bool AsClient, bool AsServer, ModelManagerT &ModelMan)=0
Called to initialize the game.
This class manages the type infos.
Definition: TypeSys.hpp:159
virtual ~GameI()
The virtual destructor, so that derived classes can safely be deleted via a GameI (base class) pointe...
Definition: Game.hpp:82
The game interface, specified as an ABC so that is can be used without linked (module-local) implemen...
Definition: Game.hpp:49
virtual void Release()=0
Called to shutdown the game.
This class is used for managing model instances.
Definition: ModelManager.hpp:46
This class keeps type information (about an entity class that occurs in the game).
Definition: TypeSys.hpp:94
virtual IntrusivePtrT< GameEntityI > CreateGameEntity(const cf::TypeSys::TypeInfoT *TI, IntrusivePtrT< cf::GameSys::EntityT > Entity, const std::map< std::string, std::string > &Properties, const cf::SceneGraph::GenericNodeT *RootNode, unsigned long ID, cf::GameSys::GameWorldI *GameWorld)=0
Creates a new entity of the given type.