Как добавить крафт предмета в механизмах IC2

Версия Minecraft
1.7.10
API
Forge
Я написал аддон, добавляющий предметы, добавил библиотеки ic2 но как сделать регистрацию создания одного предмета из другого в механизме MetalFormer.addRollingRecipe "металлоформовочный механизм - прокатка" из IC2? Пожалуйста подскажите как решить эту проблему и тогда будет понятно как работать и с другими механизмами.
В minetweaker делается вот так, но мне нужно добавить регистрацию создания именно в свой мод. Как это сделать? Если я тупо скопирую код созданный для minetweaker в класс своего мода, то он не будет работать, тем более в нем нет регистрации. Вот представлен код для minetweaker
1696609672494.png
Вот мой код, который не работает:
package common.handler;

import cpw.mods.fml.common.registry.GameRegistry;
import ic2.api.recipe.IMachineRecipeManager;
import ic2.api.recipe.Recipes;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;

public class ModRecipes
{
    public static void registerRecipes()
    {  
    GameRegistry.addRecipe.metalformerRolling(Items.arrow, Items.beef);
    }
}
//Items.arrow и Items.beef взял для этого примера
 

Вложения

  • 1696609562075.png
    1696609562075.png
    35.4 KB · Просмотры: 1
1,038
57
229
ну вот же он есть на вашем скриншоте, добавьте его в import так же как остальные. У вас его тут нет, поэтому и ошибка. Пишите руками раз у вас Eclipse
1696664663791.png
 
355
26
97
Если я тупо скопирую код созданный для minetweaker в класс своего мода, то он не будет работать, тем более в нем нет регистрации.
Недопонятые гении. Код так не работает, грубо говоря, вы попытались, например, скопировать код на C++ и выдать его за код JavaScript. Скрипты MineTweaker пишутся на ZenScript, мод, в вашем случае, на Java.
Как это сделать?
Судя по прошлым попыткам и кодом выше, то знаний ЯП явно не хватает, поэтому начать с его изучения. А дальше посмотреть, как в IC2 добавляются рецепты, как правило, всегда подходит тот же способ, что использует сам мод.
 
1,038
57
229
Мне не удобно бегать туда сюда
1696665691564.png
название какое? ic2.api.recipe.IMachineReciepeManager
мне кажется вы что то пропустили. Чат выдал код видимо от другой версии. Ведь их много. Его конечно можно попросить выдать нужную, но это надо сделать Вам, а не мне.
Так что возвращаемся к первоначальному варианту с IRecipeInput
я по прежнему жду окружение, потому что мне не видно с чем вы работаете и такой среды как 1.7.10 у меня просто нет.
 
код:
package common.handler;

import java.util.Collection;

import cpw.mods.fml.common.registry.GameRegistry;
import ic2.api.recipe.IRecipeInput;
import ic2.api.recipe.RecipeInputItemStack;
import ic2.api.recipe.Recipes;
import ic2.core.Ic2Items;
import net.minecraft.block.Block;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import ic2.api.recipe.IMachineRecipeManager;

public class ModRecipes
{
    public static void registerRecipes()
    {       
      //GameRegistry.addShapedRecipe(new ItemStack(ModItems.INFINITY_SWORD), "XYX", "XYX", "XZX", 'X', Items.apple,'Z',ModItems.apple,'Y',ModItems.apple);
        
        GameRegistry.addShapedRecipe(new ItemStack(ModItems.INFINITY_FUEL), " Y ", " Y ", " Z ", 'Z',ModItems.INFINITY_IHOR,'Y',ModItems.SENSOR); // форменный рецепт
        
        GameRegistry.addShapelessRecipe(new ItemStack(ModItems.INFINITY_IHOR), Items.iron_ingot, plcar, rotorblade); // бесформенный рецепт
        
        GameRegistry.addSmelting(ModItems.INFINITY_IHOR, new ItemStack(ModItems.SENSOR), 435.5F); //рецепт для печи
        
    /*        GameRegistry.addShapedRecipe(Ic2Items.diamondDrill.copy(),
                "DDD",
                "DBD",
                " A ",
                'D', Items.diamond,
                'B', Ic2Items.reactorAccessHatch,
                'A', Ic2Items.insulatedGoldCableItem);
            
            */       
    }   
            
    static void addMachineRecipe()
     {   
        ItemStack inputStack = new ItemStack(Items.carrot);
        ItemStack[] outputStacks = {new ItemStack(Items.book)};
        Recipes.metalformerRolling.addRecipe(inputStack, null, outputStacks);
        
     }
        
    
     private static void addCompressorRecipe(IRecipeInput input, ItemStack output)
     {
         Recipes.compressor.addRecipe(input, (NBTTagCompound)null, new ItemStack[] {output});
     }
    
     private static void addMaceratorRecipe(IRecipeInput input, ItemStack output)
     {
         ic2.api.recipe.Recipes.macerator.addRecipe(input, (NBTTagCompound)null, new ItemStack[] {output});
     }
    
     private static void addExtractorRecipe(IRecipeInput input, ItemStack output)
     {
         ic2.api.recipe.Recipes.extractor.addRecipe(input, (NBTTagCompound)null, new ItemStack[] {output});
     }
    
    
     private static void addRollingRecipe(IRecipeInput input, ItemStack output)
     {
         ic2.api.recipe.Recipes.metalformerRolling.addRecipe(input, (NBTTagCompound)null, new ItemStack[] {output});
     }
    
     private static void addCuttingRecipe(IRecipeInput input, ItemStack output)
     {
         ic2.api.recipe.Recipes.metalformerCutting.addRecipe(input, (NBTTagCompound)null, new ItemStack[] {output});
     }
    
     private static void addExtrudingRecipe(IRecipeInput input, ItemStack output)
     {
         ic2.api.recipe.Recipes.metalformerExtruding.addRecipe(input, (NBTTagCompound)null, new ItemStack[] {output});
     }
    
        public static final ItemStack plcar   =      Ic2Items.advbatPack.copy();
        public static final ItemStack coins   =       Ic2Items.advminer.copy();
        public static final ItemStack u235       =      Ic2Items.advironblock.copy();
        public static final ItemStack irpart  =        Ic2Items.batBox.copy();
        public static final ItemStack rawcarbon =     Ic2Items.blockBarrel.copy();
        public static final ItemStack rotorblade =  Ic2Items.canner.copy();
        public static final Block ladder = Block.getBlockById(65);
        public static final Block bars   = Block.getBlockById(101);
        public static final Block slime  = Block.getBlockById(165);
    
}
 
1,038
57
229
ctrl + shif + f, или ctrl+shift+h

и там ищем во всех файлах кто использует IRecipeInput
должно быть что то типо
public class BlahBlah implements IRecipeInput

ИЛИ перейти в Recipies.metalformerRolling, ПКМ по merlformerRolling и выбрать Find Usage или там "все классы которые его вызывают". Чтобы у нас был хоть 1 пример его использования.
 
Последнее редактирование:
1,038
57
229
у меня не работает ваша среда разработки, даже если убрать весь мод. Он не компилирует пустой проект.
Вы хотя бы 1 мод собрали на ней? Игра запускается? Просто как вы потом будете собирать его.
 
445
42
117
1) Выучи Java и свою среду разработки
я понятия не имею откуда, с каких подробных источников вы черпаете информацию что вам всё понятно
2) Источник 1 - копаем код майна. Часами ... Днями. Либо лично, либо пользуемся опытом ,,других копателей,, - собственно для этого этот форум и создан. Собственно в этих раскопках и есть ответы на все вопросы. Другое дело (пункт 1) у тебя не хватает знаний, чтобы копать, или даже прожевать, то что до тебя откопали
 
у меня не работает ваша среда разработки, даже если убрать весь мод. Он не компилирует пустой проект.
Вы хотя бы 1 мод собрали на ней? Игра запускается? Просто как вы потом будете собирать его.
Да игра запускается на ней и компиллируется, скомпиллированные моды свободно работают в других сборках.
 
у меня не работает ваша среда разработки, даже если убрать весь мод. Он не компилирует пустой проект.
Вы хотя бы 1 мод собрали на ней? Игра запускается? Просто как вы потом будете собирать его.
но я удалил папку items в которой находилось 190 текстур айтемов, чтобы уменьшить размер архива и побыстрее отправить
 
1,038
57
229
Последнее редактирование:
Работает!!!
1696694177294.png

если кому будет интересно, то работает при регистрации в
init или в postInit. Прикреплю финальный рабочий код.
it works:
package common.handler;

import java.util.Collection;

import cpw.mods.fml.common.registry.GameRegistry;
import ic2.api.recipe.IRecipeInput;
import ic2.api.recipe.RecipeInputItemStack;
import ic2.api.recipe.Recipes;
import ic2.core.Ic2Items;
import net.minecraft.block.Block;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import ic2.api.recipe.IMachineRecipeManager;

public class ModRecipes {
    public static void registerRecipes()
    {
        IMachineRecipeManager manager = Recipes.metalformerRolling;
        manager.addRecipe(new RecipeInputItemStack(new ItemStack(ModItems.eapowerenergyingot)), null, new ItemStack(ModItems.eapowerenergyplate));
    }                                                                 //INPUT                                               //OUTPUT
}
 
Сверху