summaryrefslogtreecommitdiffstats
path: root/src/Items
diff options
context:
space:
mode:
authorAlexander Harkness <me@bearbin.net>2020-04-02 14:42:15 +0200
committerGitHub <noreply@github.com>2020-04-02 14:42:15 +0200
commitcdc452916e3ec7e61f4a1ad822666192593b4b08 (patch)
treefcf35adfb6f907b7c2cd4388facc551cfe6c684a /src/Items
parentTweak attack ranges (diff)
downloadcuberite-cdc452916e3ec7e61f4a1ad822666192593b4b08.tar
cuberite-cdc452916e3ec7e61f4a1ad822666192593b4b08.tar.gz
cuberite-cdc452916e3ec7e61f4a1ad822666192593b4b08.tar.bz2
cuberite-cdc452916e3ec7e61f4a1ad822666192593b4b08.tar.lz
cuberite-cdc452916e3ec7e61f4a1ad822666192593b4b08.tar.xz
cuberite-cdc452916e3ec7e61f4a1ad822666192593b4b08.tar.zst
cuberite-cdc452916e3ec7e61f4a1ad822666192593b4b08.zip
Diffstat (limited to 'src/Items')
-rw-r--r--src/Items/ItemArmor.h2
-rw-r--r--src/Items/ItemBottle.h7
-rw-r--r--src/Items/ItemBucket.h32
-rw-r--r--src/Items/ItemPotion.h3
4 files changed, 13 insertions, 31 deletions
diff --git a/src/Items/ItemArmor.h b/src/Items/ItemArmor.h
index 906993a5b..d218c22b3 100644
--- a/src/Items/ItemArmor.h
+++ b/src/Items/ItemArmor.h
@@ -61,7 +61,7 @@ public:
{
Item.Empty();
}
- a_Player->GetInventory().SetHotbarSlot(a_Player->GetInventory().GetEquippedSlotNum(), Item);
+ a_Player->GetInventory().SetEquippedItem(Item);
return true;
}
diff --git a/src/Items/ItemBottle.h b/src/Items/ItemBottle.h
index b261937e5..18767dcde 100644
--- a/src/Items/ItemBottle.h
+++ b/src/Items/ItemBottle.h
@@ -83,8 +83,11 @@ public:
return false; // Nothing in range.
}
- a_Player->GetInventory().RemoveOneEquippedItem();
- a_Player->GetInventory().AddItem(cItem(E_ITEM_POTION));
+ // Give back a filled water bottle if gamemode is not creative:
+ if (!a_Player->IsGameModeCreative())
+ {
+ a_Player->ReplaceOneEquippedItemTossRest(cItem(E_ITEM_POTION));
+ }
return true;
}
} ;
diff --git a/src/Items/ItemBucket.h b/src/Items/ItemBucket.h
index 7a91149d1..8affff6ca 100644
--- a/src/Items/ItemBucket.h
+++ b/src/Items/ItemBucket.h
@@ -70,15 +70,15 @@ public:
}
BLOCKTYPE Block = a_World->GetBlock(BlockPos.x, BlockPos.y, BlockPos.z);
- ENUM_ITEM_ID NewItem;
+ ENUM_ITEM_ID NewItemType;
if (IsBlockWater(Block))
{
- NewItem = E_ITEM_WATER_BUCKET;
+ NewItemType = E_ITEM_WATER_BUCKET;
}
else if (IsBlockLava(Block))
{
- NewItem = E_ITEM_LAVA_BUCKET;
+ NewItemType = E_ITEM_LAVA_BUCKET;
}
else
{
@@ -101,18 +101,7 @@ public:
// Give new bucket, filled with fluid when the gamemode is not creative:
if (!a_Player->IsGameModeCreative())
{
- // Remove the bucket from the inventory
- if (!a_Player->GetInventory().RemoveOneEquippedItem())
- {
- LOG("Clicked with an empty bucket, but cannot remove one from the inventory? WTF?");
- ASSERT(!"Inventory bucket mismatch");
- return true;
- }
- if (a_Player->GetInventory().AddItem(cItem(NewItem)) != 1)
- {
- // The bucket didn't fit, toss it as a pickup:
- a_Player->TossPickup(cItem(NewItem));
- }
+ a_Player->ReplaceOneEquippedItemTossRest(cItem(NewItemType));
}
return true;
@@ -154,19 +143,10 @@ public:
return false;
}
+ // Give back an empty bucket if the gamemode is not creative:
if (!a_Player->IsGameModeCreative())
{
- // Remove fluid bucket, add empty bucket:
- if (!a_Player->GetInventory().RemoveOneEquippedItem())
- {
- LOG("Clicked with a full bucket, but cannot remove one from the inventory? WTF?");
- ASSERT(!"Inventory bucket mismatch");
- return false;
- }
- if (!a_Player->GetInventory().AddItem(cItem(E_ITEM_BUCKET)))
- {
- return false;
- }
+ a_Player->ReplaceOneEquippedItemTossRest(cItem(E_ITEM_BUCKET));
}
// Wash away anything that was there prior to placing:
diff --git a/src/Items/ItemPotion.h b/src/Items/ItemPotion.h
index 470a7c67f..86330d1c0 100644
--- a/src/Items/ItemPotion.h
+++ b/src/Items/ItemPotion.h
@@ -77,8 +77,7 @@ public:
if (!a_Player->IsGameModeCreative())
{
- a_Player->GetInventory().RemoveOneEquippedItem();
- a_Player->GetInventory().AddItem(cItem(E_ITEM_GLASS_BOTTLE));
+ a_Player->ReplaceOneEquippedItemTossRest(cItem(E_ITEM_GLASS_BOTTLE));
}
return true;
}