package squeek.applecore.api.food;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemFood;
import net.minecraft.item.ItemStack;
/**
* Useful for adding AppleCore compatibility to edible item
* implementations that do not extend ItemFood for whatever reason.<br>
* <br>
* To use it, simply have your item implement {@link IEdible}, and then
* instead of calling {@code player.getFoodStats().addStats(int, float)}
* in your item's {@code onEaten} method, you'd instead call:<br>
* <br>
* {@code new ItemFoodProxy(this).onEaten(itemStack, player);}
*/
public class ItemFoodProxy extends ItemFood
{
public IEdible proxyEdible;
public ItemFoodProxy(IEdible proxyEdible)
{
super(0, false);
this.proxyEdible = proxyEdible;
}
/**
* Applies the food values of the edible item to the player
*/
public void onEaten(ItemStack itemStack, EntityPlayer player)
{
player.getFoodStats().func_151686_a(this, itemStack);
}
/**
* @return The hunger value of the edible item
*/
@Override
public int func_150905_g(ItemStack itemStack)
{
return proxyEdible.getFoodValues(itemStack).hunger;
}
/**
* @return The saturation modifier of the edible item
*/
@Override
public float func_150906_h(ItemStack itemStack)
{
return proxyEdible.getFoodValues(itemStack).saturationModifier;
}
}