00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef __ASSETGROUP_H__
00017 #define __ASSETGROUP_H__
00018
00019
00020 #include "../dependencies.h"
00021 #include "HasEvents.h"
00022 #include "ReferenceCounted.h"
00023
00024 #include "AssetProcessor.h"
00025
00026
00027 class AssetProcessor;
00028
00029
00030
00032 class AssetGroup : public ReferenceCounted, public HasEvents
00033 {
00034 public:
00035
00036
00040 AssetGroup(const std::string &name, const std::string &dirName);
00042 ~AssetGroup();
00043
00045 void init();
00047 void clear();
00048
00049
00051 u32 getID() const;
00053 const std::string& getName() const;
00055 const std::string& getBaseDir() const;
00056
00060 AssetProcessor* getAssetProcessor(const std::string &baseName);
00061
00064 bool reloadAsset(const std::string &name);
00066 void reloadAssets();
00067
00070 bool removeAsset(const std::string &name);
00072 void removeAssets();
00073
00074 private:
00075
00076
00077 void loadAssets();
00078
00079
00080 static u32 mIDCount;
00081
00082
00083 u32 mID;
00084 std::string mName;
00085 std::string mBaseDir;
00086
00087 std::vector<AssetProcessor*> mAssetProcessors;
00088 };
00089
00090 #endif