Крафт#
Создадим класс CraftingRegister.
public class CraftingRegister {
public static void register() {
registerRecipes("key");
}
private static void registerRecipes(String name) {
CraftingHelper.register(new ResourceLocation("tut", name), (IRecipeFactory) (context, json) -> CraftingHelper.getRecipe(json, context));
}
}
registerRecipes(name)- с помощью данного метода вы сможете гораздо быстрее прописывать регистрацию рецептов.tut- modId мода.
Перейдём в папку:
└── src
└── main
└── resources
└── assets
└── tut
└── recipes
И создадим в папке recipes файл key.json. (json - это формат файла!)
type- это тип крафта. Всего существует два вида:crafting_shaped- в этом типе крафта мы можем задать позицию крафта, т.е. предмет будет создан только если предметы содержатся на этих позициях.crafting_shapeless- в этом типе крафта блок/предмет может быть размещен на любой позиции в слотах крафта. Пример: мы можем положить в любой слот крафта сахарный тростник и получить сахар.pattern- это шаблон крафта, существует только уcrafting_shapedтипа.key- это ключи, существует только уcrafting_shapedтипа. Допустим мы указалиLв шаблоне, теперь нам нужно сказать игре, чтоL- это золотой слитокitem- это наш предмет. Указание modId обязательно!-
data- это метадата предмета. Если вам надо сделать, чтобы в сетку крафта можно было класть какой-то предмет, метадата которого не важна, напишите в поле data число 32767. Прошу заметить, что использовать это число, так называемое, WILDCARD_VALUE строго запрещено использовать для предмета, который будет в итоге создан. Внимание! Если вы хотите использовать к примеру белую шерсть, вам нужно указатьdata: 0в противном случаи, у вас не будет создаваться предмет/блок! -
ingredients- это ключи, существует только уcrafting_shapelessтипа. result- это результат крафта.item- это наш предмет. Указание modId обязательно!count- это число предметов, которое будет выдано при крафте. Допустим мы хотим, чтобы при крафте нам давался не один ключ, а пять. Значит нам нужно указатьcount: 5
Пример shaped крафта:
{
"type": "minecraft:crafting_shaped",
"pattern": [
" L ",
" L ",
" D "
],
"key": {
"L": {
"item": "tut:best_sword"
},
"D": {
"item": "minecraft:wool",
"data": 32767
}
},
"result": {
"item": "tut:key",
"count": 5
}
}
Пример shapeless крафта:
{
"type": "minecraft:crafting_shapeless",
"ingredients": [
{
"item": "minecraft:gold_ingot"
},
{
"item": "minecraft:dye",
"data": 11
}
],
"result": {
"item": "tut:key"
}
}
Так же некоторые из вас спрашивали на форуме "Как добавить свои рецепты в книгу рецептов?", отвечаем! Рецепты в книгу добавлять не нужно, Minecraft сам всё сделает, вам лишь нужно создать сам рецепт.