#ifndef STAR_BLUEPRINT_ITEM_HPP
#define STAR_BLUEPRINT_ITEM_HPP

#include "StarItem.hpp"
#include "StarWorld.hpp"
#include "StarSwingableItem.hpp"

namespace Star {

STAR_CLASS(BlueprintItem);

class BlueprintItem : public Item, public SwingableItem {
public:
  BlueprintItem(Json const& config, String const& directory, Json const& data);
  virtual ItemPtr clone() const override;

  virtual List<Drawable> drawables() const override;

  virtual void fireTriggered() override;

  virtual List<Drawable> iconDrawables() const override;
  virtual List<Drawable> dropDrawables() const override;

private:
  ItemDescriptor m_recipe;
  Drawable m_recipeIconUnderlay;
  List<Drawable> m_inHandDrawable;
};

}

#endif