diff options
| author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2021-02-03 00:52:47 -0500 |
|---|---|---|
| committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2021-02-03 00:52:47 -0500 |
| commit | f449345e3aeb599eb497dfeeac7027cf4d1de515 (patch) | |
| tree | f73bcf0bf9df4f5b173448447131078065844534 /src/transform_system.cpp | |
| parent | 17643b13c2b4b40464bd992765327be3dc364b74 (diff) | |
| download | tanetane-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.cpp | 20 |
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 | |||
| 4 | void TransformSystem::initSprite(int spriteId, vec2i loc) { | ||
| 5 | Sprite& sprite = game_.getSprite(spriteId); | ||
| 6 | sprite.loc() = loc; | ||
| 7 | spritesByY_.emplace(loc.y(), spriteId); | ||
| 8 | } | ||
| 9 | |||
| 10 | void 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 | } | ||
