2016-01-09 15:47:36 +00:00
|
|
|
package WayofTime.bloodmagic.api.soul;
|
|
|
|
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
|
2017-08-16 04:30:48 +00:00
|
|
|
public interface IDemonWillGem {
|
2016-01-09 15:47:36 +00:00
|
|
|
/**
|
2017-08-16 04:30:48 +00:00
|
|
|
* @param willGemStack - The ItemStack for this demon will gem.
|
|
|
|
* @param willStack - The ItemStack for the will. Item should extend IDemonWill
|
2016-01-09 15:47:36 +00:00
|
|
|
* @return - The remainder willStack after the will has been absorbed into
|
2017-08-16 04:30:48 +00:00
|
|
|
* the gem. Return null if there is no will left in the stack.
|
2016-01-09 15:47:36 +00:00
|
|
|
*/
|
2016-03-15 01:55:44 +00:00
|
|
|
ItemStack fillDemonWillGem(ItemStack willGemStack, ItemStack willStack);
|
2016-01-09 15:47:36 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the number of souls that are left in the soul gem. Returns a
|
|
|
|
* double because souls can be fractionally drained.
|
|
|
|
*/
|
2016-03-15 01:55:44 +00:00
|
|
|
double getWill(EnumDemonWillType type, ItemStack willGemStack);
|
2016-01-09 15:47:36 +00:00
|
|
|
|
2016-03-15 01:55:44 +00:00
|
|
|
void setWill(EnumDemonWillType type, ItemStack willGemStack, double amount);
|
2016-01-09 15:47:36 +00:00
|
|
|
|
2016-03-15 01:55:44 +00:00
|
|
|
int getMaxWill(EnumDemonWillType type, ItemStack willGemStack);
|
2016-01-09 15:47:36 +00:00
|
|
|
|
2016-07-10 01:45:35 +00:00
|
|
|
double drainWill(EnumDemonWillType type, ItemStack stack, double drainAmount, boolean doDrain);
|
2016-02-19 13:03:33 +00:00
|
|
|
|
2016-07-10 01:45:35 +00:00
|
|
|
double fillWill(EnumDemonWillType type, ItemStack stack, double fillAmount, boolean doFill);
|
2016-01-09 15:47:36 +00:00
|
|
|
}
|