#ifndef ASSET_MANAGER_H
#define ASSET_MANAGER_H

#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <SDL2/SDL_mixer.h>
#include <SDL2/SDL_ttf.h>
#include <string>
#include <unordered_map>

class AssetManager {
public:
    AssetManager(SDL_Renderer* renderer);
    ~AssetManager();

    SDL_Texture* getTexture(const std::string& path);
    TTF_Font* getFont() const { return font; }
    Mix_Music* getBGM() const { return bgm; }

    bool loadFont(const char* path, int size);
    bool loadBGM(const char* path);

private:
    SDL_Renderer* renderer;
    std::unordered_map<std::string, SDL_Texture*> textures;
    TTF_Font* font = nullptr;
    Mix_Music* bgm = nullptr;
};

#endif
