#ifndef WORLD_AVATAR_HPP_
#define WORLD_AVATAR_HPP_

#include <cstdint>
#include <vector>
#include <Material/Material.hpp>
#include <Serialize/Serialize.hpp>

/**
 * @brief Enumeration of the world avatars.
 */
enum class WorldAvatar : uint8_t
{
    Voxelverse = 0,
    Blob = 1,
    Zype = 2,
    Frog = 3,
    Kevin = 4,
    Saphiro = 5,
    Diamond = 6,
    Macerator = 7,
};

/**
 * @brief The list of all available world avatars.
 */
extern std::vector<WorldAvatar> worldAvatarList;

/**
 * @brief Get the material corresponding to a world avatar.
 */
Material& getWorldAvatarMaterial(WorldAvatar avatar);

PLAIN_SERIALIZABLE(WorldAvatar);

#endif