1
0
Fork 0

Don't remove items twice (#4524)

* Don't remove items twice
This commit is contained in:
Mat 2020-03-22 12:17:04 +02:00 committed by GitHub
parent 038194d2a6
commit 49dd645aa6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 16 additions and 19 deletions

View File

@ -306,7 +306,7 @@ Vector3d cDispenserEntity::GetShootVector(NIBBLETYPE a_Meta)
bool cDispenserEntity::ScoopUpLiquid(int a_SlotNum, short a_ResultingBucketItemType) bool cDispenserEntity::ScoopUpLiquid(int a_SlotNum, short a_ResultingBucketItemType)
{ {
cItem LiquidBucket(a_ResultingBucketItemType, 1); cItem LiquidBucket(a_ResultingBucketItemType);
if (m_Contents.GetSlot(a_SlotNum).m_ItemCount == 1) if (m_Contents.GetSlot(a_SlotNum).m_ItemCount == 1)
{ {
// Special case: replacing one empty bucket with one full bucket // Special case: replacing one empty bucket with one full bucket

View File

@ -32,8 +32,7 @@ public:
if (!a_Player.IsGameModeCreative()) if (!a_Player.IsGameModeCreative())
{ {
a_Player.GetInventory().RemoveOneEquippedItem(); a_Player.GetInventory().RemoveOneEquippedItem();
cItem NewItem(E_ITEM_BUCKET, 1); a_Player.GetInventory().AddItem(cItem(E_ITEM_BUCKET));
a_Player.GetInventory().AddItem(NewItem);
} }
} }
break; break;
@ -44,8 +43,7 @@ public:
{ {
a_ChunkInterface.SetBlockMeta(a_BlockX, a_BlockY, a_BlockZ, --Meta); a_ChunkInterface.SetBlockMeta(a_BlockX, a_BlockY, a_BlockZ, --Meta);
a_Player.GetInventory().RemoveOneEquippedItem(); a_Player.GetInventory().RemoveOneEquippedItem();
cItem NewItem(E_ITEM_POTIONS, 1, 0); a_Player.GetInventory().AddItem(cItem(E_ITEM_POTION));
a_Player.GetInventory().AddItem(NewItem);
} }
break; break;
} }

View File

@ -145,7 +145,7 @@ void cArrowEntity::CollectedBy(cPlayer & a_Dest)
// Do not add the arrow to the inventory when the player is in creative: // Do not add the arrow to the inventory when the player is in creative:
if (!a_Dest.IsGameModeCreative()) if (!a_Dest.IsGameModeCreative())
{ {
int NumAdded = a_Dest.GetInventory().AddItem(E_ITEM_ARROW); int NumAdded = a_Dest.GetInventory().AddItem(cItem(E_ITEM_ARROW));
if (NumAdded == 0) if (NumAdded == 0)
{ {
// No space in the inventory // No space in the inventory

View File

@ -712,10 +712,6 @@ void cPlayer::FinishEating(void)
{ {
return; return;
} }
if (!IsGameModeCreative())
{
GetInventory().RemoveOneEquippedItem();
}
ItemHandler->OnFoodEaten(m_World, this, &Item); ItemHandler->OnFoodEaten(m_World, this, &Item);
} }

View File

@ -84,8 +84,7 @@ public:
} }
a_Player->GetInventory().RemoveOneEquippedItem(); a_Player->GetInventory().RemoveOneEquippedItem();
cItem NewItem(E_ITEM_POTION, 1, 0); a_Player->GetInventory().AddItem(cItem(E_ITEM_POTION));
a_Player->GetInventory().AddItem(NewItem);
return true; return true;
} }
} ; } ;

View File

@ -163,8 +163,7 @@ public:
ASSERT(!"Inventory bucket mismatch"); ASSERT(!"Inventory bucket mismatch");
return false; return false;
} }
cItem Item(E_ITEM_BUCKET, 1); if (!a_Player->GetInventory().AddItem(cItem(E_ITEM_BUCKET)))
if (!a_Player->GetInventory().AddItem(Item))
{ {
return false; return false;
} }

View File

@ -103,6 +103,11 @@ public:
return false; return false;
} }
if (!a_Player->IsGameModeCreative())
{
a_Player->GetInventory().RemoveOneEquippedItem();
}
switch (m_ItemType) switch (m_ItemType)
{ {
case E_ITEM_BEETROOT_SOUP: case E_ITEM_BEETROOT_SOUP:

View File

@ -29,7 +29,7 @@ public:
if (!a_Player->IsGameModeCreative()) if (!a_Player->IsGameModeCreative())
{ {
a_Player->GetInventory().RemoveOneEquippedItem(); a_Player->GetInventory().RemoveOneEquippedItem();
a_Player->GetInventory().AddItem(E_ITEM_BUCKET); a_Player->GetInventory().AddItem(cItem(E_ITEM_BUCKET));
} }
return true; return true;
} }

View File

@ -75,7 +75,7 @@ public:
if (!a_Player->IsGameModeCreative()) if (!a_Player->IsGameModeCreative())
{ {
a_Player->GetInventory().RemoveOneEquippedItem(); a_Player->GetInventory().RemoveOneEquippedItem();
a_Player->GetInventory().AddItem(E_ITEM_GLASS_BOTTLE); a_Player->GetInventory().AddItem(cItem(E_ITEM_GLASS_BOTTLE));
} }
return true; return true;
} }

View File

@ -47,7 +47,7 @@ void cCow::OnRightClicked(cPlayer & a_Player)
if (!a_Player.IsGameModeCreative()) if (!a_Player.IsGameModeCreative())
{ {
a_Player.GetInventory().RemoveOneEquippedItem(); a_Player.GetInventory().RemoveOneEquippedItem();
a_Player.GetInventory().AddItem(E_ITEM_MILK); a_Player.GetInventory().AddItem(cItem(E_ITEM_MILK));
} }
} }
} }

View File

@ -46,7 +46,7 @@ void cMooshroom::OnRightClicked(cPlayer & a_Player)
if (!a_Player.IsGameModeCreative()) if (!a_Player.IsGameModeCreative())
{ {
a_Player.GetInventory().RemoveOneEquippedItem(); a_Player.GetInventory().RemoveOneEquippedItem();
a_Player.GetInventory().AddItem(E_ITEM_MILK); a_Player.GetInventory().AddItem(cItem(E_ITEM_MILK));
} }
} break; } break;
case E_ITEM_BOWL: case E_ITEM_BOWL:
@ -54,7 +54,7 @@ void cMooshroom::OnRightClicked(cPlayer & a_Player)
if (!a_Player.IsGameModeCreative()) if (!a_Player.IsGameModeCreative())
{ {
a_Player.GetInventory().RemoveOneEquippedItem(); a_Player.GetInventory().RemoveOneEquippedItem();
a_Player.GetInventory().AddItem(E_ITEM_MUSHROOM_SOUP); a_Player.GetInventory().AddItem(cItem(E_ITEM_MUSHROOM_SOUP));
} }
} break; } break;
case E_ITEM_SHEARS: case E_ITEM_SHEARS: