00001 #ifndef ARENAELEMENTLOADER_H 00002 #define ARENAELEMENTLOADER_H 00003 00004 #include <QString> 00005 #include <QMap> 00006 00007 class ArenaElement; 00008 class ArenaElementType; 00009 00010 class ArenaElementTypeRegistry 00011 { 00012 public: 00015 ArenaElementTypeRegistry(const QString& dir); 00016 00017 void load(const QString& dir); 00018 QList<ArenaElementType*> elementTypes(); 00019 bool hasElement(const QString& typeName); 00020 ArenaElementType* elementType(const QString& typeName); 00021 ArenaElement* instantiateElement(const QString &typeName); 00022 00023 private: 00024 QMap<QString, ArenaElementType*> m_elementTypes; 00025 }; 00026 00027 #endif // ARENAELEMENTLOADER_H