package gregtech.api.interfaces.internal;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_RecipeBuilder;
public interface IGT_RecipeAdder {
/**
* Adds a FusionreactorRecipe Does not work anymore!
*/
@Deprecated
boolean addFusionReactorRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aFusionDurationInTicks,
int aFusionEnergyPerTick, int aEnergyNeededForStartingFusion);
/**
* Adds a FusionreactorRecipe
*
* @param aInput1 = first Input (not null, and respects StackSize)
* @param aInput2 = second Input (not null, and respects StackSize)
* @param aOutput1 = Output of the Fusion (can be null, and respects StackSize)
* @param aFusionDurationInTicks = How many ticks the Fusion lasts (must be > 0)
* @param aFusionEnergyPerTick = The EU generated per Tick (can even be negative!)
* @param aEnergyNeededForStartingFusion = EU needed for heating the Reactor up (must be >= 0)
* @return true if the Recipe got added, otherwise false.
*/
@Deprecated
boolean addFusionReactorRecipe(FluidStack aInput1, FluidStack aInput2, FluidStack aOutput1,
int aFusionDurationInTicks, int aFusionEnergyPerTick, int aEnergyNeededForStartingFusion);
/**
* Adds a Fusion Reactor Recipe
*
* @param FluidInputArray Array of input fluids. Up to 16.
* @param FluidOutputArray Array of output fluids. Up to 16.
* @param aFusionDurationInTicks How many ticks the Fusion lasts (must be > 0).
* @param aFusionEnergyPerTick The EU consumed per tick to keep the reaction going.
* @param aEnergyNeededForStartingFusion EU needed to initialize the fusion reaction. (must be >= 0).
* @return true if the recipe got added, otherwise false.
*/
@Deprecated
boolean addFusionReactorRecipe(FluidStack[] FluidInputArray, FluidStack[] FluidOutputArray,
int aFusionDurationInTicks, int aFusionEnergyPerTick, int aEnergyNeededForStartingFusion);
/**
* Adds a Centrifuge Recipe
*
* @param aInput1 must be != null
* @param aOutput1 must be != null
* @param aOutput2 can be null
* @param aOutput3 can be null
* @param aOutput4 can be null
* @param aDuration must be > 0
*/
@Deprecated
boolean addCentrifugeRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2,
ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration);
@Deprecated
boolean addCentrifugeRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2,
ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration, int aEUt);
/**
* Adds a Centrifuge Recipe
*
* @param aInput1 must be != null
* @param aOutput1 must be != null
* @param aOutput2 can be null
* @param aOutput3 can be null
* @param aOutput4 can be null
* @param aDuration must be > 0
*/
@Deprecated
boolean addCentrifugeRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput,
ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5,
ItemStack aOutput6, int[] aChances, int aDuration, int aEUt);
@Deprecated
boolean addCentrifugeRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput,
ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5,
ItemStack aOutput6, int[] aChances, int aDuration, int aEUt, boolean aCleanroom);
/**
* @param aInput1 must be != null
* @param aOutput1 must be != null
* @param aDuration must be > 0
* @return if the recipe was successfully added
*/
@Deprecated
boolean addCompressorRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt);
/**
* Adds a Electrolyzer Recipe
*
* @param aInput1 must be != null
* @param aOutput1 must be != null
* @param aOutput2 can be null
* @param aOutput3 can be null
* @param aOutput4 can be null
* @param aDuration must be > 0
* @param aEUt should be > 0
*/
@Deprecated
boolean addElectrolyzerRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2,
ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration, int aEUt);
/**
* Adds a Electrolyzer Recipe
*
* @param aInput1 must be != null
* @param aOutput1 must be != null
* @param aOutput2 can be null
* @param aOutput3 can be null
* @param aOutput4 can be null
* @param aDuration must be > 0
* @param aEUt should be > 0
*/
@Deprecated
boolean addElectrolyzerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput,
ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5,
ItemStack aOutput6,