#pragma once #include "asset_base.hpp" #include #include #include struct Prefab : public AssetBase { public: static constexpr std::array Extensions = { ".prefab" }; public: std::unordered_map Data; public: template void Parse(ParsedProject& project, std::string& content) { using ObjectTypesT = typename ParsedProject::ObjectTypes; auto names = ObjectTypesT::get_names(); ParseSceneYaml(content, false, names, [this](std::string_view componentName, int64_t ID, ryml::Tree&& tree) { Data.emplace(ID, std::move(tree)); }); } };