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,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*/) {}
|
||||
};
|
||||
Reference in new issue
Block a user