#ifndef ENTITYREGISTRATOR_H
#define ENTITYREGISTRATOR_H

class IEntityBase;

struct EntityRegistrationInfo
{
	IEntityBase* (*m_createEntityFunc)();
	const char* m_entityName;
};

template <typename T>
IEntityBase* CreateEntityTemplated()
{
	return new T();
}

class EntityRegistrator
{
public:
	EntityRegistrator(EntityRegistrationInfo& regInfo);

public:
	EntityRegistrationInfo m_entityRegInfo;

	EntityRegistrator* m_nextEntityRegistrator;
	static EntityRegistrator* ms_entityRegistrators;
};

#endif // !ENTITYREGISTRATOR_H
