Создание первого предмета. Forge 1.20.1 #2
Привет! В этом посте я расскажу, как создать первый предмет для твоего Minecraft мода и добавить его во вкладку из ванильного Minecraft. Мы пройдем все шаги: от создания классов до настройки нужных файлов.
1. Создание класса ModItems
Первым делом нам нужно создать класс, где будет регистрироваться новый предмет. Это делается в Java-коде. Для этого создадим новую папку items в папке tutorialmod (com/tutorial/tutorialmod). Далее необходимо создать класс ModItems, в котором будут находится все наши обычные предметы.
Структура папок:
Структура папок:
src/main/java/com/tutorial/tutorialmod/items/ModItems
В данный момент класс выглядит так:
В данный момент класс выглядит так:
Далее нам необходимо создать переменную ITEMS, с помощью которой мы будем регистрировать наши предметы.
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TutorialMod.MOD_ID);
Вместо TutorialMod.MOD_ID, пишите название своего класса, если он у вас другой и обращение к переменной MOD_ID
Вместо TutorialMod.MOD_ID, пишите название своего класса, если он у вас другой и обращение к переменной MOD_ID
Если вы вдруг скопировали это, то вам необходимо импортировать нужные классы, для этого наведитесь на то, что горит красным и нажмите Alt+Enter.
Всё, что мы писали до этого, это необходимые меры, для создания первого предмета. Ведь теперь вы начинаете создавать свой первый предмет!
Далее происходит регистрация предмета. Вы пишите public static final (кстати если написать psf то это шорткат для мгновенного написания ключевых слов выше) и пишите RegistryObject, что означает регистрация объекта. В стрелочках указываем тип регистрируемого объекта, в нашем случае это Item и после обязательно капсом указываете название предмета, на английском, а в случае пробелов нужно использовать знак прочерка -
public static final RegistryObject<Item> EXAMPLE_ITEM.
Далее повторяете всё, как на картинке снизу, в ковычках указываем айди предмета, айди должен быть равен нашей переменной, но написанной нижним регистром.
public static final RegistryObject<Item> EXAMPLE_ITEM.
Далее повторяете всё, как на картинке снизу, в ковычках указываем айди предмета, айди должен быть равен нашей переменной, но написанной нижним регистром.
Далее нам необходимо осталось создать один специальный метод, который необходим для регистрации класса в нашем моде.
2. Добавление нового предмета в TutorialMod.java
Теперь откроем файл TutorialMod.java и зарегистрируем наш класс с предметами.
Пример добавления регистрации предметов:
Пример добавления регистрации предметов:
Находим конструктор TutorialMod() и пишем:
ModItems.register(modEventBus);
ModItems.register(modEventBus);
3. Создание JSON-файлов
Для отображения предмета в игре необходимо создать два JSON-файла: один для модели предмета, а второй для его перевода. Эти файлы должны находиться в следующих папках, находим папку resources.
То есть необходимо создать папку assets, далее папку tutorialmod (он должен совпадать со всем тем, что бы делали до этого, а также с айди мода MOD_ID), далее создаём две папки models и lang. В models создаём папку item. Далее ПКМ по папке, наводимся на New -> File и прописываем айди_предмета.json. В папке lang создаём en_us.json.
Так выглядит путь созданных наших файлов:
src/main/resources/assets/tutorialmod/models/item/example_item.json
src/main/resources/assets/tutorialmod/lang/en_us.json
a) Модель предмета (example_item.json):
Этот файл определяет, как будет выглядеть предмет в инвентаре. Его необходимо поместить в папку models/item/. Пишем ровно также, как и на скриншоте. где "layer0" : "пишем айди мода:item/айди предмета".
b) Перевод (en_us.json):
В файле lang/en_us.json будет находиться название предмета для отображения в игре. Пример:
Думаю тут интуитивно понятно, что вместо tutorialmod айди вашего мода, а вместо example_item айди вашего предмета. Через двоеточие указываем название предмета на английском.
Далее, если вы хотите, чтобы ваш предмет был на русском при переключении языка в майнкрафте на русский. То в этой же папке создаём файл ru_ru.json. И оформляем все также как в en_us.json, только уже на русском:
Далее, если вы хотите, чтобы ваш предмет был на русском при переключении языка в майнкрафте на русский. То в этой же папке создаём файл ru_ru.json. И оформляем все также как в en_us.json, только уже на русском:
4. Текстура предмета
Теперь необходимо создать изображение предмета. Оно должно быть размером 16x16 пикселей (либо любой другой размер, но главное соотношение 1:1) и сохранено в формате PNG. Файл нужно поместить по следующему пути (создаём папки textures и item):
src/main/resources/assets/tutorialmod/textures/item/example_item.png
src/main/resources/assets/tutorialmod/textures/item/example_item.png
5. Регистрация вкладки Creative Mode Tab
Если ты хочешь добавить предмет во вкладку креатива для этого необходимо найти метод private void addCreative() в главном классе TutorialMod
И пишем следующий код:
private void addCreative(BuildCreativeModeTabContentsEvent event){ if (event.getTabKey() == CreativeModeTabs.INGREDIENTS) { event.accept(ModItems.EXAMPLE_ITEM); }}
И пишем следующий код:
private void addCreative(BuildCreativeModeTabContentsEvent event){ if (event.getTabKey() == CreativeModeTabs.INGREDIENTS) { event.accept(ModItems.EXAMPLE_ITEM); }}
Будет выглядеть примерно так:
Через ModItems и точку указываем название переменной нашего предмета. А также вы можете указать любую вкладку креатива через CreativeModeTabs.
Вот как:
Вот как:
Теперь запускаем игру, для этого справа есть панель и находим runClient:
Теперь заходим в мир, находим нашу вкладку и вуаля, предмет готов
В следующем посте будет написана инструкция как создать свою вкладку креатива!
майнкрафт моды
на forge
версия 1.20.1