|  | package ic2.api.item; | 
|  |  | 
|  | import net.minecraft.entity.player.EntityPlayer; | 
|  | import net.minecraft.item.ItemStack; | 
|  |  | 
|  | /** | 
|  | * Allows for charging, discharging and using electric items (IElectricItem). | 
|  | * | 
|  | * The charge or remaining capacity of an item can be determined by calling charge/discharge with | 
|  | * ignoreTransferLimit and simulate set to true. | 
|  | */ | 
|  | public final class ElectricItem { | 
|  | /** | 
|  | * IElectricItemManager to use for interacting with IElectricItem ItemStacks. | 
|  | * | 
|  | * This manager will act as a gateway and delegate the tasks to the final implementation | 
|  | * (rawManager or a custom one) as necessary. | 
|  | */ | 
|  | public static IElectricItemManager manager; | 
|  |  | 
|  | /** | 
|  | * Standard IElectricItemManager implementation, only call it directly from another | 
|  | * IElectricItemManager. Use manager instead. | 
|  | */ | 
|  | public static IElectricItemManager rawManager; | 
|  |  | 
|  | /** | 
|  | * Charge an item with a specified amount of energy | 
|  | * | 
|  | * @param itemStack electric item's stack | 
|  | * @param amount amount of energy to charge in EU | 
|  | * @param tier tier of the charging device, has to be at least as high as the item to charge | 
|  | * @param ignoreTransferLimit ignore the transfer limit specified by getTransferLimit() | 
|  | * @param simulate don't actually change the item, just determine the return value | 
|  | * @return Energy transferred into the electric item | 
|  | * | 
|  | * @deprecated use manager.charge() instead | 
|  | */ | 
|  | @Deprecated | 
|  | public static int charge(ItemStack itemStack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate) { | 
|  | return manager.charge(itemStack, amount, tier, ignoreTransferLimit, simulate); | 
|  | } | 
|  |  | 
|  | /** | 
|  | * Discharge an item by a specified amount of energy | 
|  | * | 
|  | * @param itemStack electric item's stack | 
|  | * @param amount amount of energy to charge in EU | 
|  | * @param tier tier of the discharging device, has to be at least as high as the item to discharge | 
|  | * @param ignoreTransferLimit ignore the transfer limit specified by getTransferLimit() | 
|  | * @param simulate don't actually discharge the item, just determine the return value | 
|  | * @return Energy retrieved from the electric item | 
|  | * | 
|  | * @deprecated use manager.discharge() instead | 
|  | */ | 
|  | @Deprecated | 
|  | public static int discharge(ItemStack itemStack, int amount, int tier, boolean ignoreTransferLimit, boolean simulate) { | 
|  | return manager.discharge(itemStack, amount, tier, ignoreTransferLimit, simulate); | 
|  | } | 
|  |  | 
|  | /** | 
|  | * Determine if the specified electric item has at least a specific amount of EU. | 
|  | * This is supposed to be used in the item code during operation, for example if you want to implement your own electric item. | 
|  | * BatPacks are not taken into account. | 
|  | * | 
|  | * @param itemStack electric item's stack | 
|  | * @param amount minimum amount of energy required | 
|  | * @return true if there's enough energy | 
|  | * | 
|  | * @deprecated use manager.canUse() instead | 
|  | */ | 
|  | @Deprecated | 
|  | public static boolean canUse(ItemStack itemStack, int amount) { | 
|  | return manager.canUse(itemStack, amount); | 
|  | } | 
|  |  | 
|  | /** | 
|  | * Try to retrieve a specific amount of energy from an Item, and if applicable, a BatPack. | 
|  | * This is supposed to be used in the item code during operation, for example if you want to implement your own electric item. | 
|  | * | 
|  | * @param itemStack electric item's stack | 
|  | * @param amount amount of energy to discharge in EU | 
|  | * @param player player holding the item | 
|  | * @return true if the operation succeeded | 
|  | * | 
|  | * @deprecated use manager.use() instead | 
|  | */ | 
|  | @Deprecated | 
|  | public static boolean use(ItemStack itemStack, int amount, EntityPlayer player) { | 
|  | return manager.use(itemStack, amount, player); | 
|  | } | 
|  |  | 
|  | /** | 
|  | * Charge an item from the BatPack a player is wearing. | 
|  | * This is supposed to be used in the item code during operation, for example if you want to implement your own electric item. | 
|  | * use() already contains this functionality. | 
|  | * | 
|  | * @param itemStack electric item's stack | 
|  | * @param player player holding the item | 
|  | * | 
|  | * @deprecated use manager.chargeFromArmor() instead | 
|  | */ | 
|  | @Deprecated | 
|  | public static void chargeFromArmor(ItemStack itemStack, EntityPlayer player) { | 
|  | manager.chargeFromArmor(itemStack, player); | 
|  | } | 
|  | } | 
|  |  |