28 lines
946 B
C++
28 lines
946 B
C++
#include <string>
|
|
|
|
#include "external/fkyaml_node.hpp"
|
|
#include "game/entities/entity_factory.hpp"
|
|
#include "game/entities/solid_decoration.hpp"
|
|
|
|
// Murs decoratius estàtics que comparteixen el mateix codi C++ però es
|
|
// registren amb claus de factory diferents per a que el YAML els pugui
|
|
// referenciar pel seu tipus i el editor els pugui distingir al picker.
|
|
// La selecció del sub-sprite (frame del atlas) viatja al spawn YAML
|
|
// (`frame: N`); l'aplica `placeGeneric` via `Entity::setAnimation`. Aquí no
|
|
// cal cap lògica específica per a la variant.
|
|
namespace {
|
|
|
|
class StaticSolid : public SolidDecoration {
|
|
public:
|
|
explicit StaticSolid(const fkyaml::node& yaml) {
|
|
if (yaml.contains("name")) {
|
|
name_ = yaml["name"].get_value<std::string>();
|
|
}
|
|
}
|
|
};
|
|
|
|
} // namespace
|
|
|
|
REGISTER_ENTITY_AS("stone", StaticSolid, Stone)
|
|
REGISTER_ENTITY_AS("column", StaticSolid, Column)
|