//
// Created by sebastian on 30.07.26.
//

#ifndef COLORRACE_LOADEDASSETS_H
#define COLORRACE_LOADEDASSETS_H
// engine/src/loader/assets/LoadedAssets.h
#pragma once
#include <memory>
#include <string>
#include <variant>

#include "core/audio/SoundBuffer.h"
#include "loader/textures/Texture2D.h"
#include "loader/models/Model.h"

namespace engine {

    struct LoadedTexture {
        std::string name;
        std::shared_ptr<Texture2D> texture;
    };

    struct LoadedModel {
        std::string name;
        std::shared_ptr<Model> model;
    };

    struct LoadedSound {
        std::string name;
        std::shared_ptr<audio::SoundBuffer> sound;
    };

    using LoadedAsset = std::variant<LoadedTexture, LoadedModel, LoadedSound>;

}
#endif //COLORRACE_LOADEDASSETS_H
