| 123456789101112131415161718192021222324252627282930313233343536 |
- #include "healing_beam_renderer.h"
- #include "../../game/systems/healing_beam.h"
- #include "../../game/systems/healing_beam_system.h"
- #include "../../game/systems/healing_colors.h"
- #include "../scene_renderer.h"
- namespace Render::GL {
- void render_healing_beams(Renderer *renderer, ResourceManager *,
- const Game::Systems::HealingBeamSystem &beam_system) {
- if (renderer == nullptr || beam_system.get_beam_count() == 0) {
- return;
- }
- float animation_time = renderer->get_animation_time();
- for (const auto &beam : beam_system.get_beams()) {
- if (beam && beam->is_active()) {
- float intensity = beam->get_intensity();
- if (intensity < 0.01F) {
- continue;
- }
- QVector3D color = beam->get_color();
- if (Game::Systems::is_roman_healing_color(color)) {
- continue;
- }
- renderer->healing_beam(beam->get_start(), beam->get_end(), color,
- beam->get_progress(), beam->get_beam_width(),
- intensity, animation_time);
- }
- }
- }
- } // namespace Render::GL
|