// resource_loader.hpp - Carregador de recursos (Singleton) // © 2026 JailDesigner // Coordina càrrega des del paquet i/o sistema de archivos #pragma once #include #include #include #include "resource_pack.hpp" namespace Resource { // Singleton per gestionar la càrrega de recursos class Loader { public: // Singleton static Loader& get(); // Inicialización bool initialize(const std::string& pack_file, bool enable_fallback); // Càrrega de recursos std::vector loadResource(const std::string& filename); bool resourceExists(const std::string& filename); // Validació bool validatePack(); [[nodiscard]] bool isPackLoaded() const; // Estat void setBasePath(const std::string& path); [[nodiscard]] std::string getBasePath() const; // No es pot copiar ni moure Loader(const Loader&) = delete; Loader& operator=(const Loader&) = delete; private: Loader() = default; ~Loader() = default; // Dades std::unique_ptr pack_; bool fallback_enabled_ = false; std::string base_path_; // Funciones auxiliars std::vector loadFromFilesystem(const std::string& filename); }; } // namespace Resource