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