Replace buckets to the selected hotbar slot, rather than the first available. (#4580)
* Replace buckets to the selected hotbar slot, rather than the first available. Replicates vanilla behaviour, as well as being more logical. * Refactor cInventory::AddItem. Behaviour is now documented * Add new cInventory::ReplaceOneEquippedItem and ::SetEquippedItem methods * Return empty potion to the same slot after drinking * Replace buckets correctly in other situations, not simply water and lava Uses the new ReplaceOneEquippedItem method * Correct collecting water from source block with bottle * Add cPlayer::ReplaceOneEquippedItemTossRest method * Handle stacked filled buckets (in theory) Use new cPlayer::ReplaceOneEquippedItemTossRest method
This commit is contained in:
@@ -43,18 +43,18 @@ void cMooshroom::OnRightClicked(cPlayer & a_Player)
|
||||
{
|
||||
case E_ITEM_BUCKET:
|
||||
{
|
||||
// Milk the cow.
|
||||
if (!a_Player.IsGameModeCreative())
|
||||
{
|
||||
a_Player.GetInventory().RemoveOneEquippedItem();
|
||||
a_Player.GetInventory().AddItem(cItem(E_ITEM_MILK));
|
||||
a_Player.ReplaceOneEquippedItemTossRest(cItem(E_ITEM_MILK));
|
||||
}
|
||||
} break;
|
||||
case E_ITEM_BOWL:
|
||||
{
|
||||
// Soup the cow.
|
||||
if (!a_Player.IsGameModeCreative())
|
||||
{
|
||||
a_Player.GetInventory().RemoveOneEquippedItem();
|
||||
a_Player.GetInventory().AddItem(cItem(E_ITEM_MUSHROOM_SOUP));
|
||||
a_Player.ReplaceOneEquippedItemTossRest(cItem(E_ITEM_MUSHROOM_SOUP));
|
||||
}
|
||||
} break;
|
||||
case E_ITEM_SHEARS:
|
||||
|
||||
Reference in New Issue
Block a user