package gregtech.api.interfaces.internal;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
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 FluidOutputArray : 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.
*/
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
*/
boolean addCentrifugeRecipe(
ItemStack aInput1,
int aInput2,
ItemStack aOutput1,
ItemStack aOutput2,
ItemStack aOutput3,
ItemStack aOutput4,
ItemStack aOutput5,
ItemStack aOutput6,
int aDuration);
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
*/
boolean addCentrifugeRecipe(
ItemStack aInput1,
ItemStack aInput2,
FluidStack aFluidInput,
FluidStack aFluidOutput,
ItemStack aOutput1,
ItemStack aOutput2,
ItemStack aOutput3,
ItemStack aOutput4,
ItemStack aOutput5,
ItemStack