Рецепт переплавки

215
1
20
Плагином делал рецепт переплавки железных и золотых брони, инструментов, оружия в печи обратно в слитки металлов. Решил сделать такое модом (фрагмент ниже):
Код:
    GameRegistry.addSmelting(Items.iron_helmet, new ItemStack(Items.iron_ingot, 3), 0.5F); i++;
    GameRegistry.addSmelting(Items.iron_chestplate, new ItemStack(Items.iron_ingot, 4), 0.5F); i++;
    GameRegistry.addSmelting(Items.iron_leggings, new ItemStack(Items.iron_ingot, 4), 0.5F); i++;
    GameRegistry.addSmelting(Items.iron_boots, new ItemStack(Items.iron_ingot, 2), 0.5F); i++;
    GameRegistry.addSmelting(Items.iron_horse_armor, new ItemStack(Items.iron_ingot, 3), 0.5F); i++; // iron extra
    GameRegistry.addSmelting(Items.hopper_minecart, new ItemStack(Items.iron_ingot, 6), 0.5F); i++;
    GameRegistry.addSmelting(Items.chest_minecart, new ItemStack(Items.iron_ingot, 3), 0.5F); i++;
    GameRegistry.addSmelting(Items.command_block_minecart, new ItemStack(Items.iron_ingot, 3), 0.5F); i++;
    GameRegistry.addSmelting(Items.bucket, new ItemStack(Items.iron_ingot, 2), 0.5F); i++;
    GameRegistry.addSmelting(Blocks.heavy_weighted_pressure_plate, new ItemStack(Items.iron_ingot, 1), 0.5F); i++;
    GameRegistry.addSmelting(Items.minecart, new ItemStack(Items.iron_ingot, 3), 0.5F); i++;
    GameRegistry.addSmelting(Items.iron_door, new ItemStack(Items.iron_ingot, 3), 0.5F); i++;
    GameRegistry.addSmelting(ListItems.ironDoor, new ItemStack(Items.iron_ingot, 3), 0.5F); i++;
    GameRegistry.addSmelting(Blocks.anvil, new ItemStack(Items.iron_ingot, 16), 0.5F); i++;
    GameRegistry.addSmelting(Items.shears, new ItemStack(Items.iron_ingot, 1), 0.5F); i++;
    GameRegistry.addSmelting(Blocks.cauldron, new ItemStack(Items.iron_ingot, 4), 0.5F); i++;
    GameRegistry.addSmelting(Blocks.hopper, new ItemStack(Items.iron_ingot, 3), 0.5F); i++;
    GameRegistry.addSmelting(ListSlabs.goldSlab, new ItemStack(Items.gold_ingot, 2), 0.25F); i++; // gold
    GameRegistry.addSmelting(ListBlocks.goldStairs, new ItemStack(Items.gold_ingot, 8), 0.25F); i++;
    GameRegistry.addSmelting(ListTools.goldBow, new ItemStack(Items.gold_ingot, 2), 0.5F); i++;
    GameRegistry.addSmelting(Items.golden_pickaxe, new ItemStack(Items.gold_ingot, 2), 0.5F); i++;
    GameRegistry.addSmelting(Items.golden_axe, new ItemStack(Items.gold_ingot, 2), 0.5F); i++;
    GameRegistry.addSmelting(Items.golden_sword, new ItemStack(Items.gold_ingot, 1), 0.5F); i++;
    GameRegistry.addSmelting(Items.golden_hoe, new ItemStack(Items.gold_ingot, 1), 0.5F); i++;
    GameRegistry.addSmelting(ListTools.goldMultiTool, new ItemStack(Items.gold_ingot, 3), 0.5F); i++;
    GameRegistry.addSmelting(Items.golden_helmet, new ItemStack(Items.gold_ingot, 3), 0.5F); i++;
    GameRegistry.addSmelting(Items.golden_chestplate, new ItemStack(Items.gold_ingot, 4), 0.5F); i++;
    GameRegistry.addSmelting(Items.golden_leggings, new ItemStack(Items.gold_ingot, 4), 0.5F); i++;
    GameRegistry.addSmelting(Items.golden_boots, new ItemStack(Items.gold_ingot, 2), 0.5F); i++;
    GameRegistry.addSmelting(ListItems.goldDoor, new ItemStack(Items.gold_ingot, 3), 0.5F); i++;
    GameRegistry.addSmelting(ListItems.goldRDoor, new ItemStack(Items.gold_ingot, 3), 0.5F); i++;

Недавно только заметил, что переплавляет не только целые, но и поврежденные итемы. А когда рецепты задавал плагинами, плавились только целые. Как исправить это в моде?
 
Переделать инпуты (input) рецепта из Blocks и Items в ItemStack с ними.
Не это:
Код:
GameRegistry.addSmelting(Items.iron_leggings, new ItemStack(Items.iron_ingot, 4), 0.5F);
А это:
Код:
GameRegistry.addSmelting(new ItemStack(Items.iron_leggings), new ItemStack(Items.iron_ingot, 4), 0.5F);
Вроде как.
 
А разве не в ItemStack указывается метадата?

Items.iron_helmet --> new ItemStack(Items.iron_helmet, 1, 0)
 
timaxa007, спасибо, вопрос решен. Просто не подумал даже, что там есть отдельные методы для решения вопроса через ItemStack. :)
 
BlesseNtumble, смотри в код ItemStack'а.
Код:
new ItemStack(Items.iron_leggings)
Превратиться в:
Код:
new ItemStack(Items.iron_leggings, 1)
Затем превратиться в:
Код:
new ItemStack(Items.iron_leggings, 1, 0)
Как-бы вроде я по-проще объяснил.
Так что при этом коде:
Код:
new ItemStack(Items.iron_leggings)
Будет автоматически заполнять: количество одна штука и метадата равна нулю.
[merge_posts_bbcode]Добавлено: 15.02.2016 13:54:39[/merge_posts_bbcode]

Пожалуйста, LaoTheLizard.

[merge_posts_bbcode]Добавлено: 15.02.2016 13:57:03[/merge_posts_bbcode]

BlesseNtumble, просто у печки (и возможно крафт-стол) специфические заполняется рецепты.
Если просто указать предмет, то он будет обхватывать любую метадату предмета. Если указать ItemStack с этим предметом, то будет использовать определённую метадату из этого ItemStack'а.
 
Нет, не будет. Любую он будет использовать лишь при значении метадаты OreDictionary.WILDCARD_VALUE
 
Назад
Сверху