00001
#ifndef ERIS_FACTORY_H
00002
#define ERIS_FACTORY_H
00003
00004
namespace Atlas {
00005
namespace Objects {
namespace Entity {
class GameEntity;}}
00006
namespace Message {
class Element;}
00007 }
00008
00009
namespace Eris {
00010
00011
00012
class Entity;
00013
class World;
00014
00016 class Factory
00017 {
00018
public:
00020
00023
00024
virtual bool accept(
const Atlas::Objects::Entity::GameEntity &ge,
World *world) = 0;
00025
00027
virtual Entity*
instantiate(
const Atlas::Objects::Entity::GameEntity &ge,
World *world) = 0;
00028
00029 };
00030
00031
class StdFactory :
public Factory
00032 {
00033
public:
00034
virtual bool accept(
const Atlas::Objects::Entity::GameEntity &ge,
World *world);
00035
virtual Entity* instantiate(
const Atlas::Objects::Entity::GameEntity &ge,
World *world);
00036 };
00037
00038
00039 }
00040
00041
#endif