diff options
author | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-08-17 12:54:13 +0200 |
---|---|---|
committer | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-08-17 12:54:13 +0200 |
commit | 1f42ef9a1eae39b80cc7807166bf276caa3ca0a7 (patch) | |
tree | 48317546b45fb2a51de3d898b15e9f187aa09a08 /source/items | |
parent | Fixed the VC2010 project to compile (untested, though) (diff) | |
download | cuberite-1f42ef9a1eae39b80cc7807166bf276caa3ca0a7.tar cuberite-1f42ef9a1eae39b80cc7807166bf276caa3ca0a7.tar.gz cuberite-1f42ef9a1eae39b80cc7807166bf276caa3ca0a7.tar.bz2 cuberite-1f42ef9a1eae39b80cc7807166bf276caa3ca0a7.tar.lz cuberite-1f42ef9a1eae39b80cc7807166bf276caa3ca0a7.tar.xz cuberite-1f42ef9a1eae39b80cc7807166bf276caa3ca0a7.tar.zst cuberite-1f42ef9a1eae39b80cc7807166bf276caa3ca0a7.zip |
Diffstat (limited to '')
-rw-r--r-- | source/items/ItemBucket.h | 53 |
1 files changed, 34 insertions, 19 deletions
diff --git a/source/items/ItemBucket.h b/source/items/ItemBucket.h index 60718b2fb..3e233e4f6 100644 --- a/source/items/ItemBucket.h +++ b/source/items/ItemBucket.h @@ -16,42 +16,57 @@ public: {
switch(m_ItemID)
{
- case E_ITEM_BUCKET:
+ case E_ITEM_BUCKET:
{
- AddDirection(a_X, a_Y, a_Z, a_Dir);
+ if (a_Dir >= 0)
+ {
+ AddDirection(a_X, a_Y, a_Z, a_Dir);
+ }
BLOCKTYPE ClickedBlock = a_World->GetBlock(a_X, a_Y, a_Z);
LOG("Bucket Clicked BlockID: %d", ClickedBlock);
ENUM_ITEM_ID NewItem = E_ITEM_EMPTY;
switch (ClickedBlock)
{
- case E_BLOCK_WATER:
- case E_BLOCK_STATIONARY_WATER:
- NewItem = E_ITEM_WATER_BUCKET;
- break;
- case E_BLOCK_LAVA:
- case E_BLOCK_STATIONARY_LAVA:
- NewItem = E_ITEM_LAVA_BUCKET;
- break;
+ case E_BLOCK_WATER:
+ case E_BLOCK_STATIONARY_WATER:
+ {
+ NewItem = E_ITEM_WATER_BUCKET;
+ break;
+ }
+ case E_BLOCK_LAVA:
+ case E_BLOCK_STATIONARY_LAVA:
+ {
+ NewItem = E_ITEM_LAVA_BUCKET;
+ break;
+ }
}
cItem Item(a_Item->m_ItemID, 1);
- if (NewItem != E_ITEM_EMPTY
- && (a_Player->GetGameMode() == 1 || (a_Player->GetInventory().RemoveItem(Item))))
+ if (
+ (NewItem != E_ITEM_EMPTY) &&
+ (
+ ((a_Player->GetGameMode() == 1) ||
+ a_Player->GetInventory().RemoveItem(Item))
+ )
+ )
{
- //Give New Bucket
+ // Give New Bucket
cItem Item(NewItem, 1);
a_Player->GetInventory().AddItem(Item);
- //remove water block
+ // Remove water / lava block
a_Player->GetWorld()->SetBlock(a_X, a_Y, a_Z, E_BLOCK_AIR, 0);
return true;
}
+ break;
}
- break;
- case E_ITEM_WATER_BUCKET:
- case E_ITEM_LAVA_BUCKET:
+
+ case E_ITEM_WATER_BUCKET:
+ case E_ITEM_LAVA_BUCKET:
{
BLOCKTYPE NewBlock = (m_ItemID == E_ITEM_LAVA_BUCKET) ? E_BLOCK_LAVA : E_BLOCK_WATER;
-
- AddDirection(a_X, a_Y, a_Z, a_Dir);
+ if (a_Dir >= 0)
+ {
+ AddDirection(a_X, a_Y, a_Z, a_Dir);
+ }
if(a_World->GetBlock(a_X, a_Y, a_Z) == E_BLOCK_AIR)
{
cItem Item(a_Item->m_ItemID, 1);
|