Регистрация модели предмета через ModelLoader

Версия Minecraft
1.10.2
154
17
97
А вопрос вот в чем, как правильно использовать ивент ModelRegistryEvent, и можно ли вообще это делать на данной прекрасной версии, если он стартует даже до преинициализации (FMLPreInitializationEvent) мода? Проблема в том, что необходимо зарегистрировать модель предмета-блока, но при вызове Item.getItemFromBlock(block) вылетает NullPointerException, ибо ни блоков, ни предметов еще нет в геймрегистре.

Для модели примерно такой код :
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(block), 0, new ModelResourceLocation(block.getRegistryName(), "inventory"));
 
3,005
192
592
Юзаю данный эвент в 1.11.2 - все работает прекрасно.
Но, там есть net.minecraftforge.event.RegistryEvent, который запускается раньше него.
~~~
Попробуй просто в место этого эвента юзать FMLInitializationEvent и туда впихивать этот же код.
 
154
17
97
Ладно, проблема в принципе решилась использованием другого метода регистрации
mc.getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(block), 0, new ModelResourceLocation(block.getRegistryName(), "inventory"));
на стороне клиентской прокси. Видимо ModelLoader и ивенты регистра еще слишком сырые на 1.10.2
 

Icosider

Kotliner
Администратор
3,603
99
664
Не используй итемМодель мешер, моделЛоадер + ModelRegistryEvent. Регистр эвент срабатывает раньше, так как нужно в начале регать предмет и при регистрации моделей в этом событии есть вероятность получить ошибку.
 
Последнее редактирование:

Icosider

Kotliner
Администратор
3,603
99
664
На 1.10.2 Регистр эвент вообще не срабатывает)
Потому что его ещё тогда не доделали и приходится использовать стандартные методы регистрации через метод, добавляя тот в преИнициализацию. На 1.10 тогда делай так: регистрация -> как обычно, регистрация моделей через ModelRegistryEvent
 
154
17
97
ModelRegistryEvent так же сырой, ибо
как правильно использовать ивент ModelRegistryEvent, и можно ли вообще это делать на данной прекрасной версии, если он стартует даже до преинициализации (FMLPreInitializationEvent) мода?
В любом случае на решение уже не влияет
 

Icosider

Kotliner
Администратор
3,603
99
664
ModelRegistryEvent так же сырой, ибо
В любом случае на решение уже не влияет
Так или иначе, то что я описал, как нужно делать будет работать вплоть до 1.12.2, а то что вы(некий круг лиц) сидите на 1.10, уже никого не волнует, так как версия устарела и больше не поддерживается(частично поддерживается, только теперь обновления будут раз в пол года). Так что лучше перейти на более новую версию.
 
Сверху