Hunger



Hunger is an aspect of Minecraft added in the Adventure Update that governs several aspects of gameplay. Instead of directly restoring the player's health as it did prior to the Adventure Update, eating food now fills up the food bar, which is constantly drained by the player's actions. The food bar is located opposite to the player's health bar on the bottom of the screen and is represented by ten drumsticks.

While the player is sprinting, the food bar depletes much faster. The player is not able to sprint if their food level is or less.

The food bar does not drain when playing on Peaceful mode. However, its effects on the player's health level remain, and switching difficulties has no effect on the Food Bar's current level. Thus, if the player changes the difficulty level to Peaceful while his or her Food Bar is empty, it will not restore his or her hunger level and the player will continue to starve while healing.

Certain foods have a chance of inflicting Hunger on the player upon consumption, which causes the player's hunger to deplete faster.

Effects

 * When the Food Bar is at points or above, the player's health will slowly regenerate at a rate of 1 health point every 4 seconds.
 * If the Food Bar is at points or below, then the player will not be able to sprint.
 * When the Food Bar is at, the player's health will deplete at a rate of every 2.5 seconds (this makes sleeping impossible). On easy difficulty, the player's health stops dropping at , on normal it stops at , and on hard it keeps draining until either the player eats something or starves to death.

Food poisoning
Hunger, or food poisoning, is an effect induced by eating certain foods, which turns the food bar a sickly yellow-green and drains food more rapidly. The only foods, however, to inflict Hunger is rotten flesh, which can cause Hunger 80% of the time, and raw Chicken, which causes Hunger only 30% of the time. Eating a spider eye or poisonous potato actually deals the player Poison. The rest of the foods will not cause food poisoning.

Behavior
Hunger from eating food lasts 30 seconds and adds 15.0 to the player's exhaustion level over the duration. This is slightly less than. In Peaceful mode, the food bar will change color, but will not drain out. Green-like swirls will also emit from the player, indicating that the player is food poisoned.

The duration of Hunger do not stack. So, if the player eats many poisonous foods at once, he or she will only feel the negative effects of the most recent poisonous food, plus the consumption time of each other food. Also, drinking milk will negate the effect, allowing the player to potentially eat more poisonous food and constantly drink milk to fill the bar without being inflicted by Hunger.

Also, passing through a nether portal in SMP will negate the effect (this does not happen in SSP).

Mechanics
There are four fields in level.dat which are related to hunger:


 * foodLevel ranges from 0 to 20 and is represented by the player's Food Bar. One point equals (half a "shank").
 * foodSaturationLevel is an invisible additional hunger variable that is depleted before main foodLevel value. Eating any food will also add some to this variable. Note that this cannot exceed foodLevel. The Food Bar jitters when this equals 0.
 * foodTickTimer increases with every tick when foodLevel is either greater than 17 or equals zero. When foodTickTimer reaches 80, it resets to zero and then heals or deals one point of damage to the Health Bar, respectively.
 * foodExhaustionLevel ranges from 0.0 to 4.0 and increases with every action the player takes. When the exhaustion level reaches above 4.0, it will be subtracted by 4.0 and subtracts 1 point either from foodSaturationLevel or, if foodSaturationLevel equals zero, from foodLevel.

Exhaustion level increase
''Any action not listed here will not increase exhaustion level. For example, the player can travel several days by boat and the food bar will not decrease.''