diff options
author | admin@omencraft.com <admin@omencraft.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2011-11-11 01:21:52 +0100 |
---|---|---|
committer | admin@omencraft.com <admin@omencraft.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2011-11-11 01:21:52 +0100 |
commit | 750f9ab74fa7dfb04739dd5dd9d8a3fb4976b901 (patch) | |
tree | 47472736034c0755da129f97a66c1a15d12755ff /source/cClientHandle.cpp | |
parent | Fixed logging in underground bug this time. A hack, but it works. :D (diff) | |
download | cuberite-750f9ab74fa7dfb04739dd5dd9d8a3fb4976b901.tar cuberite-750f9ab74fa7dfb04739dd5dd9d8a3fb4976b901.tar.gz cuberite-750f9ab74fa7dfb04739dd5dd9d8a3fb4976b901.tar.bz2 cuberite-750f9ab74fa7dfb04739dd5dd9d8a3fb4976b901.tar.lz cuberite-750f9ab74fa7dfb04739dd5dd9d8a3fb4976b901.tar.xz cuberite-750f9ab74fa7dfb04739dd5dd9d8a3fb4976b901.tar.zst cuberite-750f9ab74fa7dfb04739dd5dd9d8a3fb4976b901.zip |
Diffstat (limited to '')
-rw-r--r-- | source/cClientHandle.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source/cClientHandle.cpp b/source/cClientHandle.cpp index a399441de..d41759d09 100644 --- a/source/cClientHandle.cpp +++ b/source/cClientHandle.cpp @@ -695,8 +695,10 @@ void cClientHandle::HandlePacket( cPacket* a_Packet ) bool bPlaceBlock = true;
bool UpdateRedstone = false;
bool AddedCurrent = false;
+
if( PacketData->m_Direction >= 0 )
{
+
ENUM_BLOCK_ID BlockID = (ENUM_BLOCK_ID)m_Player->GetWorld()->GetBlock( PacketData->m_PosX, PacketData->m_PosY, PacketData->m_PosZ );
switch( BlockID )
{
@@ -814,6 +816,7 @@ void cClientHandle::HandlePacket( cPacket* a_Packet ) char MetaData = (char)Equipped.m_ItemHealth;
bool LavaBucket = false;
bool WaterBucket = false;
+
switch( PacketData->m_ItemType ) // Special handling for special items
{
case E_ITEM_BUCKET:
@@ -947,10 +950,12 @@ void cClientHandle::HandlePacket( cPacket* a_Packet ) char Y = PacketData->m_PosY;
int Z = PacketData->m_PosZ;
AddDirection( X, Y, Z, PacketData->m_Direction );
- if( m_Player->GetWorld()->GetBlock( X, Y, Z ) != E_BLOCK_AIR ) { //tried to place a block *into* another?
+
+ int PlaceBlock = m_Player->GetWorld()->GetBlock( X, Y, Z );
+ if (!( ( PlaceBlock == E_BLOCK_AIR ) || ( PlaceBlock == E_BLOCK_WATER ) || ( PlaceBlock == E_BLOCK_STATIONARY_WATER ) || ( PlaceBlock == E_BLOCK_LAVA ) || ( PlaceBlock == E_BLOCK_STATIONARY_LAVA ) ) ) { //tried to place a block *into* another?
break; //happens when you place a block aiming at side of block like torch or stem
}
-
+
if( (m_Player->GetGameMode() == 1) || (m_Player->GetInventory().RemoveItem( Item )) )
{
if (isDoor) {
|