AssetImporter.h 881 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. bool RequiresCacheFile() const { return requiresCacheFile_; }
  25. protected:
  26. WeakPtr<Asset> asset_;
  27. JSONValue jsonRoot_;
  28. bool requiresCacheFile_;
  29. virtual bool LoadSettingsInternal();
  30. virtual bool SaveSettingsInternal();
  31. };
  32. }