#ifndef ORE_SMELTING_RULE_HPP_
#define ORE_SMELTING_RULE_HPP_

#include <SmeltingRule/SmeltingRule.hpp>

/**
 * @brief Rule which auto-detects smelting rules for ores.
 */
class OreSmeltingRule : public SmeltingRule
{
private:
    /**
     * @brief Get the corresponding ingot given an ore block name.
     * 
     * @param oreName The name of the ore.
     * @return The ingot item, or `nullptr` if there is no such ingot.
     */
    Item* getIngotFor(std::string oreName);

public:
    virtual bool canSmelt(ItemStack &stack) override;
    virtual ItemStack getSmeltingResult(ItemStack &input) override;
};

#endif