summary refs log tree commit diff stats
path: root/src/transform_system.cpp
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.cpp
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.cpp')
-rw-r--r--src/transform_system.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/transform_system.cpp b/src/transform_system.cpp new file mode 100644 index 0000000..e53fb7d --- /dev/null +++ b/src/transform_system.cpp
@@ -0,0 +1,20 @@
1#include "transform_system.h"
2#include "game.h"
3
4void TransformSystem::initSprite(int spriteId, vec2i loc) {
5 Sprite& sprite = game_.getSprite(spriteId);
6 sprite.loc() = loc;
7 spritesByY_.emplace(loc.y(), spriteId);
8}
9
10void TransformSystem::moveSprite(int spriteId, vec2i newLoc) {
11 Sprite& sprite = game_.getSprite(spriteId);
12 bool changedY = (sprite.loc().y() != newLoc.y());
13 if (changedY) {
14 spritesByY_.erase(std::make_tuple(sprite.loc().y(), spriteId));
15 }
16 sprite.loc() = newLoc;
17 if (changedY) {
18 spritesByY_.emplace(newLoc.y(), spriteId);
19 }
20}