// // Created by karl on 15.01.20. // #ifndef ECSGAME_SINEANIMATIONSYSTEM_H #define ECSGAME_SINEANIMATIONSYSTEM_H #include "../Components/SineAnimation.h" #include "../Components/Transform.h" #include "../ECS.h" using namespace ECS; class SineAnimationSystem : public EntitySystem { public: void tick(World *pWorld, float deltaTime) override { passedTime += deltaTime; pWorld->each([&](Entity *ent, ComponentHandle transform, ComponentHandle anim) { transform->translate(anim->maxDistance * glm::sin(passedTime * anim->speedScale) * deltaTime); }); } private: float passedTime = 0.0; }; #endif // ECSGAME_SINEANIMATIONSYSTEM_H