AssetImporter.h 912 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. friend class Asset;
  12. OBJECT(AssetImporter);
  13. public:
  14. /// Construct.
  15. AssetImporter(Context* context, Asset* asset);
  16. virtual ~AssetImporter();
  17. // load .asset
  18. bool LoadSettings(JSONValue& root);
  19. // save .asset
  20. bool SaveSettings(JSONValue& root);
  21. virtual void SetDefaults();
  22. virtual bool Preload() { return true; }
  23. Asset* GetAsset() { return asset_; }
  24. bool RequiresCacheFile() const { return requiresCacheFile_; }
  25. protected:
  26. virtual bool Import() { return true; }
  27. WeakPtr<Asset> asset_;
  28. JSONValue jsonRoot_;
  29. bool requiresCacheFile_;
  30. virtual bool LoadSettingsInternal();
  31. virtual bool SaveSettingsInternal();
  32. };
  33. }