package joshie.harvest.animals.item; import joshie.harvest.animals.item.ItemAnimalProduct.Sizeable; import joshie.harvest.core.base.item.ItemHFSizeable; import joshie.harvest.core.util.interfaces.ISizeable; import net.minecraft.item.ItemStack; import net.minecraft.util.IStringSerializable; import java.util.Locale; public class ItemAnimalProduct extends ItemHFSizeable<ItemAnimalProduct, Sizeable> { public ItemAnimalProduct() { super(Sizeable.class); } @Override public int getHealAmount(ItemStack stack) { switch (getEnumFromStack(stack)) { case EGG: case MAYONNAISE: return 3 + getSize(stack).ordinal(); case MILK: return 2 + getSize(stack).ordinal(); default: return 0; } } @Override public float getSaturationModifier(ItemStack stack) { switch (getEnumFromStack(stack)) { case EGG: return 0.8F; case MAYONNAISE: return 1.0F; case MILK: return 0.6F; default: return 0; } } public enum Sizeable implements IStringSerializable, ISizeable { EGG(50, 60, 80), MILK(100, 150, 200), MAYONNAISE(70, 80, 100), WOOL(500, 750, 1000); private final long small; private final long medium; private final long large; Sizeable(long small, long medium, long large) { this.small = small; this.medium = medium; this.large = large; } @Override public long getSmall() { return small; } @Override public long getMedium() { return medium; } @Override public long getLarge() { return large; } @Override public String getName() { return name().toLowerCase(Locale.ENGLISH); } @Override public int getMeta() { return ordinal(); } } }