- water slacks fire now
- Bug which caused lava to disappear is fixed git-svn-id: http://mc-server.googlecode.com/svn/trunk@152 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
@@ -30,13 +30,15 @@ void cFireSimulator::Simulate( float a_Dt )
|
||||
{
|
||||
Vector3i *Pos = *itr;
|
||||
|
||||
if(!IsAllowedBlock(m_World->GetBlock(Pos->x, Pos->y, Pos->z))) //Check wheather the block is still burning
|
||||
char BlockID = m_World->GetBlock(Pos->x, Pos->y, Pos->z);
|
||||
|
||||
if(!IsAllowedBlock(BlockID)) //Check wheather the block is still burning
|
||||
continue;
|
||||
|
||||
if(BurnBlockAround(Pos->x, Pos->y, Pos->z)) //Burn single block and if there was one -> next time again
|
||||
_AddBlock(Pos->x, Pos->y, Pos->z);
|
||||
else
|
||||
if(!IsForeverBurnable(m_World->GetBlock(Pos->x, Pos->y - 1, Pos->z)))
|
||||
if(!IsForeverBurnable(m_World->GetBlock(Pos->x, Pos->y - 1, Pos->z)) && !FiresForever(BlockID))
|
||||
m_World->SetBlock(Pos->x, Pos->y, Pos->z, E_BLOCK_AIR, 0);
|
||||
|
||||
}
|
||||
@@ -91,6 +93,11 @@ bool cFireSimulator::IsBurnable( char a_BlockID )
|
||||
|| a_BlockID == E_BLOCK_TNT;
|
||||
}
|
||||
|
||||
bool cFireSimulator::FiresForever( char a_BlockID )
|
||||
{
|
||||
return a_BlockID != E_BLOCK_FIRE;
|
||||
}
|
||||
|
||||
bool cFireSimulator::BurnBlockAround(int a_X, int a_Y, int a_Z)
|
||||
{
|
||||
return BurnBlock(a_X + 1, a_Y, a_Z)
|
||||
|
||||
Reference in New Issue
Block a user