JavascriptImporter.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #include <Atomic/IO/Log.h>
  2. #include <Atomic/IO/File.h>
  3. #include <Atomic/Resource/ResourceCache.h>
  4. #include <Atomic/Resource/Image.h>
  5. #include "Asset.h"
  6. #include "AssetDatabase.h"
  7. #include "JavascriptImporter.h"
  8. namespace ToolCore
  9. {
  10. JavascriptImporter::JavascriptImporter(Context* context, Asset *asset) : AssetImporter(context, asset)
  11. {
  12. requiresCacheFile_ = false;
  13. isComponentFile_ = false;
  14. }
  15. JavascriptImporter::~JavascriptImporter()
  16. {
  17. }
  18. void JavascriptImporter::SetDefaults()
  19. {
  20. AssetImporter::SetDefaults();
  21. }
  22. bool JavascriptImporter::Import()
  23. {
  24. isComponentFile_ = false;
  25. const String& path = asset_->GetPath();
  26. SharedPtr<File> file(new File(context_, path, FILE_READ));
  27. unsigned dataSize = file->GetSize();
  28. SharedArrayPtr<char> buffer(new char[dataSize + 1]);
  29. if (file->Read(buffer.Get(), dataSize) != dataSize)
  30. return false;
  31. buffer[dataSize] = '\0';
  32. file->Close();
  33. if (strstr(buffer, "\"atomic component\";"))
  34. isComponentFile_ = true;
  35. return true;
  36. }
  37. bool JavascriptImporter::LoadSettingsInternal()
  38. {
  39. if (!AssetImporter::LoadSettingsInternal())
  40. return false;
  41. JSONValue import = jsonRoot_.GetChild("JavascriptImporter", JSON_OBJECT);
  42. isComponentFile_ = import.GetBool("IsComponentFile");
  43. return true;
  44. }
  45. bool JavascriptImporter::SaveSettingsInternal()
  46. {
  47. if (!AssetImporter::SaveSettingsInternal())
  48. return false;
  49. JSONValue import = jsonRoot_.CreateChild("JavascriptImporter");
  50. import.SetBool("IsComponentFile", isComponentFile_);
  51. return true;
  52. }
  53. }