| 257 | explicit ParticleRenderSystem(sf::RenderTarget &target) : target(target) {} |
| 258 | |
| 259 | void update(ex::EntityManager &es, ex::EventManager &events, ex::TimeDelta dt) override { |
| 260 | sf::VertexArray vertices(sf::Quads); |
| 261 | ex::ComponentHandle<Particle> particle; |
| 262 | ex::ComponentHandle<Body> body; |
| 263 | for (ex::Entity entity : es.entities_with_components(body, particle)) { |
| 264 | float r = particle->radius; |
| 265 | vertices.append(sf::Vertex(body->position + sf::Vector2f(-r, -r), particle->colour)); |
| 266 | vertices.append(sf::Vertex(body->position + sf::Vector2f(r, -r), particle->colour)); |
| 267 | vertices.append(sf::Vertex(body->position + sf::Vector2f(r, r), particle->colour)); |
| 268 | vertices.append(sf::Vertex(body->position + sf::Vector2f(-r, r), particle->colour)); |
| 269 | } |
| 270 | target.draw(vertices); |
| 271 | } |
| 272 | private: |
| 273 | sf::RenderTarget ⌖ |
| 274 | }; |
nothing calls this directly
no test coverage detected