summary refs log tree commit diff stats
path: root/src/systems/rendering.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/systems/rendering.cpp')
-rw-r--r--src/systems/rendering.cpp40
1 files changed, 28 insertions, 12 deletions
diff --git a/src/systems/rendering.cpp b/src/systems/rendering.cpp index 251c2bc..8219732 100644 --- a/src/systems/rendering.cpp +++ b/src/systems/rendering.cpp
@@ -3,19 +3,35 @@
3#include "components/animatable.h" 3#include "components/animatable.h"
4#include "components/transformable.h" 4#include "components/transformable.h"
5 5
6void RenderingSystem::tick(double dt) 6void RenderingSystem::tick(double)
7{ 7{
8 texture.fill(texture.entirety(), 0, 0, 0); 8 texture_.fill(texture_.entirety(), 0, 0, 0);
9 9
10 std::set<int> spriteEntities = game.getEntityManager().getEntitiesWithComponents<AnimatableComponent, TransformableComponent>(); 10 std::set<id_type> spriteEntities =
11 for (int entity : spriteEntities) 11 game_.getEntityManager().getEntitiesWithComponents<
12 AnimatableComponent,
13 TransformableComponent>();
14
15 for (id_type entity : spriteEntities)
12 { 16 {
13 auto& sprite = game.getEntityManager().getComponent<AnimatableComponent>(entity); 17 auto& sprite = game_.getEntityManager().
14 auto& transform = game.getEntityManager().getComponent<TransformableComponent>(entity); 18 getComponent<AnimatableComponent>(entity);
15 Rectangle dstrect {(int) transform.getX(), (int) transform.getY(), transform.getW(), transform.getH()}; 19
16 20 auto& transform = game_.getEntityManager().
17 texture.blit(sprite.getTexture(), sprite.getFrameRect(), dstrect); 21 getComponent<TransformableComponent>(entity);
22
23 Rectangle dstrect {
24 static_cast<int>(transform.getX()),
25 static_cast<int>(transform.getY()),
26 transform.getW(),
27 transform.getH()};
28
29 const AnimationSet& aset = sprite.getAnimationSet();
30 texture_.blit(
31 aset.getTexture(),
32 aset.getFrameRect(sprite.getFrame()),
33 dstrect);
18 } 34 }
19 35
20 texture.renderScreen(); 36 texture_.renderScreen();
21} 37}