#ifndef TRANSFORM_SYSTEM_H_BA2633BC #define TRANSFORM_SYSTEM_H_BA2633BC #include #include #include #include "system.h" #include "vector.h" class Game; class TransformSystem : public System { public: static constexpr SystemKey Key = SystemKey::Transform; TransformSystem(Game& game) : game_(game) {} void initSprite(int spriteId, vec2i loc); void moveSprite(int spriteId, vec2i newLoc); auto getSpritesByY() const { return spritesByY_ | ranges::views::transform([] (const std::tuple& val) { return std::get<1>(val); }); } private: Game& game_; std::set> spritesByY_; }; #endif /* end of include guard: TRANSFORM_SYSTEM_H_BA2633BC */