package WayofTime.bloodmagic.api.soul; import net.minecraft.item.ItemStack; public interface IDiscreteDemonWill { /** * Obtains the amount of Will an ItemStack contains. * * @param soulStack * - The stack to retrieve the Will from * * @return - The amount of Will an ItemStack contains */ double getWill(ItemStack soulStack); /** * Drains the demonic will from the willStack. If all of the will is * drained, the willStack will be removed. Will only drain in discrete * amounts, determined by getDiscretization. * * @param willStack * - The ItemStack of the will * @param drainAmount * - The amount of Will to drain * * @return The amount of will drained. */ double drainWill(ItemStack willStack, double drainAmount); /** * Gets the discrete number for this demonic will. * * @param willStack * - The ItemStack of the will * * @return - The discrete number for the given stack. */ double getDiscretization(ItemStack willStack); /** * Obtains the type of will this is. * * @param willStack * - The ItemStack of the will * * @return - The type of will this is. */ EnumDemonWillType getType(ItemStack willStack); }