22 : m_projectFile(projectFile),
23 m_projectFolder(projectFile.parent_path()),
24 m_projectName(projectFile.filename().stem().string())
28 std::filesystem::path m_projectFile;
30 std::string m_projectName;
31 std::filesystem::path m_projectFolder;
33 std::filesystem::path sourceFolder()
const {
return m_projectFolder /
"Source"; }
34 std::filesystem::path objectFolder()
const {
return m_projectFolder /
"Objects"; }
35 std::filesystem::path buildFolder()
const {
return m_projectFolder /
"Build"; }
36 std::filesystem::path savedFolder()
const {
return m_projectFolder /
"Saved"; }
38 std::filesystem::path encodedFolder()
const {
return buildFolder() /
"Encoded"; }
39 std::filesystem::path logFolder()
const {
return savedFolder() /
"Logs"; }
44 std::filesystem::path
typeFolder(
const rttr::type& type)
const;
47 std::optional<std::string> extensionOverride = std::nullopt)
const
49 return std::to_string(databaseObject->getDatabaseID()) +
50 (extensionOverride.has_value() ? extensionOverride.value() :
".yaml");
53 bool isValid()
const {
return std::filesystem::exists(m_projectFile); }
62 bool openProject(
const std::filesystem::path& projectFile);
63 void createProject(
const std::filesystem::path& projectFile) {}
65 void saveProject()
const;
67 void encodeAllMedia()
const;
78 void createPreviewContainer();
80 void buildSoundbanks()
const;
82 void saveSystem()
const;
83 void saveObjects()
const;
84 void saveYAML(
const YAML::Emitter& emitter,
const std::filesystem::path& filePath)
const;