57 animData.animationJustFinished =
false;
102 SYSTEM_LOG <<
"AnimationSystem: Spritesheet not found: " <<
sequence->spritesheetId <<
"\n";
127 animData.animationJustFinished =
true;
130 if (!
sequence->nextAnimation.empty())
198 animData.animationJustFinished =
true;
201 if (!
sequence->nextAnimation.empty())
246 SYSTEM_LOG <<
"[AnimationSystem] ERROR: Empty bankId or animName for entity\n";
257 <<
"' not found in bank '" <<
animData.bankId <<
"'\n";
289 animData.animationJustFinished =
false;
Core animation data structures for 2D sprite animation system.
std::bitset< MAX_COMPONENTS > ComponentSignature
ComponentTypeID GetComponentTypeID_Static()
Animation system for 2D sprite animation.
World and ECS Manager for Olympe Engine.
void StopAnimation(EntityID entity)
Stop animation playback.
void PauseAnimation(EntityID entity)
Pause animation playback.
void ResumeAnimation(EntityID entity)
Resume paused animation.
void PlayAnimation(EntityID entity, const std::string &animName, bool restart=false)
Play a specific animation on an entity.
void SetPlaybackSpeed(EntityID entity, float speed)
Set playback speed multiplier.
virtual void Process() override
bool ResolveAnimationSequence(VisualAnimation_data &animData)
Resolve animation sequence pointer from AnimationManager.
void UpdateEntity(EntityID entity, VisualAnimation_data &animData, VisualSprite_data &spriteData)
Update a single entity's animation.
static DataManager & Get()
Sprite * GetSprite(const std::string &id, const std::string &path, ResourceCategory category=ResourceCategory::GameEntity)
std::set< EntityID > m_entities
ComponentSignature requiredSignature
static float fDt
Delta time between frames in seconds.
static AnimationManager & Get()
const Olympe::AnimationSequence * GetAnimationSequence(const std::string &bankId, const std::string &animName) const
Get animation sequence from a bank by name.
AnimationBank * GetBank(const std::string &bankName)
Core ECS manager and world coordinator.
static World & Get()
Get singleton instance (short form)
bool HasComponent(EntityID entity) const
T & GetComponent(EntityID entity)
Represents a single frame in an animation (DEPRECATED - use SpritesheetInfo + frame ranges)
SDL_FRect srcRect
Source rectangle in spritesheet (x, y, w, h)
SDL_FPoint hotSpot
Render offset (pivot point)
float duration
Duration of this frame in seconds.
Defines a complete animation sequence.
float speed
Speed multiplier.
ECS component for animated sprites.
std::string currentAnimName