Проблема в том, что абсолютно весь свет в игре - статический, и высчитывается в виде цифры 0-15 для каждого блока.
Просчитывается он, соответственно, при обновлении чанка, читай, когда ты что-то ставишь-ломаешь или как-либо по другому взаимодействуешь с блоками.
И во внимание игрой (спавн мобов, рост растений, и прочее) берётся именно этот статический поблочный свет.
Это я к тому, что не особо сложно можно написать шейдер, который сделал бы тебе красивый конусовый фонарик (базовый туториал по освещению в opengl + туториал по загрузке и применению своих шейдеров в игре), но он будет только создавать видимость, а игровая логика чихать на него будет, так как это просто отрисовка такая будет, что пиксели на которые направлен твой фонарик...