diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-12 15:11:51 +0100 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-11-12 15:11:51 +0100 |
commit | 33454c2c8d8c0abdfd405608af4e6cd53a25e7c4 (patch) | |
tree | ef5131afc629815e993775423602a6e8af5fcb5f /src/crepe/system/AnimatorSystem.h | |
parent | 067247360d68042ad5466b802399338c14d7dc58 (diff) | |
parent | 656df6ddd6b5231705798540c347efeebf8ac8a9 (diff) |
merge `master` into `loek/cleanup`
Diffstat (limited to 'src/crepe/system/AnimatorSystem.h')
-rw-r--r-- | src/crepe/system/AnimatorSystem.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/crepe/system/AnimatorSystem.h b/src/crepe/system/AnimatorSystem.h new file mode 100644 index 0000000..969e9d1 --- /dev/null +++ b/src/crepe/system/AnimatorSystem.h @@ -0,0 +1,44 @@ +#pragma once + +#include "System.h" + +//TODO: +// control if flip works with animation system + +namespace crepe { + +/** + * \brief The AnimatorSystem is responsible for managing and updating all Animator components. + * + * This system is responsible for controlling the behavior of the animations for all entities + * that have the Animator component attached. It updates the animations by controlling their + * frame changes, looping behavior, and overall animation state. + */ +class AnimatorSystem : public System { + +public: + /** + * \brief Retrieves the singleton instance of the AnimatorSystem. + * + * \return A reference to the single instance of the AnimatorSystem. + * + * This method ensures that there is only one instance of the AnimatorSystem, following the + * singleton design pattern. It can be used to access the system globally. + */ + static AnimatorSystem & get_instance(); + + /** + * \brief Updates the Animator components. + * + * This method is called periodically (likely every frame) to update the state of all + * Animator components, moving the animations forward and managing their behavior (e.g., looping). + */ + void update() override; + +private: + // private because singleton + AnimatorSystem(); // dbg_trace + ~AnimatorSystem(); // dbg_trace +}; + +} // namespace crepe |