ResourceOps.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import EditorEvents = require("../editor/EditorEvents");
  2. class ResourceOps extends Atomic.ScriptObject {
  3. }
  4. var resourceOps = new ResourceOps();
  5. export function CreateNewFolder(resourcePath: string, reportError: boolean = true): boolean {
  6. var title = "New Folder Error";
  7. var fs = Atomic.getFileSystem();
  8. if (fs.dirExists(resourcePath) || fs.fileExists(resourcePath)) {
  9. if (reportError)
  10. resourceOps.sendEvent(EditorEvents.ModalError, { title: title, message: "Already exists: " + resourcePath });
  11. return false;
  12. }
  13. if (!fs.createDir(resourcePath)) {
  14. if (reportError)
  15. resourceOps.sendEvent(EditorEvents.ModalError, { title: title, message: "Could not create " + resourcePath });
  16. return false;
  17. }
  18. var db = ToolCore.getAssetDatabase();
  19. db.scan();
  20. return true;
  21. }
  22. export function CreateNewComponent(resourcePath: string, componentName: string, reportError: boolean = true): boolean {
  23. var title = "New Component Error";
  24. var fs = Atomic.fileSystem;
  25. if (fs.dirExists(resourcePath) || fs.fileExists(resourcePath)) {
  26. if (reportError)
  27. resourceOps.sendEvent(EditorEvents.ModalError, { title: title, message: "Already exists: " + resourcePath });
  28. return false;
  29. }
  30. var templateFilename = "AtomicEditor/templates/template_component.js";
  31. var file = Atomic.cache.getFile(templateFilename);
  32. if (!file) {
  33. if (reportError)
  34. resourceOps.sendEvent(EditorEvents.ModalError, { title: title, message: "Failed to open template: " + templateFilename });
  35. return false;
  36. }
  37. var out = new Atomic.File(resourcePath, Atomic.FILE_WRITE);
  38. var success = out.copy(file);
  39. out.close();
  40. if (!success) {
  41. if (reportError)
  42. resourceOps.sendEvent(EditorEvents.ModalError, { title: title, message: "Failed template copy: " + templateFilename + " -> " + resourcePath });
  43. return false;
  44. }
  45. ToolCore.assetDatabase.scan();
  46. return true;
  47. }