#pragma once #include "game/entities/entity.hpp" // Entitat amb estat observable i/o mètode d'interacció explícita. Exemples: // `Sarcophagus` (estat CLOSED/OPENING/OPEN), `Door` (estat igual). Les // classes filles implementen `interact(Player&)` si responen a una acció // directa; altres canvien d'estat per observació del món (Sarcòfag: // perímetre visitat). class Interactable : public Entity { public: using Entity::Entity; Interactable() { collides_ = true; interactable_ = true; } // Crida explícita d'interacció: per defecte no-op. Les subclasses que // tinguin un botó "accionar" (Door oberta, p.ex.) ho sobreescriuen. virtual void interact(Player* /*player*/) {} };