Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
AnimationErrorHandler.h
Go to the documentation of this file.
1/*
2Olympe Engine V2 2025
3Animation System - Error Handler
4
5Purpose:
6- Utility class for logging animation errors
7- Prevents spam by logging each unique error only once
8- Provides fallback behavior for missing animations
9*/
10
11#pragma once
12
13#include <string>
14#include <unordered_set>
15
16namespace OlympeAnimation
17{
18 // ========================================================================
19 // AnimationErrorHandler - Manages error logging and fallbacks
20 // ========================================================================
22 {
23 public:
25 {
27 return instance;
28 }
29 static AnimationErrorHandler& Get() { return GetInstance(); }
30
31 // Log a missing animation error (only once per unique combination)
33 const std::string& entityName,
34 const std::string& graphPath,
35 const std::string& stateName,
36 const std::string& animName
37 );
38
39 // Log a missing spritesheet error (only once per unique combination)
41 const std::string& entityName,
42 const std::string& spritesheetId,
43 const std::string& animName
44 );
45
46 // Log a general animation error (only once per unique message)
47 void LogError(const std::string& message);
48
49 // Clear the error cache (useful for testing)
50 void ClearCache();
51
52 private:
55
56 // Delete copy constructor and assignment operator (singleton)
59
60 std::unordered_set<std::string> m_loggedErrors;
61
62 // Helper: Generate unique key for error
63 std::string GenerateErrorKey(const std::string& error);
64 };
65
66} // namespace OlympeAnimation
ComponentTypeID GetComponentTypeID_Static()
Definition ECS_Entity.h:56
static AnimationErrorHandler & Get()
std::string GenerateErrorKey(const std::string &error)
void LogMissingSpritesheet(const std::string &entityName, const std::string &spritesheetId, const std::string &animName)
void LogError(const std::string &message)
void LogMissingAnimation(const std::string &entityName, const std::string &graphPath, const std::string &stateName, const std::string &animName)
AnimationErrorHandler(const AnimationErrorHandler &)=delete
static AnimationErrorHandler & GetInstance()
std::unordered_set< std::string > m_loggedErrors
AnimationErrorHandler & operator=(const AnimationErrorHandler &)=delete