Files
cursebreaker-parser/include/project_parser.h
cdemeyer-teachx 998313be3c initial commit
2025-11-12 06:29:59 +09:00

38 lines
850 B
C++

#pragma once
#include <string>
#include <vector>
#include <filesystem>
#include <fstream>
#include <unordered_map>
#include "assets/asset_base.hpp"
#include "assets/scene.hpp"
struct AssetPath
{
std::filesystem::path path{};
AssetGUID GUID{};
};
struct ParsedProject
{
std::filesystem::path m_projectRoot;
std::vector<AssetPath> m_scriptFiles;
std::vector<AssetPath> m_imageFiles;
std::vector<AssetPath> m_meshFiles;
std::vector<AssetPath> m_sceneFiles;
std::vector<AssetPath> m_prefabFiles;
std::vector<PrefabAsset> m_prefabAssets;
std::vector<SceneAsset> m_sceneAssets;
std::unordered_map<AssetGUID, PrefabAsset*> m_prefabsMap;
std::unordered_map<AssetGUID, uint32_t> m_scriptToClassHash;
};
void ParseProject(const std::filesystem::path& projectRoot);
extern ParsedProject g_parsedProject;