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