AssetImporter.h 923 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include <Atomic/Core/Object.h>
  3. #include <Atomic/Resource/JSONFile.h>
  4. using namespace Atomic;
  5. namespace ToolCore
  6. {
  7. class Asset;
  8. /// deals with .asset files
  9. class AssetImporter : public Object
  10. {
  11. OBJECT(AssetImporter);
  12. public:
  13. /// Construct.
  14. AssetImporter(Context* context, Asset* asset);
  15. virtual ~AssetImporter();
  16. // load .asset
  17. bool LoadSettings(JSONValue& root);
  18. // save .asset
  19. bool SaveSettings(JSONValue& root);
  20. virtual void SetDefaults();
  21. /// Imports to cached data
  22. virtual bool Import(const String& guid) = 0;
  23. virtual bool Preload() { return true; }
  24. Asset* GetAsset() { return asset_; }
  25. bool RequiresCacheFile() const { return requiresCacheFile_; }
  26. protected:
  27. WeakPtr<Asset> asset_;
  28. JSONValue jsonRoot_;
  29. bool requiresCacheFile_;
  30. virtual bool LoadSettingsInternal();
  31. virtual bool SaveSettingsInternal();
  32. };
  33. }