feat(player): publica PaintedTile amb l'índex de pintat propi

This commit is contained in:
JailDesigner committed 2026-04-23 13:19:01 +02:00
1 parent 87b08a7c7c
commit 0f56ce7567
2 files changed
+17 -7

No files matched your search

+10 -2
View File
@@ -41,7 +41,7 @@ class Player : public AnimatedSprite {
// Ha de cridar-se abans d'instanciar Player; GameScene ho fa al ctor.
static void loadFrom(const std::string& yaml_path);
Player(const std::string& anim_key, float x, float y, const Controls& controls, const Map::Info& map_info);
Player(const std::string& anim_key, float x, float y, const Controls& controls, const Map::Info& map_info, int paint_tile_index = -1);
void update(float delta_time) override;
@@ -54,7 +54,9 @@ class Player : public AnimatedSprite {
// Injecta el bus del nivell. El Player publica `on_tile_entered` cada
// vegada que el centre de la seua caixa de col·lisió entra en una
// cel·la nova del tilemap. Si el bus no s'injecta, no emet res.
// cel·la nova del tilemap, amb payload `PaintedTile{col,row,paint_tile_index_}`.
// El PaintLayer filtra pintabilitat i re-publica `tile_painted` a qui
// correspongui (sarcòfags). Si el bus no s'injecta, no emet res.
void setEventBus(EventBus* bus) { bus_ = bus; }
// Tile actual del jugador (centre de `baseBox()` convertit a
@@ -127,4 +129,10 @@ class Player : public AnimatedSprite {
// el primer frame en què el bus estigui connectat ja emeti un event.
int last_tile_col_{-9999};
int last_tile_row_{-9999};
// Índex de tile del tileset amb què aquest jugador pinta. Llegit del
// YAML del mapa (`player1_paint_tile` / `player2_paint_tile`) i passat
// al ctor per GameScene. -1 desactiva el pintat (p.ex. al test
// d'arrencada o en un escenari que no vulgui feedback visual).
int paint_tile_index_{-1};
};