- 1,031
- 19
- 87
При написании своего мода использовал сразу несколько туториалов и заметил, что есть две возможных регистрации для предметов\блоков, на этом учебнике вот такая:
Потом в эту регистрацию отправить в CommonProxy в метод preInit.
А вот альтернативная:
Здесь сначала в ядре мода идёт добавление в шину событий регистров как предметов так и блоков вместе с рендерами
Вопрос: есть ли какая-то весомая разница между этими двумя регистрациями, если обе отлично работают? Может какая-то устарела, или производительней или удобней?
Java:
public static Item NewItem = new NewItem("registry_name");
public static void register() {
setRegister(NewItem);
}
@SideOnly(Side.CLIENT)
public static void registerRender() {
setRender(NewItem);
}
private static void setRegister(Item item) {
ForgeRegistries.ITEMS.register(item);
}
@SideOnly(Side.CLIENT)
private static void setRender(Item item) {
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory"));
}
А вот альтернативная:
Здесь сначала в ядре мода идёт добавление в шину событий регистров как предметов так и блоков вместе с рендерами
Код:
@EventBusSubscriber
public static class RegistrationHandler {
@SubscribeEvent
public static void registerItems(RegistryEvent.Register<Item> event) {
RegisterItems.register(event.getRegistry());
}
@SubscribeEvent
public static void registerItems(ModelRegistryEvent event) {
RegisterItems.registerModels();
}
}
Код:
public static Item NewItem = new NewItem("registry_name");
public static void register(IForgeRegistry<Item> registry) {
registry.register(NewItem);
}
public static void registerModels() {
NewItem.registerItemModel();
}