Killed off old TE API, moved PipeUtils to proper loc

This commit is contained in:
Aidan Brady 2013-12-14 22:50:37 -05:00
parent 9558c6f6ca
commit c73259f092
20 changed files with 5 additions and 637 deletions

View file

@ -7,9 +7,9 @@ import mekanism.client.model.ModelTransmitter.Size;
import mekanism.client.render.MekanismRenderer; import mekanism.client.render.MekanismRenderer;
import mekanism.client.render.MekanismRenderer.DisplayInteger; import mekanism.client.render.MekanismRenderer.DisplayInteger;
import mekanism.client.render.MekanismRenderer.Model3D; import mekanism.client.render.MekanismRenderer.Model3D;
import mekanism.common.PipeUtils;
import mekanism.common.tileentity.TileEntityMechanicalPipe; import mekanism.common.tileentity.TileEntityMechanicalPipe;
import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils;
import mekanism.common.util.PipeUtils;
import mekanism.common.util.MekanismUtils.ResourceType; import mekanism.common.util.MekanismUtils.ResourceType;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;

View file

@ -14,6 +14,7 @@ import mekanism.api.transmitters.DynamicNetwork;
import mekanism.api.transmitters.ITransmitter; import mekanism.api.transmitters.ITransmitter;
import mekanism.api.transmitters.TransmissionType; import mekanism.api.transmitters.TransmissionType;
import mekanism.common.tileentity.TileEntityMechanicalPipe; import mekanism.common.tileentity.TileEntityMechanicalPipe;
import mekanism.common.util.PipeUtils;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;

View file

@ -108,7 +108,6 @@ import net.minecraftforge.event.world.ChunkEvent;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
import rebelkeithy.mods.metallurgy.api.IOreInfo; import rebelkeithy.mods.metallurgy.api.IOreInfo;
import rebelkeithy.mods.metallurgy.api.MetallurgyAPI; import rebelkeithy.mods.metallurgy.api.MetallurgyAPI;
import thermalexpansion.api.crafting.CraftingManagers;
import universalelectricity.compatibility.Compatibility; import universalelectricity.compatibility.Compatibility;
import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod;
@ -730,24 +729,6 @@ public class Mekanism
*/ */
public void addIntegratedItems() public void addIntegratedItems()
{ {
try {
CraftingManagers.pulverizerManager.addRecipe(400, new ItemStack(OreBlock, 1, 0), new ItemStack(Dust, 2, 2), false);
CraftingManagers.pulverizerManager.addRecipe(40, new ItemStack(Mekanism.Ingot, 1, 1), new ItemStack(Mekanism.Dust, 1, 2), false);
CraftingManagers.pulverizerManager.addRecipe(40, new ItemStack(Mekanism.Ingot, 1, 0), new ItemStack(Mekanism.Dust, 1, 3), false);
CraftingManagers.pulverizerManager.addRecipe(40, new ItemStack(Mekanism.Ingot, 1, 3), new ItemStack(Item.glowstone), false);
CraftingManagers.pulverizerManager.addRecipe(40, new ItemStack(Mekanism.Ingot, 1, 4), new ItemStack(Mekanism.Dust, 1, 5), false);
CraftingManagers.pulverizerManager.addRecipe(80, new ItemStack(Clump, 1, 0), new ItemStack(DirtyDust, 1, 0), false);
CraftingManagers.pulverizerManager.addRecipe(80, new ItemStack(Clump, 1, 1), new ItemStack(DirtyDust, 1, 1), false);
CraftingManagers.pulverizerManager.addRecipe(80, new ItemStack(Clump, 1, 2), new ItemStack(DirtyDust, 1, 2), false);
CraftingManagers.pulverizerManager.addRecipe(80, new ItemStack(Clump, 1, 3), new ItemStack(DirtyDust, 1, 3), false);
CraftingManagers.pulverizerManager.addRecipe(80, new ItemStack(Clump, 1, 4), new ItemStack(DirtyDust, 1, 4), false);
CraftingManagers.pulverizerManager.addRecipe(80, new ItemStack(Clump, 1, 5), new ItemStack(DirtyDust, 1, 5), false);
System.out.println("[Mekanism] Hooked into Thermal Expansion successfully.");
} catch(Exception e) {}
if(controlCircuitOreDict || !hooks.BasicComponentsLoaded) if(controlCircuitOreDict || !hooks.BasicComponentsLoaded)
{ {
OreDictionary.registerOre("circuitBasic", new ItemStack(ControlCircuit)); OreDictionary.registerOre("circuitBasic", new ItemStack(ControlCircuit));
@ -926,10 +907,6 @@ public class Mekanism
{ {
Recipes.macerator.addRecipe(new RecipeInputOreDict("ingotBronze"), null, MekanismUtils.size(OreDictionary.getOres("dustBronze").get(0), 1)); Recipes.macerator.addRecipe(new RecipeInputOreDict("ingotBronze"), null, MekanismUtils.size(OreDictionary.getOres("dustBronze").get(0), 1));
} }
if(hooks.TELoaded)
{
CraftingManagers.pulverizerManager.addRecipe(40, new ItemStack(Ingot, 1, 2), MekanismUtils.size(OreDictionary.getOres("dustBronze").get(0), 1), false);
}
} catch(Exception e) {} } catch(Exception e) {}
try { try {

View file

@ -10,7 +10,6 @@ import mekanism.client.ClientProxy;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.PacketHandler; import mekanism.common.PacketHandler;
import mekanism.common.PacketHandler.Transmission; import mekanism.common.PacketHandler.Transmission;
import mekanism.common.PipeUtils;
import mekanism.common.network.PacketTransmitterUpdate; import mekanism.common.network.PacketTransmitterUpdate;
import mekanism.common.network.PacketTransmitterUpdate.PacketType; import mekanism.common.network.PacketTransmitterUpdate.PacketType;
import mekanism.common.tileentity.TileEntityDiversionTransporter; import mekanism.common.tileentity.TileEntityDiversionTransporter;
@ -20,6 +19,7 @@ import mekanism.common.tileentity.TileEntityPressurizedTube;
import mekanism.common.tileentity.TileEntityUniversalCable; import mekanism.common.tileentity.TileEntityUniversalCable;
import mekanism.common.transporter.TransporterStack; import mekanism.common.transporter.TransporterStack;
import mekanism.common.util.CableUtils; import mekanism.common.util.CableUtils;
import mekanism.common.util.PipeUtils;
import mekanism.common.util.TransporterUtils; import mekanism.common.util.TransporterUtils;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;

View file

@ -11,9 +11,9 @@ import mekanism.api.transmitters.TransmitterNetworkRegistry;
import mekanism.common.FluidNetwork; import mekanism.common.FluidNetwork;
import mekanism.common.PacketHandler; import mekanism.common.PacketHandler;
import mekanism.common.PacketHandler.Transmission; import mekanism.common.PacketHandler.Transmission;
import mekanism.common.PipeUtils;
import mekanism.common.network.PacketDataRequest; import mekanism.common.network.PacketDataRequest;
import mekanism.common.network.PacketTileEntity; import mekanism.common.network.PacketTileEntity;
import mekanism.common.util.PipeUtils;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;

View file

@ -1,4 +1,4 @@
package mekanism.common; package mekanism.common.util;
import java.util.Arrays; import java.util.Arrays;

View file

@ -1,46 +0,0 @@
/**
* Team CoFH
*
* Thermal Expansion
*/
package thermalexpansion.api.crafting;
/**
* Allows access to all of the Thermal Expansion crafting managers. Add your recipes during @PostInit
* or risk a null pointer. :)
*/
public class CraftingManagers {
/**
* Allows you to add recipes to the Magma Crucible. See {@link ICrucibleManager} for details.
*/
public static ICrucibleManager crucibleManager;
/**
* Allows you to add recipes to the Liquid Transposer. See {@link ITransposerManager} for
* details.
*/
public static ITransposerManager transposerManager;
/**
* Allows you to add recipes to the Powered Furnace. See {@link IFurnaceManager} for details.
*/
public static IFurnaceManager furnaceManager;
/**
* Allows you to add recipes to the Pulverizer. See {@link IPulverizerManager} for details.
*/
public static IPulverizerManager pulverizerManager;
/**
* Allows you to add recipes to the Sawmill. See {@link ISawmillManager} for details.
*/
public static ISawmillManager sawmillManager;
/**
* Allows you to add recipes to the Induction Smelter. See {@link ISmelterManager} for details.
*/
public static ISmelterManager smelterManager;
}

View file

@ -1,39 +0,0 @@
/**
* Team CoFH
*
* Thermal Expansion
*/
package thermalexpansion.api.crafting;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
/**
* Provides an interface to the recipe manager of the Crucible. Accessible via
* {@link CraftingManagers.crucibleManager}
*/
public interface ICrucibleManager {
/**
* Add a recipe to the Crucible.
*
* @param energy
* Energy needed to process the item.
* @param input
* ItemStack representing the input item.
* @param output
* LiquidStack representing the output liquid.
* @param overwrite
* Flag to enable recipe overwriting. This will only be allowed if enabled in the
* Thermal Expansion Configuration file and will be logged for information purposes.
*/
public boolean addRecipe(int energy, ItemStack input, FluidStack output, boolean overwrite);
public boolean addRecipe(int energy, ItemStack input, FluidStack output);
/**
* Access to the full list of recipes.
*/
ICrucibleRecipe[] getRecipeList();
}

View file

@ -1,19 +0,0 @@
/**
* Team CoFH
*
* Thermal Expansion
*/
package thermalexpansion.api.crafting;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
public interface ICrucibleRecipe {
public ItemStack getInput();
public FluidStack getOutput();
public int getEnergy();
}

View file

@ -1,38 +0,0 @@
/**
* Team CoFH
*
* Thermal Expansion
*/
package thermalexpansion.api.crafting;
import net.minecraft.item.ItemStack;
/**
* Provides an interface to the recipe manager of the Powered Furnace. Accessible via
* {@link CraftingManagers.FurnaceManager}
*/
public interface IFurnaceManager {
/**
* Add a recipe to the Powered Furnace.
*
* @param energy
* Energy needed to process the item.
* @param input
* ItemStack representing the input item.
* @param output
* ItemStack representing the output item.
* @param overwrite
* Flag to enable recipe overwriting. This will only be allowed if enabled in the
* Thermal Expansion Configuration file and will be logged for information purposes.
*/
public boolean addRecipe(int energy, ItemStack input, ItemStack output, boolean overwrite);
public boolean addRecipe(int energy, ItemStack input, ItemStack output);
/**
* Access to the full list of recipes.
*/
IFurnaceRecipe[] getRecipeList();
}

View file

@ -1,18 +0,0 @@
/**
* Team CoFH
*
* Thermal Expansion
*/
package thermalexpansion.api.crafting;
import net.minecraft.item.ItemStack;
public interface IFurnaceRecipe {
public ItemStack getInput();
public ItemStack getOutput();
public int getEnergy();
}

View file

@ -1,79 +0,0 @@
/**
* Team CoFH
*
* Thermal Expansion
*/
package thermalexpansion.api.crafting;
import net.minecraft.item.ItemStack;
/**
* Provides an interface to the recipe manager of the Pulverizer. Accessible via
* {@link CraftingManagers.pulverizerManager}
*/
public interface IPulverizerManager {
/**
* Add a recipe to the Pulverizer
*
* @param energy
* Energy needed to process the item.
* @param input
* ItemStack representing the input item.
* @param primaryOutput
* ItemStack representing the primary (only) output product.
* @param overwrite
* Flag to enable recipe overwriting. This will only be allowed if enabled in the
* Thermal Expansion Configuration file and will be logged for information purposes.
*/
public boolean addRecipe(int energy, ItemStack input, ItemStack primaryOutput, boolean overwrite);
public boolean addRecipe(int energy, ItemStack input, ItemStack primaryOutput);
/**
* Add a recipe to the Pulverizer
*
* @param energy
* Energy needed to process the item.
* @param input
* ItemStack representing the input item.
* @param primaryOutput
* ItemStack representing the primary output product.
* @param secondaryOutput
* ItemStack representing the secondary output product. Product % is taken to be 100.
* @param overwrite
* Flag to enable recipe overwriting. This will only be allowed if enabled in the
* Thermal Expansion Configuration file and will be logged for information purposes.
*/
public boolean addRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput, boolean overwrite);
public boolean addRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput);
/**
* Add a recipe to the Pulverizer
*
* @param energy
* Energy needed to process the item.
* @param input
* ItemStack representing the input item.
* @param outputPrimary
* ItemStack representing the primary output product.
* @param outputSecondary
* ItemStack representing the secondary output product.
* @param secondaryChance
* Integer representing % chance (out of 100) of the secondary product being created.
*
@param overwrite
* Flag to enable recipe overwriting. This will only be allowed if enabled in the
* Thermal Expansion Configuration file and will be logged for information purposes.
*/
public boolean addRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput, int secondaryChance, boolean overwrite);
public boolean addRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput, int secondaryChance);
/**
* Access to the list of recipes.
*/
IPulverizerRecipe[] getRecipeList();
}

View file

@ -1,22 +0,0 @@
/**
* Team CoFH
*
* Thermal Expansion
*/
package thermalexpansion.api.crafting;
import net.minecraft.item.ItemStack;
public interface IPulverizerRecipe {
public ItemStack getInput();
public ItemStack getPrimaryOutput();
public ItemStack getSecondaryOutput();
public int getSecondaryOutputChance();
public int getEnergy();
}

View file

@ -1,78 +0,0 @@
/**
* Team CoFH
*
* Thermal Expansion
*/
package thermalexpansion.api.crafting;
import net.minecraft.item.ItemStack;
/**
* Provides an interface to the recipe manager of the Sawmill. Accessible via
* {@link CraftingManagers.sawmillManager}
*/
public interface ISawmillManager {
/**
* Add a recipe to the Sawmill
*
* @param energy
* Energy needed to process the item.
* @param input
* ItemStack representing the input item.
* @param primaryOutput
* ItemStack representing the primary (only) output product.
* @param overwrite
* Flag to enable recipe overwriting. This will only be allowed if enabled in the
* Thermal Expansion Configuration file and will be logged for information purposes.
*/
public boolean addRecipe(int energy, ItemStack input, ItemStack primaryOutput, boolean overwrite);
public boolean addRecipe(int energy, ItemStack input, ItemStack primaryOutput);
/**
* Add a recipe to the Sawmill
*
* @param energy
* Energy needed to process the item.
* @param input
* ItemStack representing the input item.
* @param primaryOutput
* ItemStack representing the primary output product.
* @param secondaryOutput
* ItemStack representing the secondary output product. Product % is taken to be 100.
* @param overwrite
* Flag to enable recipe overwriting. This will only be allowed if enabled in the
* Thermal Expansion Configuration file and will be logged for information purposes.
*/
public boolean addRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput, boolean overwrite);
public boolean addRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput);
/**
* Add a recipe to the Sawmill
*
* @param energy
* Energy needed to process the item.
* @param input
* ItemStack representing the input item.
* @param outputprimaryOutput
* ItemStack representing the primary output product.
* @param outputsecondaryOutput
* ItemStack representing the secondary output product.
* @param secondaryChance
* Integer representing % chance (out of 100) of the secondary product being created.
* @param overwrite
* Flag to enable recipe overwriting. This will only be allowed if enabled in the
* Thermal Expansion Configuration file and will be logged for information purposes.
*/
public boolean addRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput, int secondaryChance, boolean overwrite);
public boolean addRecipe(int energy, ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput, int secondaryChance);
/**
* Access to the list of recipes.
*/
ISawmillRecipe[] getRecipeList();
}

View file

@ -1,22 +0,0 @@
/**
* Team CoFH
*
* Thermal Expansion
*/
package thermalexpansion.api.crafting;
import net.minecraft.item.ItemStack;
public interface ISawmillRecipe {
public ItemStack getInput();
public ItemStack getPrimaryOutput();
public ItemStack getSecondaryOutput();
public int getSecondaryOutputChance();
public int getEnergy();
}

View file

@ -1,85 +0,0 @@
/**
* Team CoFH
*
* Thermal Expansion
*/
package thermalexpansion.api.crafting;
import net.minecraft.item.ItemStack;
/**
* Provides an interface to the recipe manager of the Induction Smelter. Accessible via
* {@link CraftingManagers.smelterManager}
*/
public interface ISmelterManager {
/**
* Add a recipe to the Induction Smelter
*
* @param energy
* Energy needed to process the item.
* @param primaryInput
* ItemStack representing the primary input item.
* @param secondaryInput
* ItemStack representing the secondary input item.
* @param primaryOutput
* ItemStack representing the primary (only) output product.
* @param overwrite
* Flag to enable recipe overwriting. This will only be allowed if enabled in the
* Thermal Expansion Configuration file and will be logged for information purposes.
*/
public boolean addRecipe(int energy, ItemStack primaryInput, ItemStack secondaryInput, ItemStack primaryOutput, boolean overwrite);
public boolean addRecipe(int energy, ItemStack primaryInput, ItemStack secondaryInput, ItemStack primaryOutput);
/**
* Add a recipe to the Induction Smelter
*
* @param energy
* Energy needed to process the item.
* @param primaryInput
* ItemStack representing the primary input item.
* @param secondaryInput
* ItemStack representing the secondary input item.
* @param primaryOutput
* ItemStack representing the primary output product.
* @param secondaryOutput
* ItemStack representing the secondary output product. Product % is taken to be 100.
* @param overwrite
* Flag to enable recipe overwriting. This will only be allowed if enabled in the
* Thermal Expansion Configuration file and will be logged for information purposes.
*/
public boolean addRecipe(int energy, ItemStack primaryInput, ItemStack secondaryInput, ItemStack primaryOutput, ItemStack secondaryOutput, boolean overwrite);
public boolean addRecipe(int energy, ItemStack primaryInput, ItemStack secondaryInput, ItemStack primaryOutput, ItemStack secondaryOutput);
/**
* Add a recipe to the Induction Smelter
*
* @param energy
* Energy needed to process the item.
* @param primaryInput
* ItemStack representing the primary input item.
* @param secondaryInput
* ItemStack representing the secondary input item.
* @param primaryOutput
* ItemStack representing the primary output product.
* @param secondaryOutput
* ItemStack representing the secondary output product.
* @param secondaryChance
* Integer representing % chance (out of 100) of the secondary product being created.
* @param overwrite
* Flag to enable recipe overwriting. This will only be allowed if enabled in the
* Thermal Expansion Configuration file and will be logged for information purposes.
*/
public boolean addRecipe(int energy, ItemStack primaryInput, ItemStack secondaryInput, ItemStack primaryOutput, ItemStack secondaryOutput, int secondaryChance,
boolean overwrite);
public boolean addRecipe(int energy, ItemStack primaryInput, ItemStack secondaryInput, ItemStack primaryOutput, ItemStack secondaryOutput, int secondaryChance);
/**
* Access to the list of recipes.
*/
ISmelterRecipe[] getRecipeList();
}

View file

@ -1,24 +0,0 @@
/**
* Team CoFH
*
* Thermal Expansion
*/
package thermalexpansion.api.crafting;
import net.minecraft.item.ItemStack;
public interface ISmelterRecipe {
public ItemStack getPrimaryInput();
public ItemStack getSecondaryInput();
public ItemStack getPrimaryOutput();
public ItemStack getSecondaryOutput();
public int getSecondaryOutputChance();
public int getEnergy();
}

View file

@ -1,71 +0,0 @@
/**
* Team CoFH
*
* Thermal Expansion
*/
package thermalexpansion.api.crafting;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
/**
* Provides an interface to the recipe manager of the Liquid Transposer. Accessible via
* {@link CraftingManagers.transposerManager}
*/
public interface ITransposerManager {
/**
* Add a recipe to the Liquid Transposer
*
* @param energy
* Energy needed to process the item.
* @param input
* ItemStack representing the input item.
* @param output
* ItemStack representing the output item.
* @param liquid
* FluidStack representing the required liquid.
* @param reversible
* Flag the recipe as reversible (container can be emptied).
* @param overwrite
* Flag to enable recipe overwriting. This will only be allowed if enabled in the
* Thermal Expansion Configuration file and will be logged for information purposes.
*/
public boolean addFillRecipe(int energy, ItemStack input, ItemStack output, FluidStack liquid, boolean reversible, boolean overwrite);
public boolean addFillRecipe(int energy, ItemStack input, ItemStack output, FluidStack liquid, boolean reversible);
/**
* Add a recipe to the Liquid Transposer
*
* @param energy
* Energy needed to process the item.
* @param input
* ItemStack representing the input item.
* @param output
* ItemStack representing the output item - this can be NULL if necessary, if the
* recipe is NOT reversible.
* @param liquid
* FluidStack representing the required liquid.
* @param chance
* Integer representing % chance (out of 100) of receiving the item - liquid will
* always be extracted. If output is NULL, this MUST be set to 0. The recipe will not
* be added otherwise.
* @param reversible
* Flag the recipe as reversible (container can be filled).
* @param overwrite
* Flag to enable recipe overwriting. This will only be allowed if enabled in the
* Thermal Expansion Configuration file and will be logged for information purposes.
*/
public boolean addExtractionRecipe(int energy, ItemStack input, ItemStack output, FluidStack liquid, int chance, boolean reversible, boolean overwrite);
public boolean addExtractionRecipe(int energy, ItemStack input, ItemStack output, FluidStack liquid, int chance, boolean reversible);
/**
* Access to the list of recipes.
*/
ITransposerRecipe[] getFillRecipeList();
ITransposerRecipe[] getExtractionRecipeList();
}

View file

@ -1,23 +0,0 @@
/**
* Team CoFH
*
* Thermal Expansion
*/
package thermalexpansion.api.crafting;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.FluidStack;
public interface ITransposerRecipe {
public ItemStack getInput();
public ItemStack getOutput();
public FluidStack getLiquid();
public int getEnergy();
public int getChance();
}

View file

@ -1,46 +0,0 @@
package thermalexpansion.api.item;
import net.minecraft.item.ItemStack;
/**
* Implement this interface on Item classes that support external manipulation of their internal
* energy storages. This interface does not provide methods for the underlying internal energy
* usage.
*/
public interface IChargeableItem
{
/**
* Adds energy to an item. Returns the quantity of energy that was accepted. This should always
* return 0 if the item cannot be externally charged.
*
* @param theItem ItemStack to be charged.
* @param energy Maximum amount of energy to be sent into the item.
* @param doReceive If false, the charge will only be simulated.
* @return Amount of energy that was accepted by the item.
*/
public float receiveEnergy(ItemStack theItem, float energy, boolean doReceive);
/**
* Removes energy from an item. Returns the quantity of energy that was removed. This should
* always return 0 if the item cannot be externally discharged.
*
* @param theItem ItemStack to be discharged.
* @param energy Maximum amount of energy to be removed from the item.
* @param doTransfer If false, the discharge will only be simulated.
* @return Amount of energy that was removed from the item.
*/
public float transferEnergy(ItemStack theItem, float energy, boolean doTransfer);
/**
* Get the amount of energy currently stored in the item.
*/
public float getEnergyStored(ItemStack theItem);
/**
* Get the max amount of energy that can be stored in the item.
*/
public float getMaxEnergyStored(ItemStack theItem);
}