#pragma once #include #include #include #include namespace Nz { struct AssetHeaderLite { std::string name; std::filesystem::path path; friend auto operator<=>(const AssetHeaderLite& A, const AssetHeaderLite& B) { return A.name <=> B.name; } }; NAZARA_CORE_API bool Serialize(struct SerializationContext& context, const AssetHeaderLite& header, TypeTag); NAZARA_CORE_API bool Unserialize(struct SerializationContext& context, AssetHeaderLite* header, TypeTag); class NAZARA_CORE_API AssetCatalogAppComponent : public ApplicationComponent { public: inline AssetCatalogAppComponent(ApplicationBase& app); AssetCatalogAppComponent(const AssetCatalogAppComponent&) = delete; AssetCatalogAppComponent(AssetCatalogAppComponent&&) = delete; ~AssetCatalogAppComponent() = default; void AddFolder(std::string_view folder); template inline Asset Load(std::string_view name) const; protected: std::set m_assets; }; } #include