feat(entities): andamiatge del sistema d'entitats (classes, factory, bus, YAML, placeholders, smoke tests)
This commit is contained in:
1 parent
984cc820c0
commit
96b71b0f65
48 files changed
+1957
No files matched your search
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "external/fkyaml_node.hpp"
|
||||
|
||||
class Entity;
|
||||
|
||||
// Utilitats estàtiques per carregar plantilles d'entitats i llistes de
|
||||
// spawns. No té estat propi; tot és lliure d'instància. El Cache de
|
||||
// plantilles YAML viu dins el loader (estàtic de funció): si el mateix
|
||||
// tipus s'instancia N vegades, el YAML només es llegeix una.
|
||||
namespace EntityLoader {
|
||||
|
||||
// Carrega la plantilla d'una entitat (p.ex. "torch") llegint
|
||||
// `data/entities/<name>/<name>.yaml`. Llança `std::runtime_error` si
|
||||
// el fitxer no existeix o no parseja. El node retornat és una còpia
|
||||
// del que hi ha al cache — és barat, però si algun perfil ho exigís
|
||||
// es podria retornar `const&`.
|
||||
auto loadTemplate(const std::string& name) -> fkyaml::node;
|
||||
|
||||
// Llegeix el bloc `entities:` d'un YAML de nivell i retorna la llista
|
||||
// de spawns en cru. Cada spawn és un node amb (com a mínim) `type` i
|
||||
// `position: [col, row]`. L'EntityManager decideix com interpretar-lo.
|
||||
auto readSpawns(const std::string& level_yaml_path) -> std::vector<fkyaml::node>;
|
||||
|
||||
// Crea una entitat del tipus demanat via la EntityFactory usant la
|
||||
// plantilla corresponent. Si no hi ha creator registrat o falla
|
||||
// l'accés al YAML, retorna nullptr.
|
||||
auto createByType(const std::string& type) -> std::unique_ptr<Entity>;
|
||||
|
||||
} // namespace EntityLoader
|
||||
Reference in new issue
Block a user