RingoWay Developer

RingoWay Developer 

Разработчик майнкрафт модов

70subscribers

44posts

goals1
6 of 100 paid subscribers
Лекции по NeoForge 1.21.10

Создание первого предмета. 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
Если вы вдруг скопировали это, то вам необходимо импортировать нужные классы, для этого наведитесь на то, что горит красным и нажмите Alt+Enter.
Всё, что мы писали до этого, это необходимые меры, для создания первого предмета. Ведь теперь вы начинаете создавать свой первый предмет!
Далее происходит регистрация предмета. Вы пишите public static final (кстати если написать psf то это шорткат для мгновенного написания ключевых слов выше) и пишите RegistryObject, что означает регистрация объекта. В стрелочках указываем тип регистрируемого объекта, в нашем случае это Item и после обязательно капсом указываете название предмета, на английском, а в случае пробелов нужно использовать знак прочерка - 
public static final RegistryObject<Item> EXAMPLE_ITEM.
Далее повторяете всё, как на картинке снизу, в ковычках указываем айди предмета, айди должен быть равен нашей переменной, но написанной нижним регистром.
Далее нам необходимо осталось создать один специальный метод, который необходим для регистрации класса в нашем моде. 
2. Добавление нового предмета в TutorialMod.java
Теперь откроем файл TutorialMod.java и зарегистрируем наш класс с предметами.
Пример добавления регистрации предметов:
Находим конструктор TutorialMod() и пишем: 
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, только уже на русском:
4. Текстура предмета
Теперь необходимо создать изображение предмета. Оно должно быть размером 16x16 пикселей (либо любой другой размер, но главное соотношение 1:1) и сохранено в формате PNG. Файл нужно поместить по следующему пути (создаём папки textures и item):
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); }}
Будет выглядеть примерно так:
Через ModItems и точку указываем название переменной нашего предмета. А также вы можете указать любую вкладку креатива через CreativeModeTabs.
Вот как:
Теперь запускаем игру, для этого справа есть панель и находим runClient:
Теперь заходим в мир, находим нашу вкладку и вуаля, предмет готов
В следующем посте будет написана инструкция как создать свою вкладку креатива!
Subscription levels4

🌱Junior Dev

$3.7 per month
Начало пути в моддинге

Включено:
✅ Базовые лекции по моддингу
✅ Шаблоны и примеры кода (Github)
✅ Приватный Telegram-чат "Сообщество мододелов"
✅ Роль "🌱Junior Dev" в Discord
+ chat

🛠️Middle Dev

$5.4 per month
Практикующий моддер

Включено:
✅ Всё из уровня «Junior Dev»
✅ Продвинутые лекции по моддингу
✅ Роль "🛠️Middle Dev" в Discord
+ chat

🎓Senior Dev

$7.7 per month
Опытный разработчик

Включено:
✅ Всё из уровня «Middle Dev»
✅ Большая благодарность!
✅ В будущем будут расширенные лекции 
✅ Роль "🎓Senior Dev" в Discord
+ chat

🎓Architect Dev

$13.4 per month
Опытный разработчик

Включено:
✅ Всё из уровня «Senior Dev»
✅ Огромная благодарность!
✅ В будущем будут расширенные лекции 
✅ Роль "🎓Architect Dev" в Discord
+ chat
Go up