Список уроков
Урок четвертый. Добавляем предмет!
В прошлом уроке мы добавили свой собственный блок в Minecraft! Воодушевляет? Не сомневаюсь! Вот только одна беда, модели у него все еще нет и потому выглядит он как какой-то непонятный ящик со страшненькой текстурой. Игра в логах так же не оставляет это без внимания, и при загрузке можно увидеть ошибку FileNotFoundException.
[18:15:15] [Server-Worker-4/WARN] [minecraft/ModelBakery]: Unable to load model: ‘tutorial_mod_gs:sausage#inventory’ referenced from: tutorial_mod_gs:sausage#inventory: java.io.FileNotFoundException: tutorial_mod_gs:models/item/sausage.json
Она указывает, что игра не смогла найти соответствующей нашему предмету модель. Пора это исправить.
Файлы моделей — json файлики. Полный путь к каждому должен быть таким: —src/main/resources/assets/YOUR_MODID/models/item/YOUR_MODEL.json.
Как вы догадались, ресурсы — особый вид данных внутри программы. К ним относят картинки, аудио, текстовые документы и так далее. В том числе и json модели, рецепты, состояния блоков и файлы локализации.
Из заданного пути у вас уже есть папка resources, а значит нужно создать внутри assets, папку с id мода, models, item, и уже только в последней файл в формате .json.
Так как для примера я создал предмет sausage, то его мой файл будет таким sausage.json.
А полный путь для примера будет таким: src/main/resources/assets/tutorial_mod_gs/models/item/sausage.json.
В файл sausage.json напишем такой код:
1 2 3 4 5 6 |
{ "parent": "item/generated", "textures": { "layer0": "tutorial_mod_gs:item/sausage" } } |
Тут используем максимально простую модель. Значение для «parent»: «item/generated» указывает игре, что мы хотим использовать плоскую модель предмета. Большинство предметов в игре её и используют. А «layer0»: «tutorial_mod_gs:item/sausage» указывает имя текстуры нашего предмета. layer0 используется в указанной нами плоской модели. Там же снова указан наш mod id. Это нужно игре, чтобы знать, а где именно искать эту текстуру? В нашем моде? В каком-то другом? А может быть в самом майнкрафте?
Отлично, модель написали, текстуру указали. Но не спешим запускать, ведь фактически текстуры еще нет. Путь к ней должен быть таким: src/main/resources/assets/tutorial_mod_gs/textures/item/sausage.png. Как видите, путь аналогичен модели, но вместо папки models мы идем в textures. Текстуры должны быть квадратными, сам майнкрафт использует размер текстуры 16×16. И обязательно .png.
Если все создали, добавили, правильно подписали и написали — запускаем. Текстура появилась? У меня да! 😀
Да, только сейчас подумал, как же сильно она похожа не на сосиску… Нужно будет перерисовать. Но урок у нас не о том, как рисовать сосиски или вообще текстуры, а потому будем считать это успехом!
На этом пока все, спасибо за внимание. Дальше будет интереснее!