package eiteam.esteemedinnovation.api; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; public interface SteamChargable { /** * How much steam is used per use */ int steamPerDurability(); /** * Called to ensure the item can be charged with steam devices * @param me The itemstack of the item * @return true if the item can charge */ boolean canCharge(ItemStack me); /** * Adds an amount of steam to the item. * @param me The ItemStack * @param amount How much steam to add. * @param entity The entity using the thing. * @return Whether it was a successful add. */ boolean addSteam(ItemStack me, int amount, EntityLivingBase entity); /** * Checks whether the ItemStack has the amount of power in its steam storage. The opposite of * @param me The ItemStack * @param powerNeeded The amount of power needed * @return True if it has power, false if it doesn't. * @see #needsPower(ItemStack, int) */ boolean hasPower(ItemStack me, int powerNeeded); /** * Checks whether the ItemStack can have the amount of power added to its steam storage. * @param me The ItemStack * @param powerNeeded The amount of power to add * @return True if it will not exceed the limit with this amount of power added to it, false if * it will, or if it is not a chestplate. */ boolean needsPower(ItemStack me, int powerNeeded); /** * Drains the provided amount of steam from the armor. * @param me The armor piece to drain from. * @param amountToDrain The amount of steam to drain from the armor. * @param entity The entity using the thing. * @return Whether steam was successfully drained. */ boolean drainSteam(ItemStack me, int amountToDrain, EntityLivingBase entity); }