From 2ca40c819ecb7b77879c62b2465345a5e6428bd5 Mon Sep 17 00:00:00 2001 From: "lapayo94@gmail.com" Date: Thu, 29 Dec 2011 02:44:21 +0000 Subject: - Pickups should now burn in fire - The player no longer gets an empty bucket when in creative mode - improved the simulators again (moved to std::list because this should be faster with so many objects) (But the water simulation still is very slow) git-svn-id: http://mc-server.googlecode.com/svn/trunk@153 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/cPickup.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'source/cPickup.cpp') diff --git a/source/cPickup.cpp b/source/cPickup.cpp index 7b6e9e1d1..c665577f0 100644 --- a/source/cPickup.cpp +++ b/source/cPickup.cpp @@ -169,13 +169,17 @@ void cPickup::HandlePhysics(float a_Dt) { m_bOnGround = false; } - char block = World->GetBlock( BlockX, (int)m_Pos->y - (int)m_bOnGround, BlockZ ); - if( block == E_BLOCK_STATIONARY_LAVA || block == E_BLOCK_LAVA ) { + char Block = World->GetBlock( BlockX, (int)m_Pos->y - (int)m_bOnGround, BlockZ ); + char BlockIn = World->GetBlock( BlockX, (int)m_Pos->y, BlockZ ); + + if( IsBlockLava(Block) || Block == E_BLOCK_FIRE + || IsBlockLava(BlockIn) || BlockIn == E_BLOCK_FIRE) + { m_bCollected = true; m_Timer = 0; return; } - char BlockIn = World->GetBlock( BlockX, (int)m_Pos->y, BlockZ ); + if( BlockIn != E_BLOCK_AIR && !IsBlockWater(BlockIn) ) // If in ground itself, push it out { m_bOnGround = true; -- cgit v1.2.3