summaryrefslogtreecommitdiffstats
path: root/src/ClientHandle.cpp
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@hotmail.co.uk>2014-03-23 23:32:45 +0100
committerTiger Wang <ziwei.tiger@hotmail.co.uk>2014-03-23 23:32:45 +0100
commitf622f4317c76aa287649da965456562a32bce41b (patch)
treec4bb86026ec7565b090c03a07840c13d067c534a /src/ClientHandle.cpp
parentFixed bad cmake document interpretation (diff)
downloadcuberite-f622f4317c76aa287649da965456562a32bce41b.tar
cuberite-f622f4317c76aa287649da965456562a32bce41b.tar.gz
cuberite-f622f4317c76aa287649da965456562a32bce41b.tar.bz2
cuberite-f622f4317c76aa287649da965456562a32bce41b.tar.lz
cuberite-f622f4317c76aa287649da965456562a32bce41b.tar.xz
cuberite-f622f4317c76aa287649da965456562a32bce41b.tar.zst
cuberite-f622f4317c76aa287649da965456562a32bce41b.zip
Diffstat (limited to 'src/ClientHandle.cpp')
-rw-r--r--src/ClientHandle.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/ClientHandle.cpp b/src/ClientHandle.cpp
index 46c10ae82..2c47faa65 100644
--- a/src/ClientHandle.cpp
+++ b/src/ClientHandle.cpp
@@ -988,7 +988,7 @@ void cClientHandle::HandleRightClick(int a_BlockX, int a_BlockY, int a_BlockZ, e
cItemHandler * ItemHandler = cItemHandler::GetItemHandler(Equipped.m_ItemType);
- if (ItemHandler->IsPlaceable() && (a_BlockFace > -1))
+ if (ItemHandler->IsPlaceable() && ((a_BlockFace > -1) || (Equipped.m_ItemType == E_BLOCK_LILY_PAD)))
{
HandlePlaceBlock(a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ, *ItemHandler);
}
@@ -1026,7 +1026,8 @@ void cClientHandle::HandleRightClick(int a_BlockX, int a_BlockY, int a_BlockZ, e
void cClientHandle::HandlePlaceBlock(int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ, cItemHandler & a_ItemHandler)
{
- if (a_BlockFace < 0)
+ BLOCKTYPE EquippedBlock = (BLOCKTYPE)(m_Player->GetEquippedItem().m_ItemType);
+ if ((a_BlockFace < 0) && (EquippedBlock != E_BLOCK_LILY_PAD))
{
// Clicked in air
return;
@@ -1036,7 +1037,6 @@ void cClientHandle::HandlePlaceBlock(int a_BlockX, int a_BlockY, int a_BlockZ, e
BLOCKTYPE ClickedBlock;
NIBBLETYPE ClickedBlockMeta;
- BLOCKTYPE EquippedBlock = (BLOCKTYPE)(m_Player->GetEquippedItem().m_ItemType);
NIBBLETYPE EquippedBlockDamage = (NIBBLETYPE)(m_Player->GetEquippedItem().m_ItemDamage);
if ((a_BlockY < 0) || (a_BlockY >= cChunkDef::Height))
@@ -1085,7 +1085,10 @@ void cClientHandle::HandlePlaceBlock(int a_BlockX, int a_BlockY, int a_BlockZ, e
}
else
{
- AddFaceDirection(a_BlockX, a_BlockY, a_BlockZ, a_BlockFace);
+ if (EquippedBlock != E_BLOCK_LILY_PAD)
+ {
+ AddFaceDirection(a_BlockX, a_BlockY, a_BlockZ, a_BlockFace);
+ }
if ((a_BlockY < 0) || (a_BlockY >= cChunkDef::Height))
{
@@ -1106,6 +1109,7 @@ void cClientHandle::HandlePlaceBlock(int a_BlockX, int a_BlockY, int a_BlockZ, e
else
{
if (
+ (EquippedBlock != E_BLOCK_LILY_PAD) &&
!BlockHandler(PlaceBlock)->DoesIgnoreBuildCollision() &&
!BlockHandler(PlaceBlock)->DoesIgnoreBuildCollision(m_Player, PlaceMeta)
)