feat(mummy): evita tiles amb decal trigger (Hole) en decidir direcció
This commit is contained in:
1 parent
3e5217066f
commit
3bfca35f3a
5 files changed
+111
-27
No files matched your search
@@ -12,9 +12,13 @@
|
||||
// `source/game/entities/player.hpp` i només es referencia per referència
|
||||
// dins `onPlayerContact`; `EventBus` és opcional a cada entitat i viu al
|
||||
// seu header propi. `Surface` és el backend de render paletitzat del motor.
|
||||
// `EntityManager` només es referencia per punter (injectat opcionalment
|
||||
// per a entitats que necessiten consultar el món d'entitats — p.ex. la
|
||||
// mòmia per saber si el pròxim tile té un decal trigger tipus Hole).
|
||||
class Player;
|
||||
class EventBus;
|
||||
class Surface;
|
||||
class EntityManager;
|
||||
|
||||
// Entitat genèrica del món. Actua com a dada en comú per a tots els actors
|
||||
// del joc (decoratius, interactables, perills mòbils i estàtics): manté
|
||||
@@ -122,6 +126,14 @@ class Entity {
|
||||
// estàtiques de moment) el poden ignorar.
|
||||
void setEventBus(EventBus* bus) { bus_ = bus; }
|
||||
|
||||
// Injecció opcional del manager d'entitats (mateix patró que
|
||||
// `setEventBus`: el manager s'auto-injecta a `add`/`setDoor`/
|
||||
// `addSarcophagus`). El consumeixen entitats que volen consultar el
|
||||
// món d'entitats — avui la mòmia, per saber si el tile següent
|
||||
// conté un decal trigger (Hole) i evitar caure-hi. Entitats que no
|
||||
// l'usen el poden ignorar.
|
||||
void setEntityManager(EntityManager* manager) { entity_manager_ = manager; }
|
||||
|
||||
// Assigna la caixa de render en píxels. La invoca `EntityManager` durant
|
||||
// `loadFromLevel` un cop sap la posició definitiva de l'entitat al mapa.
|
||||
void setPixelRect(SDL_FRect rect) { pixel_rect_ = rect; }
|
||||
@@ -199,4 +211,5 @@ class Entity {
|
||||
bool dead_{false};
|
||||
SDL_FlipMode flip_{SDL_FLIP_NONE};
|
||||
EventBus* bus_{nullptr};
|
||||
EntityManager* entity_manager_{nullptr};
|
||||
};
|
||||
Reference in new issue
Block a user