#ifndef _ENTITYFACTORY_H
#define _ENTITYFACTORY_H

#include "EntityFactoryBase.h"
#include "AsteroidsEnums.h"

namespace Engine {
	struct EntityBase;
	struct EntityPhysicState;
	struct EntityControllerState;
}

namespace asteroids {

	class EntityFactory: public Engine::EntityFactoryBase {
		public:
			EntityFactory () {};

			virtual Engine::EntityPhysicState* CreateEntityPhysicState (int type);
			virtual Engine::EntityControllerState* CreateEntityControllerState (int type);

			virtual Engine::EntityBase* CreateEntity (int type);

		protected:
			virtual int OnInit (int argc, char *argv[]);
	};
}

#endif // _ENTITYFACTORY_H
