#ifndef FAN_HPP_
#define FAN_HPP_

#include <Item/INuclearReactorComponent.hpp>
#include <Item/StatelessItem/BasicItem/BasicItem.hpp>

/**
 * @brief Nuclear reactor fan.
 */
class Fan : public BasicItem, public INuclearReactorComponent
{
private:
    float coolingRate;

public:
    Fan(std::string name, std::string displayName, Material &icon, float coolingRate);

    virtual void describeInNuclearReactor(ItemStack &stack, std::ostream &os) override;
    virtual bool updateNuclearReactor(ItemStack &stack, MNuclearReactor &reactor, glm::ivec2 cellPos) override;
    virtual float getHeatConductivity(ItemStack &stack) override;
};

#endif