38 lines
850 B
C++
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; |