From 2372419d0ccb6c0c689437305c47e494ce74bd2b Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Tue, 29 May 2012 20:45:25 +0000 Subject: [PATCH] Farmland is created using a hoe on dirt or grass. git-svn-id: http://mc-server.googlecode.com/svn/trunk@520 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Defines.h | 4 ++++ source/cClientHandle.cpp | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/source/Defines.h b/source/Defines.h index 5ec09fb1e..ddf18dc48 100644 --- a/source/Defines.h +++ b/source/Defines.h @@ -15,6 +15,10 @@ extern bool g_BlockOneHitDig[]; //--DO NOT DELETE THIS COMMENT-- //tolua_export + + + + inline bool IsValidBlock( int a_BlockID ) //tolua_export { //tolua_export if( a_BlockID > -1 && diff --git a/source/cClientHandle.cpp b/source/cClientHandle.cpp index f5aa9024d..9e88f47a1 100644 --- a/source/cClientHandle.cpp +++ b/source/cClientHandle.cpp @@ -986,7 +986,7 @@ void cClientHandle::HandleBlockPlace(cPacket_BlockPlace * a_Packet) m_Player->GetInventory().RemoveItem(Item); return; } - + if (a_Packet->m_Direction < 0) { // clicked in air @@ -995,7 +995,17 @@ void cClientHandle::HandleBlockPlace(cPacket_BlockPlace * a_Packet) bool isDoor = false; //TODO: Wrong Blocks! - int ClickedBlock = (int)m_Player->GetWorld()->GetBlock(a_Packet->m_PosX, a_Packet->m_PosY, a_Packet->m_PosZ); + BLOCKTYPE ClickedBlock = m_Player->GetWorld()->GetBlock(a_Packet->m_PosX, a_Packet->m_PosY, a_Packet->m_PosZ); + + if (ItemCategory::IsHoe(Item.m_ItemID)) + { + if ((ClickedBlock == E_BLOCK_DIRT) || (ClickedBlock == E_BLOCK_GRASS)) + { + m_Player->GetWorld()->FastSetBlock(a_Packet->m_PosX, a_Packet->m_PosY, a_Packet->m_PosZ, E_BLOCK_FARMLAND, 0); + } + return; + } + char MetaData = (char)Equipped.m_ItemHealth; bool LavaBucket = false; bool WaterBucket = false;