From 9432900158e6a31815345fcf0af8d28ae34c6da9 Mon Sep 17 00:00:00 2001 From: heavydemon21 Date: Fri, 8 Nov 2024 11:44:21 +0100 Subject: code style --- src/crepe/system/AnimatorSystem.cpp | 39 +++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/crepe/system/AnimatorSystem.cpp (limited to 'src/crepe/system/AnimatorSystem.cpp') diff --git a/src/crepe/system/AnimatorSystem.cpp b/src/crepe/system/AnimatorSystem.cpp new file mode 100644 index 0000000..052d264 --- /dev/null +++ b/src/crepe/system/AnimatorSystem.cpp @@ -0,0 +1,39 @@ + + +#include "AnimatorSystem.h" +#include "ComponentManager.h" +#include "facade/SDLContext.h" +#include "util/log.h" + +#include "api/Animator.h" + +#include +#include +#include + +using namespace crepe; + +AnimatorSystem::AnimatorSystem() { dbg_trace(); } + +AnimatorSystem::~AnimatorSystem() { dbg_trace(); } + +AnimatorSystem & AnimatorSystem::get_instance() { + static AnimatorSystem instance; + return instance; +} + +void AnimatorSystem::update() { + ComponentManager& mgr = ComponentManager::get_instance(); + + std::vector> animations = mgr.get_components_by_type(); + + uint64_t tick = SDLContext::get_instance().get_ticks(); + for(Animator& a : animations){ + if (a.active) { + a.curr_row = (tick / 100) % a.row; + a.animator_rect.x = (a.curr_row * a.animator_rect.w) + a.curr_col; + a.spritesheet.sprite_rect = a.animator_rect; + } + } +} + -- cgit v1.2.3