// Copyright (C) 2022 TiltedPhoques SRL. // For licensing information see LICENSE at the root of this distribution. #pragma once #include "Manifest.h" #include #include namespace Resources { struct ResourceCollection { ResourceCollection(); ~ResourceCollection(); void CollectResources(); auto& GetResourceFolderPath() const { return m_resourcePath; } void ResolveDependencies(); bool LoadManifestData(const std::filesystem::path& aPath); const auto& GetManifests() const { return m_manifests; } template void ForEachManifest(const T& aCallback) const noexcept { for (const auto& manifest : m_manifests) { aCallback(*manifest); } } private: std::filesystem::path m_resourcePath; TiltedPhoques::Vector> m_manifests; }; } // namespace Resources