Проблема с отображением иконок предметов — показывается только одна текстура

Версия Minecraft
1.12.2
API
Forge
Всем привет! Я разрабатываю мод на Minecraft 1.12.2 на Forge, и столкнулся с довольно странной проблемой — у предметов не отображаются иконки, точнее: только у одного предмета отображается иконка, а у остальных — фиолетово-чёрная текстура.
Что работает:
- Один предмет отображается корректно.
- Мод загружается без крашей.

Что я сделал:
1. Регистрация предметов:
Java:
public static final Item KUNAI = new ItemKunai()
        .setUnlocalizedName("kunai")
        .setRegistryName("kunai");

public static final Item SHADOW_CLONE_JUTSU = new ItemShadowCloneJutsu()
        .setUnlocalizedName("shadow_clone_jutsu")
        .setRegistryName("shadow_clone_jutsu");
2. Регистрация моделей:
Java:
@SideOnly(Side.CLIENT)
private static void registerModel(Item item) {
    ModelLoader.setCustomModelResourceLocation(
        item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory")
    );
}

@Override
@SideOnly(Side.CLIENT)
public void preInit(FMLPreInitializationEvent event) {
    registerModel(ModItems.KUNAI);
    registerModel(ModItems.SHADOW_CLONE_JUTSU);
}
3. JSON-файлы:
Java:
{
  "parent": "item/generated",
  "textures": {
    "layer0": "modid:items/kunai"
  }
}
Java:
{
  "parent": "item/generated",
  "textures": {
    "layer0": "modid:items/shadow_clone_jutsu"
  }
}
PNG-файлы:
Swift:
assets/modid/textures/items/kunai.png
assets/modid/textures/items/shadow_clone_jutsu.png
Что я заметил:
Если поменять местами регистрацию моделейregisterModel(...), то иконка появляется у другого предмета, причем не та, которая должна быть.
Вопрос:
Кто сталкивался с такой проблемой? Почему только одна иконка отображается, а остальные — нет?
Спасибо всем, кто откликнется 🙏
 
В место modid нужно писать id твоего мода (например ultranarutomod) в ассетах тоже.
Мне б еще на регистрацию предметов посмотреть.
Вот класс регистрации предметов:
ModItems.java:
@Mod.EventBusSubscriber
public class ModItems {

    public static final Item KUNAI = new ItemKunai()
            .setUnlocalizedName("kunai")
            .setRegistryName("kunai");

    public static final Item SHADOW_CLONE_JUTSU = new ItemShadowCloneJutsu()
            .setUnlocalizedName("shadow_clone_jutsu")
            .setRegistryName("shadow_clone_jutsu");

    @SubscribeEvent
    public static void registerItems(RegistryEvent.Register<Item> event) {
        event.getRegistry().registerAll(
                KUNAI,
                SHADOW_CLONE_JUTSU
        );
    }
}
MODID у меня "shinobire", просто прежде чем сюда скинуть поменял на такое🙃
Я только начинаю разрабатывать моды и пока не во всём разбираюсь, поэтому, возможно, что-то делаю не так.
Если что-то ещё нужно скинуть — скажите, покажу всё, что потребуется. Заранее спасибо за помощь 🙌
 
Попробуй регистрацию моделек перенести в
Java:
@SubscribeEvent
public static void onModelRegister(ModelRegistryEvent event) {
    ...
}
ОГРОМНОЕ СПАСИБО!

Ты просто спас меня — я реально уже третий день бился с этой проблемой и никак не мог понять, что не так… А вот эта идея с ModelRegistryEvent всё решила!

Теперь все иконки отображаются, ничего не путается, текстуры прогружаются корректно!
Я очень рад, что написал сюда и получил такую полезную подсказку 💛🍌

Спасибо тебе ещё раз!
 
Назад
Сверху