#ifndef BASIC_ITEM_HPP_
#define BASIC_ITEM_HPP_

#include <Item/StatelessItem/StatelessItem.hpp>
#include <Material/Material.hpp>

/**
 * @brief Class used for all "basic" items which have no use other than construction.
 */
class BasicItem : public StatelessItem
{
private:
    Material &m_material;

public:
    BasicItem(std::string name, std::string displayName, Material &mat);

    virtual void draw(GraphicsContext &context, int x, int y, const ItemStack &stack) override;
    virtual void draw3D(GraphicsContext &context, WorldDisplay &worldDisplay, glm::vec3 pos, ItemStack &stack) override;
    virtual void drawFlat(GraphicsContext &context, WorldDisplay &worldDisplay, glm::mat4 matrix, ItemStack &stack) override;
};

#endif