mezz.jei.api.ingredients.IIngredients Java Examples

The following examples show how to use mezz.jei.api.ingredients.IIngredients. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: GTJeiMagicFuelWrapper.java    From GT-Classic with GNU Lesser General Public License v3.0 6 votes vote down vote up
@SuppressWarnings("deprecation")
@Override
public void getIngredients(IIngredients ingredients) {
	ArrayList<FluidStack> inputFluids = new ArrayList<>();
	ArrayList<ItemStack> inputItems = new ArrayList<>();
	for (IRecipeInput input : multiRecipe.getInputs()) {
		if (input instanceof RecipeInputFluid) {
			inputFluids.add(((RecipeInputFluid) input).fluid);
		} else {
			inputItems.addAll(input.getInputs());
		}
	}
	if (!inputFluids.isEmpty()) {
		ingredients.setInputs(FluidStack.class, inputFluids);
	}
	ingredients.setInputs(ItemStack.class, inputItems);
	ingredients.setOutputs(ItemStack.class, multiRecipe.getOutputs().getAllOutputs());
}
 
Example #2
Source File: ShapedRecipeWrapper.java    From customstuff4 with GNU General Public License v3.0 6 votes vote down vote up
@Override
public void getIngredients(IIngredients ingredients)
{
    IStackHelper stackHelper = jeiHelpers.getStackHelper();
    ItemStack recipeOutput = recipe.getRecipeOutput();

    try
    {
        List<List<ItemStack>> inputs = stackHelper.expandRecipeItemStackInputs(recipe.getIngredients());
        ingredients.setInputLists(ItemStack.class, inputs);
        ingredients.setOutput(ItemStack.class, recipeOutput);
    } catch (RuntimeException e)
    {
        e.printStackTrace();
    }
}
 
Example #3
Source File: FluidRecipeJEI.java    From Wizardry with GNU Lesser General Public License v3.0 6 votes vote down vote up
@Override
public void getIngredients(@Nonnull IIngredients ingredients) {
	List<List<ItemStack>> stacks = Lists.newArrayList();
	stacks.add(Lists.newArrayList(builder.getMainInput().getMatchingStacks()));
	for (Ingredient ingredient : builder.getInputs())
		stacks.add(Lists.newArrayList(ingredient.getMatchingStacks()));

	if (!isFluidOutput())
		for (List<ItemStack> stackList : stacks)
			stackList.removeIf(Ingredient.fromStacks(builder.getOutput())::apply);

	ingredients.setInputLists(ItemStack.class, stacks);
	ingredients.setInput(FluidStack.class, new FluidStack(builder.getFluid(), 1000));

	if (isFluidOutput())
		ingredients.setOutput(FluidStack.class, builder.getFluidOutput());
	else
		ingredients.setOutput(ItemStack.class, builder.getOutput());
}
 
Example #4
Source File: OreByProductCategory.java    From GregTech with GNU Lesser General Public License v3.0 6 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, OreByProduct recipeWrapper, IIngredients ingredients) {
	IGuiItemStackGroup itemStackGroup = recipeLayout.getItemStacks();
	itemStackGroup.init(0, true,  22,  29); //Ore
	itemStackGroup.init(1, true,  70,  19); //Crushed
	itemStackGroup.init(2, true,  88,  19); //Crushed Prurified
	itemStackGroup.init(3, true, 106,  19); //Crushed Centfiguged
	itemStackGroup.init(4, true,  70,  37); //Dust Impure
	itemStackGroup.init(5, true,  88,  37); //Dust Purified
	itemStackGroup.init(6, true, 106,  37); //Dust
	
	for(int i = 0; i < recipeWrapper.getOutputCount();i++)
		itemStackGroup.init(i + 7, false, 70 + (i * 18), 59);
	
	itemStackGroup.addTooltipCallback(recipeWrapper::addTooltip);
	itemStackGroup.set(ingredients);
}
 
Example #5
Source File: FluidCraftingCategory.java    From Wizardry with GNU Lesser General Public License v3.0 6 votes vote down vote up
@Override
public void setRecipe(@Nonnull IRecipeLayout recipeLayout, @Nonnull FluidRecipeJEI recipeWrapper, @Nonnull IIngredients ingredients) {
	recipeLayout.getItemStacks().init(0, true, 0, 13);
	recipeLayout.getFluidStacks().init(0, true, 30, 14);

	recipeLayout.getItemStacks().init(1, true, 11, 46);
	recipeLayout.getItemStacks().init(2, true, 29, 46);
	recipeLayout.getItemStacks().init(3, true, 47, 46);
	recipeLayout.getItemStacks().init(4, true, 11, 64);
	recipeLayout.getItemStacks().init(5, true, 29, 64);
	recipeLayout.getItemStacks().init(6, true, 47, 64);
	recipeLayout.getItemStacks().init(7, true, 11, 82);
	recipeLayout.getItemStacks().init(8, true, 29, 82);
	recipeLayout.getItemStacks().init(9, true, 47, 82);


	if (recipeWrapper.isFluidOutput())
		recipeLayout.getFluidStacks().init(1, false, 59, 14);
	else
		recipeLayout.getItemStacks().init(10, false, 58, 13);

	recipeLayout.getItemStacks().set(ingredients);
	recipeLayout.getFluidStacks().set(ingredients);
}
 
Example #6
Source File: ProduceRecipeCategory.java    From AgriCraft with MIT License 6 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, ProduceRecipeWrapper recipeWrapper, IIngredients ingredients) {
    // Setup Inputs
    recipeLayout.getItemStacks().init(0, true, 15, 28);
    recipeLayout.getItemStacks().init(1, true, 15, 54);
    recipeLayout.getItemStacks().init(2, true, 15, 75);

    // Setup Outputs
    int index = 2;

    for (int y = 12; y < 62; y += 18) {
        for (int x = 74; x < 128; x += 18) {
            recipeLayout.getItemStacks().init(++index, false, x, y);
        }
    }

    // Set ItemStacks
    recipeLayout.getItemStacks().set(ingredients);
}
 
Example #7
Source File: MachineRecipeWrapper.java    From customstuff4 with GNU General Public License v3.0 6 votes vote down vote up
@Override
public void getIngredients(IIngredients ingredients)
{
    List<Object> inputs = Lists.newArrayList();
    for (RecipeInput input : recipe.getRecipeInput())
    {
        if (input.isOreClass())
            inputs.add(input.getOreClass().getOreName());
        else
            inputs.add(input.getStack().getItemStack().copy());
    }

    ingredients.setInputLists(ItemStack.class, jeiHelpers.getStackHelper().expandRecipeItemStackInputs(inputs));
    ingredients.setInputs(FluidStack.class, recipe.getFluidRecipeInput());

    ingredients.setOutputs(ItemStack.class, output.getOutputItems());
    ingredients.setOutputs(FluidStack.class, output.getOutputFluids());
}
 
Example #8
Source File: CraftingRecipeCategory.java    From customstuff4 with GNU General Public License v3.0 6 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, IRecipeWrapper recipeWrapper, IIngredients ingredients)
{
    super.setRecipe(recipeLayout, recipeWrapper, ingredients);

    IGuiItemStackGroup stacks = recipeLayout.getItemStacks();

    List<List<ItemStack>> inputItems = ingredients.getInputs(ItemStack.class);
    List<List<ItemStack>> outputItems = ingredients.getOutputs(ItemStack.class);

    initItems(stacks, true, module.rows * module.columns, 0);
    initItems(stacks, false, 1, module.rows * module.columns);

    if (recipeWrapper instanceof IShapedCraftingRecipeWrapper)
    {
        IShapedCraftingRecipeWrapper wrapper = (IShapedCraftingRecipeWrapper) recipeWrapper;
        craftingGridHelper.setInputs(stacks, inputItems, wrapper.getWidth(), wrapper.getHeight());
    } else
    {
        craftingGridHelper.setInputs(stacks, inputItems);
        recipeLayout.setShapeless();
    }

    stacks.set(module.rows * module.columns, outputItems.get(0));
}
 
Example #9
Source File: CategoryPot.java    From Sakura_mod with MIT License 6 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout arg0, IRecipeWrapper arg1, IIngredients arg2) {
	IGuiItemStackGroup items = arg0.getItemStacks();
	
	items.init(0, true, 37, 11);
	int k,l;
    for (k = 1; k <5; ++k)
        items.init(k,true, 10 + (k-1) * 18, 29);
    for (l = 5; l <9; ++l)
       	items.init(l,true, 10 + (l-5) * 18, 47);
	items.init(9, false, 122, 38);
    
	items.set(arg2);
	IGuiFluidStackGroup fiuld = arg0.getFluidStacks();
	fiuld.init(0, true, 88, 4, 72, 16, arg2.getInputs(VanillaTypes.FLUID).get(0).get(0).amount, false, null);
	if(arg2.getInputs(VanillaTypes.FLUID).get(0).get(0)!=null&&arg2.getInputs(VanillaTypes.FLUID).get(0).get(0).amount>0)
	fiuld.set(0, arg2.getInputs(VanillaTypes.FLUID).get(0));
}
 
Example #10
Source File: GTJeiMultiRecipeWrapper.java    From GT-Classic with GNU Lesser General Public License v3.0 6 votes vote down vote up
@SuppressWarnings("deprecation")
@Override
public void getIngredients(IIngredients ingredients) {
	ArrayList<FluidStack> inputFluids = new ArrayList<>();
	ArrayList<ItemStack> inputItems = new ArrayList<>();
	for (IRecipeInput input : multiRecipe.getInputs()) {
		if (input instanceof RecipeInputFluid) {
			inputFluids.add(((RecipeInputFluid) input).fluid);
		} else {
			inputItems.addAll(input.getInputs());
		}
	}
	if (!inputFluids.isEmpty()) {
		ingredients.setInputs(FluidStack.class, inputFluids);
	}
	ingredients.setInputs(ItemStack.class, inputItems);
	MachineOutput output = multiRecipe.getOutputs();
	if (output instanceof GTFluidMachineOutput) {
		ingredients.setOutputs(FluidStack.class, ((GTFluidMachineOutput) output).getFluids());
	}
	ingredients.setOutputs(ItemStack.class, multiRecipe.getOutputs().getAllOutputs());
}
 
Example #11
Source File: GTJeiMagicFuelCategory.java    From GT-Classic with GNU Lesser General Public License v3.0 6 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout layout, GTJeiMagicFuelWrapper wrapper, IIngredients ingredients) {
	IGuiItemStackGroup itemGroup = layout.getItemStacks();
	IGuiFluidStackGroup fluidGroup = layout.getFluidStacks();
	int index = 0;
	int actualIndex = 0;
	for (IRecipeInput list : wrapper.getMultiRecipe().getInputs()) {
		int x = index % 3;
		int y = index / 3;
		if (list instanceof RecipeInputFluid) {
			fluidGroup.init(actualIndex, true, (18 * x) + 1, (18 * y)
					+ 1, 16, 16, ((RecipeInputFluid) list).fluid.amount, true, null);
			fluidGroup.set(actualIndex, ((RecipeInputFluid) list).fluid);
		} else {
			itemGroup.init(actualIndex, true, (18 * x), (18 * y));
			itemGroup.set(actualIndex, list.getInputs());
		}
		index++;
		actualIndex++;
		if (index >= 6) {
			break;
		}
	}
}
 
Example #12
Source File: GTJeiUUAmplifierWrapper.java    From GT-Classic with GNU Lesser General Public License v3.0 6 votes vote down vote up
@SuppressWarnings("deprecation")
@Override
public void getIngredients(IIngredients ingredients) {
	ArrayList<FluidStack> inputFluids = new ArrayList<>();
	ArrayList<ItemStack> inputItems = new ArrayList<>();
	for (IRecipeInput input : multiRecipe.getInputs()) {
		if (input instanceof RecipeInputFluid) {
			inputFluids.add(((RecipeInputFluid) input).fluid);
		} else {
			inputItems.addAll(input.getInputs());
		}
	}
	if (!inputFluids.isEmpty()) {
		ingredients.setInputs(FluidStack.class, inputFluids);
	}
	ingredients.setInputs(ItemStack.class, inputItems);
	ingredients.setOutputs(ItemStack.class, multiRecipe.getOutputs().getAllOutputs());
}
 
Example #13
Source File: FireRecipeJEI.java    From Wizardry with GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
public void getIngredients(@Nonnull IIngredients ingredients) {
	List<ItemStack> stacks = Lists.newArrayList();
	stacks.addAll(Arrays.asList(input.getMatchingStacks()));
	List<List<ItemStack>> lists = Lists.newArrayList();
	lists.add(stacks);
	stacks.removeIf(Ingredient.fromStacks(recipe.getOutput())::apply);

	ingredients.setInputLists(ItemStack.class, lists);

	ingredients.setOutput(ItemStack.class, recipe.getOutput());
}
 
Example #14
Source File: InjectorCategory.java    From EmergingTechnology with MIT License 5 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, InjectorRecipeWrapper recipeWrapper, IIngredients ingredients)
{
    IGuiItemStackGroup guiStacks = recipeLayout.getItemStacks();

    guiStacks.init(INPUT_SLOT, true, 16, 34);
    guiStacks.init(OUTPUT_SLOT, false, 79, 34);

    guiStacks.set(ingredients);
}
 
Example #15
Source File: ScrubberCategory.java    From EmergingTechnology with MIT License 5 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, ScrubberRecipeWrapper recipeWrapper, IIngredients ingredients)
{
    IGuiItemStackGroup guiStacks = recipeLayout.getItemStacks();

    guiStacks.init(INPUT_SLOT, true, 16, 34);
    guiStacks.init(OUTPUT_SLOT, false, 79, 34);

    guiStacks.set(ingredients);
}
 
Example #16
Source File: CookerCategory.java    From EmergingTechnology with MIT License 5 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, CookerRecipeWrapper recipeWrapper, IIngredients ingredients)
{
    IGuiItemStackGroup guiStacks = recipeLayout.getItemStacks();

    guiStacks.init(INPUT_SLOT, true, 16, 34);
    guiStacks.init(OUTPUT_SLOT, false, 79, 34);

    guiStacks.set(ingredients);
}
 
Example #17
Source File: ProcessorCategory.java    From EmergingTechnology with MIT License 5 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, ProcessorRecipeWrapper recipeWrapper, IIngredients ingredients)
{
    IGuiItemStackGroup guiStacks = recipeLayout.getItemStacks();

    guiStacks.init(INPUT_SLOT, true, 16, 34);
    guiStacks.init(OUTPUT_SLOT, false, 79, 34);

    guiStacks.set(ingredients);
}
 
Example #18
Source File: FluidOnTopRecipe.java    From ExNihiloAdscensio with MIT License 5 votes vote down vote up
@Override
public void getIngredients(IIngredients ingredients)
{
    ingredients.setInputs(ItemStack.class, getInputs());
    ingredients.setInputs(FluidStack.class, getFluidInputs());
    
    ingredients.setOutput(ItemStack.class, outputStack);
}
 
Example #19
Source File: AlgaeBioreactorCategory.java    From EmergingTechnology with MIT License 5 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, AlgaeBioreactorRecipeWrapper recipeWrapper, IIngredients ingredients)
{
    IGuiItemStackGroup guiStacks = recipeLayout.getItemStacks();

    guiStacks.init(INPUT_SLOT, true, 16, 34);
    guiStacks.init(OUTPUT_SLOT, false, 79, 34);

    guiStacks.set(ingredients);
}
 
Example #20
Source File: MachineRecipeCategory.java    From customstuff4 with GNU General Public License v3.0 5 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, MachineRecipeWrapper recipeWrapper, IIngredients ingredients)
{
    super.setRecipe(recipeLayout, recipeWrapper, ingredients);

    IGuiItemStackGroup stacks = recipeLayout.getItemStacks();
    IGuiFluidStackGroup fluids = recipeLayout.getFluidStacks();

    List<List<ItemStack>> inputItems = ingredients.getInputs(ItemStack.class);
    List<List<FluidStack>> inputFluids = ingredients.getInputs(FluidStack.class);
    List<List<ItemStack>> outputItems = ingredients.getOutputs(ItemStack.class);
    List<List<FluidStack>> outputFluids = ingredients.getOutputs(FluidStack.class);

    initItems(stacks, true, module.inputSlots, 0);
    initItems(stacks, false, module.outputSlots, module.inputSlots);

    initFluids(fluids, true, module.inputTanks, 0);
    initFluids(fluids, false, module.outputTanks, module.inputTanks.length);

    for (int i = 0; i < inputItems.size(); i++)
    {
        stacks.set(i, inputItems.get(i));
    }

    for (int i = 0; i < outputItems.size(); i++)
    {
        stacks.set(module.inputSlots + i, outputItems.get(i));
    }

    for (int i = 0; i < inputFluids.size(); i++)
    {
        fluids.set(i, inputFluids.get(i));
    }

    for (int i = 0; i < outputFluids.size(); i++)
    {
        fluids.set(module.inputTanks.length + i, outputFluids.get(i));
    }
}
 
Example #21
Source File: ShredderCategory.java    From EmergingTechnology with MIT License 5 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, ShredderRecipeWrapper recipeWrapper, IIngredients ingredients)
{
    IGuiItemStackGroup guiStacks = recipeLayout.getItemStacks();

    guiStacks.init(INPUT_SLOT, true, 16, 34);
    guiStacks.init(OUTPUT_SLOT, false, 79, 34);

    guiStacks.set(ingredients);
}
 
Example #22
Source File: HydroponicCategory.java    From EmergingTechnology with MIT License 5 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, HydroponicRecipeWrapper recipeWrapper, IIngredients ingredients)
{
    IGuiItemStackGroup guiStacks = recipeLayout.getItemStacks();

    guiStacks.init(INPUT_SLOT, true, 16, 34);
    guiStacks.init(OUTPUT_SLOT, false, 79, 34);

    guiStacks.set(ingredients);
}
 
Example #23
Source File: MutationRecipeWrapper.java    From AgriCraft with MIT License 5 votes vote down vote up
@Override
public void getIngredients(IIngredients ingredients) {
    // Add Inputs
    ingredients.setInputLists(ItemStack.class, input);

    // Add Outputs
    ingredients.setOutput(ItemStack.class, output);
}
 
Example #24
Source File: BaseRecipeCategory.java    From customstuff4 with GNU General Public License v3.0 5 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, T recipeWrapper, IIngredients ingredients)
{
    if (recipe.transferButtonX >= 0 && recipe.transferButtonY >= 0)
    {
        recipeLayout.setRecipeTransferButton(recipe.transferButtonX - recipe.bgX, recipe.transferButtonY - recipe.bgY);
    }
}
 
Example #25
Source File: CokeOvenRecipeCategory.java    From GregTech with GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, CokeOvenRecipeWrapper recipeWrapper, IIngredients ingredients) {
	IGuiItemStackGroup itemStackGroup = recipeLayout.getItemStacks();
	IGuiFluidStackGroup fluidStackGroup = recipeLayout.getFluidStacks();
	itemStackGroup.init(0, true, 32, 19);
	itemStackGroup.init(1, false, 84, 19);
	itemStackGroup.set(ingredients);
	fluidStackGroup.init(0, false, 133, 3, 20, 58, 32000, true, this.fluidTankOverlay);
	fluidStackGroup.set(ingredients);
}
 
Example #26
Source File: PrimitiveBlastRecipeCategory.java    From GregTech with GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, PrimitiveBlastRecipeWrapper recipeWrapper,
		IIngredients ingredients) {
	IGuiItemStackGroup itemStackGroup = recipeLayout.getItemStacks();
	itemStackGroup.init(0, true, 32, 4);
	itemStackGroup.init(1, true, 32, 22);

	itemStackGroup.init(2, false, 84, 13);
	itemStackGroup.init(3, false, 102, 13);
	itemStackGroup.set(ingredients);
}
 
Example #27
Source File: FloadRecipeCategory.java    From YouTubeModdingTutorial with MIT License 5 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, FloadRecipeWrapper recipeWrapper, IIngredients ingredients) {
    IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks();
    IGuiFluidStackGroup guiFluidStacks = recipeLayout.getFluidStacks();

    guiFluidStacks.init(0, false, 65, 6, 18, 18, 100, true, null);
    guiItemStacks.init(0, true, 6, 6);

    List<ItemStack> inputs = ingredients.getInputs(VanillaTypes.ITEM).get(0);
    List<FluidStack> outputs = ingredients.getOutputs(VanillaTypes.FLUID).get(0);

    guiItemStacks.set(0, inputs);
    guiFluidStacks.set(0, outputs);
}
 
Example #28
Source File: MachineRecipe.java    From AdvancedRocketry with MIT License 5 votes vote down vote up
@Override
public void getIngredients(IIngredients ingredients) {
	ingredients.setInputLists(ItemStack.class, this.ingredients);
	ingredients.setOutputs(ItemStack.class, result);
	ingredients.setInputs(FluidStack.class, fluidIngredients);
	ingredients.setOutputs(FluidStack.class, fluidOutputs);
}
 
Example #29
Source File: CustomRecipeCategory.java    From YouTubeModdingTutorial with MIT License 5 votes vote down vote up
@Override
public void setRecipe(IRecipeLayout recipeLayout, CustomRecipeWrapper recipeWrapper, IIngredients ingredients) {
    IGuiItemStackGroup guiItemStacks = recipeLayout.getItemStacks();

    guiItemStacks.init(0, true, 6, 6);
    guiItemStacks.init(3, false, 114, 6);

    List<ItemStack> inputs = ingredients.getInputs(VanillaTypes.ITEM).get(0);
    List<ItemStack> outputs = ingredients.getOutputs(VanillaTypes.ITEM).get(0);

    guiItemStacks.set(0, inputs);
    guiItemStacks.set(3, outputs);
}
 
Example #30
Source File: GTJeiMortarWrapper.java    From GT-Classic with GNU Lesser General Public License v3.0 5 votes vote down vote up
@SuppressWarnings("deprecation")
@Override
public void getIngredients(IIngredients ingredients) {
	ArrayList<ItemStack> inputs = new ArrayList<>();
	for (IRecipeInput input : multiRecipe.getInputs()) {
		inputs.addAll(input.getInputs());
	}
	ingredients.setInputs(ItemStack.class, inputs);
	ingredients.setOutputs(ItemStack.class, multiRecipe.getOutputs().getAllOutputs());
}