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); } }