1
0
Fork 0

Water bottles are drinkable potions (#4114)

Water bottles are now drinkable potions

Fixes #4111

Also update outdated mcwiki references
This commit is contained in:
Alexander Harkness 2017-12-26 20:27:24 +00:00 committed by GitHub
parent 533c95d9e2
commit 705deea205
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 11 deletions

View File

@ -23,7 +23,7 @@ cEntityEffect::eType cEntityEffect::GetPotionEffectType(short a_ItemDamage)
{
// Lowest four bits
// Potion effect bits are different from entity effect values
// For reference: https://minecraft.gamepedia.com/Data_values#.22Potion_effect.22_bits
// For reference: https://minecraft.gamepedia.com/Java_Edition_data_values#.22Potion_effect.22_bits
switch (a_ItemDamage & 0x0f)
{
case 0x01: return cEntityEffect::effRegeneration;
@ -112,9 +112,9 @@ int cEntityEffect::GetPotionEffectDuration(short a_ItemDamage)
SplashCoeff = IsPotionDrinkable(a_ItemDamage) ? 1 : 0.75;
// Ref.:
// https://minecraft.gamepedia.com/Data_values#.22Tier.22_bit
// https://minecraft.gamepedia.com/Data_values#.22Extended_duration.22_bit
// https://minecraft.gamepedia.com/Data_values#.22Splash_potion.22_bit
// https://minecraft.gamepedia.com/Java_Edition_data_values#.22Tier.22_bit
// https://minecraft.gamepedia.com/Java_Edition_data_values#.22Extended_duration.22_bit
// https://minecraft.gamepedia.com/Java_Edition_data_values#.22Splash_potion.22_bit
return static_cast<int>(base * TierCoeff * ExtCoeff * SplashCoeff);
}
@ -125,9 +125,10 @@ int cEntityEffect::GetPotionEffectDuration(short a_ItemDamage)
bool cEntityEffect::IsPotionDrinkable(short a_ItemDamage)
{
// Drinkable potion if 13th lowest bit is set
// Ref.: https://minecraft.gamepedia.com/Potions#Data_value_table
return ((a_ItemDamage & 0x2000) != 0);
// Potions are drinkable if they are not splash potions.
// i.e. potions are drinkable if the 14th lowest bit is not set
// Ref.: https://minecraft.gamepedia.com/Java_Edition_data_values#.22Splash_potion.22_bit
return ((a_ItemDamage & 0x4000) == 0);
}
@ -512,7 +513,3 @@ void cEntityEffectSaturation::OnTick(cPawn & a_Target)
Target.SetFoodSaturationLevel(Target.GetFoodSaturationLevel() + (1 + m_Intensity)); // Increase saturation 1 per tick, adds 1 for every increase in level
}
}