#ifndef BASIC_FUEL_RULE_HPP_
#define BASIC_FUEL_RULE_HPP_

#include <FuelRule/FuelRule.hpp>

/**
 * @brief Basic fuel rule, specifies an item and the fuel per unit.
 */
class BasicFuelRule : public FuelRule
{
private:
    ItemStack m_fuelStack;
    uint32_t m_amount;

public:
    /**
     * @brief Construct a new basic fuel rule.
     * 
     * @param fuelStack The fuel item stack.
     * @param amount Fuel per unit.
     */
    BasicFuelRule(ItemStack fuelStack, uint32_t amount);

    virtual bool isValidFuel(ItemStack &stack) override;
    virtual uint32_t getFuelAmount(ItemStack &stack) override;
};

#endif