Использование при крафте nbt

Версия Minecraft
1.7.10
1,374
113
241
На этот раз не могу понять, как добавить нбт при крафте.
 
Решение
Вроде в другой теме я тебе писал, ну да ладно, примерно так:
Java:
ItemStack output = new ItemStack(Blocks.clay);
NBTTagCompound nbt = new NBTTagCompound();
nbt.setInteger("CordX", 123);
output.setTagCompound(nbt);

GameRegistry.addShapelessRecipe(output, new Object[]{
        new ItemStack(Blocks.dirt),
        new ItemStack(Blocks.sand),
        new ItemStack(Items.water_bucket),
});

timaxa007

Модератор
5,831
409
672
Если ты имеешь виду на выход, то выход ItemStack. Создаешь переменную ItemStack, даёшь ему NBT с нужным значением и даёшь на выход.
А если использовать в качестве ингредиента, то нужно создать отдельный класс
public class MyRecipe implements IRecipe {
использовать нужные методы (пример бери из ванильных рецептов) и регистрировать примерно так:
GameRegistry.addRecipe(new MyRecipe());
 

timaxa007

Модератор
5,831
409
672
Вроде в другой теме я тебе писал, ну да ладно, примерно так:
Java:
ItemStack output = new ItemStack(Blocks.clay);
NBTTagCompound nbt = new NBTTagCompound();
nbt.setInteger("CordX", 123);
output.setTagCompound(nbt);

GameRegistry.addShapelessRecipe(output, new Object[]{
        new ItemStack(Blocks.dirt),
        new ItemStack(Blocks.sand),
        new ItemStack(Items.water_bucket),
});
 
1,374
113
241
Проблема решена. Достаточно было добавить нбт при самом крафте. Вот так:
Java:
GameRegistry.addRecipe(ПРДЕМЕТ.addNBT(ПРДЕМЕТ(его переменная в главном классе), ПРЕДМЕТ.ПУТЬ_К_НБТ.НБТ), new Object[] {
                "LWL", "SLS", "LWL", ('L'), Items.leather, ('W'), Blocks.chest, ('S'),Items.string
        });
 
Сверху