00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef __ENTITYPROCESSOR_H__
00017 #define __ENTITYPROCESSOR_H__
00018
00019
00020 #include "../dependencies.h"
00021 #include "../core/AssetProcessor.h"
00022 #include "../core/EntityManager.h"
00023
00024
00025
00027 class EntityProcessor : public AssetProcessor
00028 {
00029 public:
00030
00031
00033 EntityProcessor(AssetGroup *parent);
00035 ~EntityProcessor();
00036
00037
00040 Entity* getEntity(const std::string &fileName);
00041
00045 void getEntityTree(Entity *root);
00046
00050 bool reloadAsset(const std::string &fileName);
00052 void reloadAssets();
00053
00057 bool removeAsset(const std::string &fileName) ;
00059 void removeAssets();
00060
00063 static AssetProcessor* createProcessor(AssetGroup *parent);
00064
00065 protected:
00066
00067
00071 bool loadAsset(const std::string &fileName);
00073 void loadAssets();
00074
00075
00076 private:
00077
00078
00079 std::map<std::string, std::pair<c8*, long> > mEntityFiles;
00080 std::map<std::string, Entity*> mEntities;
00081
00082 bool mIsReloading;
00083 };
00084
00085 #endif