feat(lighting): flicker proporcional al radi amb overrides per emissor
This commit is contained in:
1 parent
3a42c7958a
commit
2272d3a37a
13 files changed
+298
-150
No files matched your search
@@ -7,6 +7,7 @@
|
||||
#include <optional>
|
||||
#include <string>
|
||||
|
||||
#include "core/rendering/lighting.hpp"
|
||||
#include "game/entities/animation_component.hpp"
|
||||
|
||||
// Forward-declaracions: mantenim aquest header lleuger. `Player` viu a
|
||||
@@ -296,6 +297,15 @@ class Entity {
|
||||
light_offset_y_ = y;
|
||||
}
|
||||
|
||||
// Paràmetres del flicker resolts per a aquest emissor (combinació
|
||||
// del global de `data/config/lighting.yaml` + overrides del tipus,
|
||||
// sala i spawn). Només té efecte si `light_flicker_` és true. El
|
||||
// construct path li passa una còpia ja resolta — el raster (lighting.cpp)
|
||||
// només la llegeix. Es publica per camps perquè el bloc YAML
|
||||
// `flicker_params:` permet sobreescriure qualsevol subconjunt.
|
||||
[[nodiscard]] auto getFlickerParams() const -> const Lighting::FlickerConfig& { return flicker_params_; }
|
||||
void setFlickerParams(const Lighting::FlickerConfig& fp) { flicker_params_ = fp; }
|
||||
|
||||
// Identificador estable per al flicker. Cada Entity rep un valor
|
||||
// únic a la construcció (contador estàtic) i el conserva fins a la
|
||||
// mort — així el patró del flicker no "deriva" quan l'entitat es
|
||||
@@ -339,6 +349,7 @@ class Entity {
|
||||
std::uint8_t light_color_b_{255};
|
||||
int light_offset_x_{0};
|
||||
int light_offset_y_{0};
|
||||
Lighting::FlickerConfig flicker_params_{};
|
||||
bool dead_{false};
|
||||
SDL_FlipMode flip_{SDL_FLIP_NONE};
|
||||
EventBus* bus_{nullptr};
|
||||
|
||||
Reference in new issue
Block a user