projects_files.nim 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import
  2. os,
  3. nodesnim,
  4. project_template,
  5. main
  6. proc addProject(name: string, icon: GlTextureObj) =
  7. var new_project = project_template.project.duplicate()
  8. new_project.name = name
  9. new_project.getNode("Title").LabelRef.setText(name)
  10. new_project.getNode("Icon").TextureRectRef.setTexture(icon)
  11. projects_box.addChild(new_project)
  12. proc addNewProject*(name: string) =
  13. if not dirExists(nodesnim_folder / name):
  14. # files and folders
  15. createDir(nodesnim_folder / name)
  16. createDir(nodesnim_folder / name / "assets")
  17. createDir(nodesnim_folder / name / ".nodesnim")
  18. copyFile(node_image, nodesnim_folder / name / "icon.jpg")
  19. let readme = open(nodesnim_folder / name / "README.md", fmWrite)
  20. readme.write("# " & name)
  21. readme.close()
  22. let gitignore = open(nodesnim_folder / name / ".gitignore", fmWrite)
  23. gitignore.write("nimcache/\nnimblecache/\nhtmldocs/\n\n*.exe\n*.log")
  24. gitignore.close()
  25. addProject(name, default_icon)
  26. proc loadProjects* =
  27. for kind, path in walkDir(nodesnim_folder):
  28. if dirExists(path) and dirExists(path / ".nodesnim"):
  29. addProject(path.lastPathPart(), load(path / "icon.jpg", GL_RGBA))
  30. proc hasProject*(name: string): bool =
  31. dirExists(nodesnim_folder / name)