00001 #ifndef ERIS_FACTORY_H
00002 #define ERIS_FACTORY_H
00003
00004 #include <Atlas/Objects/Entity/GameEntity.h>
00005 #include <Eris/Types.h>
00006
00007 namespace Eris {
00008
00009
00010 class Entity;
00011 class World;
00012
00014 class Factory
00015 {
00016 public:
00018
00021
00022 virtual bool accept(const Atlas::Objects::Entity::GameEntity &ge, World *world) = 0;
00023
00025 virtual EntityPtr instantiate(const Atlas::Objects::Entity::GameEntity &ge, World *world) = 0;
00026
00027 };
00028
00029 class StdFactory : public Factory
00030 {
00031 public:
00032 virtual bool accept(const Atlas::Objects::Entity::GameEntity &ge, World *world);
00033 virtual EntityPtr instantiate(const Atlas::Objects::Entity::GameEntity &ge, World *world);
00034 };
00035
00036
00037 }
00038
00039 #endif