#pragma once #include #include #include #include #include #include "assets/asset_base.hpp" #include "assets/scene.hpp" #include "configs/items.hpp" #include "configs/loot.hpp" #include "configs/harvestables.hpp" #include "configs/npcs.hpp" #include "configs/shops.hpp" #include "configs/achievements.hpp" struct AssetPath { std::filesystem::path path{}; AssetGUID GUID{}; }; namespace cursebreaker { struct ParsedProject { std::filesystem::path m_projectRoot; std::vector m_scriptFiles; std::vector m_imageFiles; std::vector m_meshFiles; std::vector m_sceneFiles; std::vector m_prefabFiles; std::vector m_prefabAssets; std::vector m_sceneAssets; std::unordered_map m_prefabsMap; std::unordered_map m_scriptToClassHash; std::unordered_map m_items; std::unordered_map m_lootTables; std::unordered_map m_harvestables; std::unordered_map m_npcs; std::unordered_map m_shops; std::unordered_map m_achievements; }; void ParseProject(const std::filesystem::path& projectRoot); extern ParsedProject g_parsedProject; } // namespace cursebreaker