Помощь с BlockEntityRenderer

Версия Minecraft
1.20.1
API
Forge
95
4
6
Есть 2 основные проблемы, возникшие после того, как я реализовал функционал из этой темы

1. просвет через блоки, когда модель не рендерится
1720127790740.png
2. Когда модель рендерится, уровень освещения всегда равен нулю
1720127844607.png

Вот файлы используемые в рендере:
block block entity renderer

Также я не понимаю за что отвечают rgb параметры в методе ModelBlockRenderer.renderModel, видимых изменений я не заметил
 
Решение
Да, свет всегда равен нулю
Тогда тебе нужно рассчитывать освещение по-своему, раз майн сам не может рассчитать освещение для твоего блока.
На форуме forge была тема по данному вопросу, можешь попробовать поискать.

Однако, на мой взгляд, проблема заключается именно в том, что я делал всё для FlowerBlock, а ты применяешь эти же методы для Block. Просто посмотри в FlowerBlock и (в части отображения) сделай также, должно помочь.
1. Твой блок - полный, потому майнкрафт не рендерит грань блока. Просто сделай свой блок неполным.
2. Он именно равен нулю (по дебаггеру), или независимо от значения получается вот такая картина?
Я в своём коде ориентировался на особенности FlowerBlock. потому для обычного блока эти особенности тоже необходимо учесть.

Также я не понимаю за что отвечают rgb параметры в методе ModelBlockRenderer.renderModel, видимых изменений я не заметил
Если я не ошибаюсь, они отвечают за цвет не-цветных частей блока (tint), если модель это поддерживает. Пример - блок воды, котёл, листва, трава и т.д. Текстура в файлах у них белая (частично/полностью), чтобы майн в зависимости от биома (или др. факторов) подбирал цвет для этой текстуры.
По крайней мере, в результате тестов
 
1. Твой блок - полный, потому майнкрафт не рендерит грань блока. Просто сделай свой блок неполным.
2. Он именно равен нулю (по дебаггеру), или независимо от значения получается вот такая картина?
Я в своём коде ориентировался на особенности FlowerBlock. потому для обычного блока эти особенности тоже необходимо учесть.


Если я не ошибаюсь, они отвечают за цвет не-цветных частей блока (tint), если модель это поддерживает. Пример - блок воды, котёл, листва, трава и т.д. Текстура в файлах у них белая (частично/полностью), чтобы майн в зависимости от биома (или др. факторов) подбирал цвет для этой текстуры.
По крайней мере, в результате тестов
Да, свет всегда равен нулю, я пробовал поставить вручную большие значения(255) и блок освещался, но в таком случае он всегда выглядит освящённым
 
Да, свет всегда равен нулю
Тогда тебе нужно рассчитывать освещение по-своему, раз майн сам не может рассчитать освещение для твоего блока.
На форуме forge была тема по данному вопросу, можешь попробовать поискать.

Однако, на мой взгляд, проблема заключается именно в том, что я делал всё для FlowerBlock, а ты применяешь эти же методы для Block. Просто посмотри в FlowerBlock и (в части отображения) сделай также, должно помочь.
 
Тогда тебе нужно рассчитывать освещение по-своему, раз майн сам не может рассчитать освещение для твоего блока.
На форуме forge была тема по данному вопросу, можешь попробовать поискать.

Однако, на мой взгляд, проблема заключается именно в том, что я делал всё для FlowerBlock, а ты применяешь эти же методы для Block. Просто посмотри в FlowerBlock и (в части отображения) сделай также, должно помочь.
Я поэкспериментировал, если поставить noCollision() в BlockBehaviour.Properties, то первая проблема пропадает, скорее всего это связанно с тем, что noCollision() ставит canOcclude на false, вторая проблема как-то сама решилась

P.S. теория подтвердилось noOcclusion() действительно фиксит первую проблему
 
Назад
Сверху