// entity_loader.hpp - Carregador genèric de descriptors d'entitats en YAML // © 2026 JailDesigner // // Cada entitat viu a `data/entities//.yaml` (mateix patró que el // projecte germà aee_arcade). Aquest loader resol el path, llegeix del // resource pack via Resource::Helper, parseja amb fkyaml i cacheja el node // per evitar relectures. Retorna nullptr en cas d'error (el caller decideix // si abortar). #pragma once #include #include #include #include "external/fkyaml_node.hpp" namespace Entities { class EntityLoader { public: EntityLoader() = delete; // tot estàtic // Carrega el descriptor d'una entitat per nom (ex. "player" → // "entities/player/player.yaml"). Retorna nullptr si no es pot // carregar o parsejar. Cachejat per nom. static auto load(const std::string& name) -> std::shared_ptr; // Buidar caché (útil per debug/recàrrega). static void clearCache(); [[nodiscard]] static auto getCacheSize() -> size_t; private: static std::unordered_map> cache; }; } // namespace Entities