feat(entities): andamiatge del sistema d'entitats (classes, factory, bus, YAML, placeholders, smoke tests)

This commit is contained in:
JailDesigner committed 2026-04-21 12:35:19 +02:00
1 parent 984cc820c0
commit 96b71b0f65
48 files changed
+1957

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
#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*/) {}
};