summary refs log tree commit diff stats
path: root/src/transform_system.h
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2021-02-03 00:52:47 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2021-02-03 00:52:47 -0500
commitf449345e3aeb599eb497dfeeac7027cf4d1de515 (patch)
treef73bcf0bf9df4f5b173448447131078065844534 /src/transform_system.h
parent17643b13c2b4b40464bd992765327be3dc364b74 (diff)
downloadtanetane-f449345e3aeb599eb497dfeeac7027cf4d1de515.tar.gz
tanetane-f449345e3aeb599eb497dfeeac7027cf4d1de515.tar.bz2
tanetane-f449345e3aeb599eb497dfeeac7027cf4d1de515.zip
Pulled transform stuff into a system (starting to do ECS stuff)
Diffstat (limited to 'src/transform_system.h')
-rw-r--r--src/transform_system.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/transform_system.h b/src/transform_system.h new file mode 100644 index 0000000..4616fc0 --- /dev/null +++ b/src/transform_system.h
@@ -0,0 +1,33 @@
1#ifndef TRANSFORM_SYSTEM_H_BA2633BC
2#define TRANSFORM_SYSTEM_H_BA2633BC
3
4#include <range/v3/all.hpp>
5#include <set>
6#include <tuple>
7#include "system.h"
8#include "vector.h"
9
10class Game;
11
12class TransformSystem : public System {
13public:
14
15 TransformSystem(Game& game) : game_(game) {}
16
17 void initSprite(int spriteId, vec2i loc);
18
19 void moveSprite(int spriteId, vec2i newLoc);
20
21 auto getSpritesByY() const {
22 return spritesByY_ | ranges::views::transform([] (const std::tuple<int, int>& val) {
23 return std::get<1>(val);
24 });
25 }
26
27private:
28
29 Game& game_;
30 std::set<std::tuple<int, int>> spritesByY_;
31};
32
33#endif /* end of include guard: TRANSFORM_SYSTEM_H_BA2633BC */