Добавил возможность написания своих типов интитий:
void registerEntityClass( const char* className , EntityConstructor constructor );
Entity* createEntity( const char* className , Entity* parent = 0 );
template< class Type >
Type* createEntityT( const char* className , Entity* parent = 0 ){
return static_cast<Type*>( createEntity(className,parent) );
}
Типа:
class MyEntity : public Entity
{
public:
ENTITY_DECL(MyEntity);
MyEntity() : Entity(){}
~MyEntity(){}
};
Entity* MyEntityConstructor(){
return new MyEntity();
}
Engine::getInstance().registerEntityClass("MyEntity",MyEntityConstructor);
И после можно спокойно её создавать:
MyEntity* ment = Engine::getInstance().createEntityT<MyEntity>("MyEntity");