#ifndef TORCH_HPP_
#define TORCH_HPP_

#include <Block/SpriteBlock/SpriteBlock.hpp>

class Torch : public SpriteBlock
{
private:
    static std::vector<Sprite> makeSprites();

public:
    Torch(std::string name);

    virtual bool canManuallyDig() override;
    virtual glm::vec3 getLightColor(uint8_t meta) override;
    virtual float getLightVariance(uint8_t meta) override;
    virtual bool canPlace(LocalWorld &world, IWorldActor &actor, glm::ivec3 pos, Side side, uint8_t &meta) override;
    virtual void onNeighborUpdated(LocalWorld &world, glm::ivec3 pos, Side side) override;
    virtual bool isIntersectedBy(World &world, glm::ivec3 pos, const BoundingBox<wfixed> &box) override;
    virtual void getEffects(uint8_t meta, glm::vec3 offset, std::vector<std::shared_ptr<BlockEffect>> &effects) override;
};

#endif