BsScriptCodeImporter.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include "BsScriptCodeImporter.h"
  2. #include "BsScriptCode.h"
  3. #include "BsDataStream.h"
  4. #include "BsFileSystem.h"
  5. #include "BsScriptCodeImportOptions.h"
  6. namespace BansheeEngine
  7. {
  8. ScriptCodeImporter::ScriptCodeImporter()
  9. :SpecificImporter()
  10. {
  11. }
  12. ScriptCodeImporter::~ScriptCodeImporter()
  13. {
  14. }
  15. bool ScriptCodeImporter::isExtensionSupported(const WString& ext) const
  16. {
  17. WString lowerCaseExt = ext;
  18. StringUtil::toLowerCase(lowerCaseExt);
  19. return lowerCaseExt == L"cs";
  20. }
  21. bool ScriptCodeImporter::isMagicNumberSupported(const UINT8* magicNumPtr, UINT32 numBytes) const
  22. {
  23. return true; // Plain-text so we don't even check for magic number
  24. }
  25. ResourcePtr ScriptCodeImporter::import(const Path& filePath, ConstImportOptionsPtr importOptions)
  26. {
  27. DataStreamPtr stream = FileSystem::openFile(filePath);
  28. WString textData = stream->getAsWString();
  29. bool editorScript = false;
  30. if (importOptions != nullptr)
  31. {
  32. SPtr<const ScriptCodeImportOptions> scriptIO = std::static_pointer_cast<const ScriptCodeImportOptions>(importOptions);
  33. editorScript = scriptIO->isEditorScript();
  34. }
  35. ScriptCodePtr scriptCode = ScriptCode::_createPtr(textData, editorScript);
  36. WString fileName = filePath.getWFilename(false);
  37. scriptCode->setName(fileName);
  38. return scriptCode;
  39. }
  40. ImportOptionsPtr ScriptCodeImporter::createImportOptions() const
  41. {
  42. return bs_shared_ptr_new<ScriptCodeImportOptions>();
  43. }
  44. }