27 lines
997 B
C++
27 lines
997 B
C++
#pragma once
|
|
|
|
#include "game/entities/entity.hpp"
|
|
|
|
// Mur passiu: bloqueja moviment i salt però no té ni estat ni acció. Paral·lel
|
|
// a `Decoration` (sense col·lisió) i `Interactable` (col·lisiona i té
|
|
// estat/interact). Pensat per a debris/obstacles purament visuals que sí
|
|
// han de detenir el jugador: pedres, columnes, restes.
|
|
//
|
|
// Diferència amb `Interactable`: no override `interact()` ni
|
|
// `notifyTilePainted`. La caixa de col·lisió i alçada efectiva surten del
|
|
// YAML (`collision.size`, `collision.height`); aquest ctor només fixa els
|
|
// flags i un default raonable per a "mur infranquejable".
|
|
class SolidDecoration : public Entity {
|
|
public:
|
|
using Entity::Entity;
|
|
|
|
SolidDecoration() {
|
|
collides_ = true;
|
|
interactable_ = false;
|
|
height_ = 999;
|
|
// Sí bloqueja el moviment del jugador: `Map::collides` el consulta
|
|
// via callback per parar el moviment com si fos una paret sòlida.
|
|
blocks_movement_ = true;
|
|
}
|
|
};
|