#include "game/entities/entity_factory.hpp" #include #include #include "game/entities/entity.hpp" // tipus complet per a unique_ptr auto EntityFactory::instance() -> EntityFactory& { static EntityFactory k_factory_; return k_factory_; } void EntityFactory::registerCreator(const std::string& name, Creator creator) { creators_[name] = std::move(creator); } auto EntityFactory::create(const std::string& name, const fkyaml::node& yaml) const -> std::unique_ptr { auto it = creators_.find(name); if (it == creators_.end()) { return nullptr; } return it->second(yaml); } auto EntityFactory::registeredNames() const -> std::vector { std::vector names; names.reserve(creators_.size()); for (const auto& [name, _] : creators_) { names.push_back(name); } return names; }