/*********************************************************************
 * \file   AssetHelper.hpp
 *
 * \author Romain BOULLARD
 * \date   April 2026
 *********************************************************************/
#ifndef BIGFOOT_ENGINE_ASSET_ASSETHELPER_HPP
#define BIGFOOT_ENGINE_ASSET_ASSETHELPER_HPP
#include <Engine/Asset/AssetContainer.hpp>
#include <Engine/Asset/AssetLibrary.hpp>
#include <Engine/Asset/Reference.hpp>

#define BIGFOOT_ASSET(AssetName, AssetType)                                                                            \
    namespace Bigfoot                                                                                                  \
    {                                                                                                                  \
    template<>                                                                                                         \
    AssetTypeID GetAssetTypeID<AssetType>()                                                                            \
    {                                                                                                                  \
        return AssetType::GetTypeID();                                                                                 \
    }                                                                                                                  \
    AssetContainer<AssetType> g_containerFor##AssetName;                                                               \
    const bool g_insertedContainerFor##AssetName = g_assetLibrary.Insert(&g_containerFor##AssetName);                  \
    }
#endif
