MaterialImporter.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include <Atomic/IO/File.h>
  2. #include <Atomic/Resource/ResourceCache.h>
  3. #include <Atomic/Graphics/Material.h>
  4. #include "Asset.h"
  5. #include "AssetDatabase.h"
  6. #include "MaterialImporter.h"
  7. namespace ToolCore
  8. {
  9. MaterialImporter::MaterialImporter(Context* context, Asset* asset) : AssetImporter(context, asset)
  10. {
  11. requiresCacheFile_ = false;
  12. }
  13. MaterialImporter::~MaterialImporter()
  14. {
  15. }
  16. void MaterialImporter::SetDefaults()
  17. {
  18. AssetImporter::SetDefaults();
  19. }
  20. bool MaterialImporter::Import()
  21. {
  22. return true;
  23. }
  24. void MaterialImporter::SaveMaterial()
  25. {
  26. ResourceCache* cache = GetSubsystem<ResourceCache>();
  27. Material* material = cache->GetResource<Material>(asset_->GetPath());
  28. if (material)
  29. {
  30. SharedPtr<File> file(new File(context_, asset_->GetPath(), FILE_WRITE));
  31. material->Save(*file);
  32. }
  33. }
  34. bool MaterialImporter::LoadSettingsInternal(JSONValue& jsonRoot)
  35. {
  36. if (!AssetImporter::LoadSettingsInternal(jsonRoot))
  37. return false;
  38. JSONValue import = jsonRoot.Get("MaterialImporter");
  39. return true;
  40. }
  41. bool MaterialImporter::SaveSettingsInternal(JSONValue& jsonRoot)
  42. {
  43. if (!AssetImporter::SaveSettingsInternal(jsonRoot))
  44. return false;
  45. JSONValue import(JSONValue::emptyObject);
  46. jsonRoot.Set("MaterialImporter", import);
  47. return true;
  48. }
  49. }